{"id":13399484,"url":"https://github.com/facebook/flow","last_synced_at":"2026-02-10T23:07:57.744Z","repository":{"id":22540078,"uuid":"25880891","full_name":"facebook/flow","owner":"facebook","description":"Adds static typing to JavaScript to improve developer productivity and code quality.","archived":false,"fork":false,"pushed_at":"2025-05-01T21:28:46.000Z","size":143749,"stargazers_count":22160,"open_issues_count":681,"forks_count":1873,"subscribers_count":383,"default_branch":"main","last_synced_at":"2025-05-04T10:56:29.018Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://flow.org/","language":"OCaml","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/facebook.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-10-28T17:17:45.000Z","updated_at":"2025-05-04T06:02:14.000Z","dependencies_parsed_at":"2023-12-20T07:29:32.567Z","dependency_job_id":"6a854787-02a9-4949-8853-f1a6b1e1b252","html_url":"https://github.com/facebook/flow","commit_stats":{"total_commits":18409,"total_committers":999,"mean_commits":18.42742742742743,"dds":0.8518659351404204,"last_synced_commit":"69ecebc7bdb05918d524afb62194e03682d4a845"},"previous_names":[],"tags_count":404,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebook%2Fflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebook%2Fflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebook%2Fflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebook%2Fflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/facebook","download_url":"https://codeload.github.com/facebook/flow/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252323427,"owners_count":21729563,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T19:00:38.370Z","updated_at":"2025-05-04T10:57:00.746Z","avatar_url":"https://github.com/facebook.png","language":"OCaml","readme":"# Flow\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://circleci.com/gh/facebook/flow/tree/main\"\u003e\n    \u003cimg src=\"https://circleci.com/gh/facebook/flow/tree/main.svg?style=shield\" alt=\"CircleCI\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://twitter.com/flowtype\"\u003e\n   \u003cimg src=\"https://img.shields.io/twitter/follow/flowtype?style=shield\u0026logo=twitter\u0026color=blue\" alt=\"Follow @flowtype\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/facebook/flow/blob/main/LICENSE\"\u003e\n    \u003cimg alt=\"MIT License\" src=\"https://img.shields.io/github/license/facebook/flow\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/facebook/flow/graphs/contributors\"\u003e\n   \u003cimg alt=\"GitHub contributors\" src=\"https://img.shields.io/github/contributors/facebook/flow\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"\"\u003e\n    \u003cimg alt=\"GitHub top language\" src=\"https://img.shields.io/github/languages/top/facebook/flow\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://discordapp.com/invite/8ezwRUK\"\u003e\n     \u003cimg alt=\"Join Discord Chat\" src=\"https://img.shields.io/discord/539606376339734558.svg?label=discord\u0026logo=discord\u0026logoColor=white\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\nFlow is a static typechecker for JavaScript. To find out more about Flow, check out [flow.org](https://flow.org/).\n\n## Contents\n\n- [Requirements](#requirements)\n- [Using Flow](#using-flow)\n- [Using Flow's parser from JavaScript](#using-flows-parser-from-javascript)\n- [Building Flow from source](#building-flow-from-source)\n- [Join the Flow community](#join-the-flow-community)\n- [License](#license)\n\n\n## Requirements\n\nFlow works with:\n\n* macOS (x86_64)\n* Linux (x86_64 and arm64)\n* Windows (x86_64, Windows 10 recommended)\n\nThere are [binary distributions](https://github.com/facebook/flow/releases) for each of these platforms and you can also build it from source on any of them as well.\n\n## Using Flow\n\nCheck out the [installation instructions](https://flow.org/en/docs/install/), and then [the usage docs](https://flow.org/en/docs/usage/).\n\n## Using Flow's parser from JavaScript\n\nWhile Flow is written in OCaml, its parser is available as a compiled-to-JavaScript module published to npm, named [flow-parser](https://www.npmjs.com/package/flow-parser). **Most end users of Flow\nwill not need to use this parser directly**, but JavaScript packages which make use of parsing\nFlow-typed JavaScript can use this to generate Flow's syntax tree with annotated types attached.\n\n## Building Flow from source\n\nFlow is written in OCaml (OCaml 5.2.0 is required).\n\n1. Install system dependencies:\n\n    - Mac: `brew install opam`\n    - Debian: `sudo apt-get install opam`\n    - Other Linux: see [opam docs](https://opam.ocaml.org/doc/Install.html)\n    - Windows: [cygwin](https://cygwin.com/) and a number of dependencies like `make`, `gcc` and `g++` are required.\n\n      One way to install everything is to install [Chocolatey](https://chocolatey.org/) and then run `.\\scripts\\windows\\install_deps.ps1` and `.\\scripts\\windows\\install_opam.ps1`. Otherwise, see the \"Manual Installation\" section of [OCaml for Windows docs](https://fdopen.github.io/opam-repository-mingw/installation/) and install all of the packages listed in our `install_deps.ps1`.\n\n      The remainder of these instructions should be run inside the Cygwin shell: `C:\\tools\\cygwin\\Cygwin`. Then `cd /cygdrive/c/Users/you/path/to/checkout`.\n\n2. Validate the `opam` version is `2.x.x`:\n\n    ```sh\n    opam --version\n    ```\n\n    The following instructions expect `2.x.x`. Should your package manager have installed a `1.x.x` version, please refer to the [opam docs](https://opam.ocaml.org/doc/Install.html) to install a newer version manually.\n\n3. Initialize `opam`:\n\n    ```sh\n    # on Mac and Linux:\n    opam init\n\n    # on Windows:\n    scripts/windows/init_opam.sh\n    ```\n\n4. Install Flow's OCaml dependencies:\n\n    ```sh\n    # from within this git checkout\n    make deps\n    ```\n\n    **note**: If you find that you get an error looking for `ocaml-base-compiler` version, your local dependency repo may be out of date and you need to run `opam update` + `opam upgrade`\n\n5. Build the `flow` binary:\n\n    ```sh\n    eval $(opam env)\n    make\n    ```\n\n    This produces the `bin/flow` binary.\n\n6. Build `flow.js` (optional):\n\n    ```sh\n    opam install -y js_of_ocaml.5.7.2\n    make js\n    ```\n\n    This produces `bin/flow.js`.\n\n    The Flow parser can also be compiled to JavaScript. [Read how here](src/parser/README.md).\n\n## Running the tests\n\nTo run the tests, first compile flow using `make`. Then run `bash ./runtests.sh bin/flow`\n\nThere is a `make test` target that compiles and runs tests.\n\nTo run a subset of the tests you can pass a second argument to the `runtests.sh` file.\n\nFor example: `bash runtests.sh bin/flow class | grep -v 'SKIP'`\n\n## Join the Flow community\n* Website: [https://flow.org](https://flow.org/)\n* Discord: https://discord.gg/8ezwRUK\n* irc: #flowtype on Freenode\n* Twitter: follow [@flowtype](https://twitter.com/flowtype) and [#flowtype](https://twitter.com/hashtag/flowtype) to keep up with the latest Flow news.\n* Stack Overflow: Ask a question with the [flowtype tag](https://stackoverflow.com/questions/tagged/flowtype)\n\n## License\nFlow is MIT-licensed ([LICENSE](https://github.com/facebook/flow/blob/main/LICENSE)). The [website](https://flow.org/) and [documentation](https://flow.org/en/docs/) are licensed under the Creative Commons Attribution 4.0 license ([website/LICENSE-DOCUMENTATION](https://github.com/facebook/flow/blob/main/website/LICENSE-DOCUMENTATION)).\n","funding_links":[],"categories":["OCaml","HarmonyOS","Rust","Ocaml","语言","others","Web 前端","Code Analysis and Linters"],"sub_categories":["Windows Manager","redux 扩展","macros"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffacebook%2Fflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffacebook%2Fflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffacebook%2Fflow/lists"}