# Qu’est-ce que Flow : automatisation visuelle et IoT avec les FlowStreams

> Flow est l’application Total.js qui exécute des FlowStreams, des diagrammes visuels de composants reliés par des messages, pour l’automatisation, les intégrations et l’IoT, avec un éditeur dans le navigateur et une API pour gérer les flux.

Framework: flow
Product: Flow (flow@11.1)
Language: fr
Content-SHA256: 79357f3f390cfdc9e8d6f86310505b945c978ee57b44550776e4d4eaacdf3591
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

**Flow** (`totaljs/flow`, version 11.1 au moment de la rédaction) est l’application principale de la famille Total.js pour la programmation visuelle. Vous dessinez un diagramme dans le navigateur : chaque boîte est un **composant**, les lignes entre elles transportent des **messages** et le diagramme est un **FlowStream**. Flow conserve de nombreux FlowStreams, exécute chacun d’eux et vous donne l’éditeur, la supervision et une API pour les gérer.

C’est une application Total.js 5 sous licence MIT qui n’a **besoin d’aucune base de données** : tout vit dans deux dossiers de l’application (voir [installation et premier démarrage](/en/flow/install-and-first-start/)).

## Ce que vous obtenez

- **Un éditeur visuel** dans le navigateur (la route `/designer/`) avec une bibliothèque de composants, le readme de chaque composant, une console, les variables du flux et un mode sombre.
- **De nombreux FlowStreams indépendants** dans une même installation, chacun avec un nom, une icône, une couleur, un groupe, un auteur, une version et des notes. Par défaut, chaque flux s’exécute dans **son propre processus Node.js** (`flowstream_worker: fork` dans le fichier `config`) : un flux qui plante n’entraîne pas les autres, et Flow le redémarre.
- **Des composants sous forme de simples fichiers.** Un composant est un fichier HTML avec une partie Node.js, son formulaire de réglages et son design (voir [écrire un composant](/en/flow/write-a-component/)). Le catalogue officiel est le dépôt [`flowstreamcomponents`](/en/flow/the-components-repository/).
- **Des entrées vers le monde extérieur** : un flux peut publier des routes HTTP sous son propre `proxypath`, recevoir des appels sur `/notify/{id}/` et communiquer par WebSocket.
- **Import et export** d’un flux en un seul fichier JSON, pause, redémarrage, statistiques et sauvegarde de la base de données des flux.
- **Connexion** avec un identifiant et un mot de passe générés, ou via [OpenPlatform](/en/openplatform/what-is-openplatform/) quand vous installez Flow comme l’une de ses apps, avec les permissions *Create Flows* et *Remove Flows*.
- **Extensions** : des fichiers HTML que vous copiez dans un dossier pour étendre l’éditeur.

## Où il s’inscrit

Flow est l’outil pour relier des choses sans écrire de serveur : lire un capteur, appeler une API chaque minute, transformer un message, le stocker, envoyer une alerte, répondre à une requête HTTP. Comme le moteur d’exécution est le FlowStream de Total.js 5, ce même moteur peut aussi être intégré à votre propre application ; Flow est l’application complète qui l’entoure.

## La famille

Flow a des cousins dans d’autres dépôts de `github.com/totaljs` : [`lesscode`](https://github.com/totaljs/lesscode), [`flowstreamdesigner`](https://github.com/totaljs/flowstreamdesigner), [`flowdesigneroffline`](https://github.com/totaljs/flowdesigneroffline), [`flowdesigner`](https://github.com/totaljs/flowdesigner) et d’autres. Ce sont des projets distincts ; cette section documente uniquement l’application `flow` et ses composants.

## Suite

1. [Installation et premier démarrage](/en/flow/install-and-first-start/)
2. [Gérer les FlowStreams avec l’API](/en/flow/manage-flowstreams-with-the-api/)
3. [Réglages et fichiers](/en/flow/settings-and-files/)
4. [Écrire un composant](/en/flow/write-a-component/)
5. [Le dépôt des composants](/en/flow/the-components-repository/)
