Flow is a static typechecker for JavaScript. To find out more about Flow, check out flow.org.
- Requirements
- Using Flow
- Using Flow's parser from JavaScript
- Building Flow from source
- Join the Flow community
- License
Flow works with:
- macOS (arm64)
- Linux (x86_64 and arm64)
- Windows (x86_64, Windows 10 recommended)
There are binary distributions for each of these platforms and you can also build it from source on any of them as well.
Check out the installation instructions, and then the usage docs.
Flow's parser is available as a compiled-to-JavaScript module published to npm, named flow-parser. Most end users of Flow will not need to use this parser directly, but JavaScript packages which make use of parsing Flow-typed JavaScript can use this to generate Flow's syntax tree with annotated types attached.
Flow is written in Rust. GitHub CI builds Flow from the rust_port workspace with nightly Rust.
-
Install system dependencies:
-
Install Rust via rustup.
-
Install the nightly Rust toolchain:
rustup toolchain install nightly
-
-
Build the Rust workspace:
cd rust_port cargo +nightly build -
Run the Rust tests:
cargo +nightly test -
Build an optimized
flowbinary:cargo +nightly build --release --bin flow_cli
-
Build
flow.js(optional):The
flow.jsbuild also uses the Rust port. Install Emscripten, Node, Yarn, and a Rust nightly toolchain with thewasm32-unknown-emscriptentarget andrust-srccomponent first. GitHub CI uses Emscripten 3.1.44 and nightly Rust for this build.rustup toolchain install nightly-2026-04-14 --target wasm32-unknown-emscripten --component rust-src RUSTUP_TOOLCHAIN=nightly-2026-04-14 make js FLOW_JS_IMPL=rust-wasm
This produces
bin/flow.js.To build a faster, larger local development version instead, run:
RUSTUP_TOOLCHAIN=nightly-2026-04-14 make js FLOW_JS_IMPL=rust-wasm FLOW_DOT_JS_WASM_PROFILE=dev
The Flow parser can also be compiled to JavaScript. Read how here.
See tests/README.md for detailed testing documentation.
- Website: https://flow.org
- Discord: https://discord.gg/8ezwRUK
- irc: #flowtype on Freenode
- Twitter: follow @flowtype and #flowtype to keep up with the latest Flow news.
- Stack Overflow: Ask a question with the flowtype tag
Flow is MIT-licensed (LICENSE). The website and documentation are licensed under the Creative Commons Attribution 4.0 license (website/LICENSE-DOCUMENTATION).