awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
facebook avatar

facebook/flow

0
View on GitHub↗
22,232 stars·1,891 forks·Rust·MIT·52 viewsflow.org↗

Flow

Flow is a JavaScript static type checker and AST parser that identifies type errors and prevents runtime failures through static annotations. It functions as a code intelligence engine and a static analysis linter to identify unsafe coding patterns and enforce consistency across a codebase.

The project includes a type annotation stripper that removes static type signatures from source code, ensuring the resulting JavaScript is compatible with any runtime environment. It also provides a parser that converts typed JavaScript into an abstract syntax tree conforming to the ESTree specification.

The system covers a wide range of developer experience capabilities, including type-aware autocomplete, jump-to-definition, and hover type information. It further supports automated code refactoring, type coverage analysis to identify untyped areas, and the definition of exact object types and opaque types.

Features

  • Static Type Checkers - Functions as a static type checker for JavaScript and TypeScript codebases to prevent runtime failures.
  • JavaScript Parsers - Parses JavaScript into an abstract syntax tree conforming to the ESTree specification.
  • Code Intelligence - Provides contextual code intelligence including navigation and type mapping across the codebase.
  • Type Definitions - Creates type definitions for external modules and global APIs using separate declaration files.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI
External Library Definitions - Maps the types of external dependencies using separate declaration files to enable checking of third-party code.
  • Local Variable Declarations - Deduces types for local variables and expressions based on their surrounding context.
  • Type Narrowing - Narrows variable types within conditional branches by analyzing guards and execution paths.
  • Type Safety - Verifies type safety across the codebase by analyzing static annotations.
  • Type Annotation Stripping - Strips static type annotations from source code to ensure compatibility with standard JavaScript runtimes.
  • Coding Standards Enforcement - Identifies unsafe coding patterns and ambiguous types through a static analysis linter.
  • Typed JavaScript Parsing - Generates a syntax tree from typed JavaScript to facilitate analysis by external tools.
  • Type Inference Engines - Implements a type inference engine that deduces expression types from surrounding context and assignments.
  • Static Analysis - Provides static analysis by converting source code into an abstract syntax tree to verify type consistency without execution.
  • Code Linters - Identifies unsafe coding patterns and ambiguous types through a static analysis linter.
  • Automated Code Refactoring - Applies automated code actions to restructure expressions or fix type-cast syntax errors.
  • Developer Experience Tools - Implements developer experience tools such as autocomplete and jump-to-definition based on inferred types.
  • Static Analysis Configurations - Allows customization of type checking behavior and project boundaries via configuration files.
  • Symbol Navigation - Enables navigation from a variable or type usage directly to its original declaration.
  • Type-Aware Autocompletion - Suggests valid properties and methods based on the inferred type of the current expression.
  • Type Hover Information - Shows the evaluated type of an expression when a user hovers over a code element.
  • Exact Object Types - Allows defining exact object types to prevent the addition of unplanned properties.
  • Opaque - Provides opaque type aliases to prevent different types with identical representations from being used interchangeably.
  • Utility Types - Provides built-in utility types to transform and specialize existing type definitions.
  • ESTree AST Parsing - Analyze source code to produce an abstract syntax tree that conforms to the ESTree specification.
  • Type Coverage Analysis - Measures the percentage of the codebase covered by type annotations to identify untyped areas.
  • Type Coverage Analysis - Calculates the percentage of the codebase covered by type annotations to identify untyped areas.
  • Code Quality Tools - Enforces coding standards and identifies unsafe patterns to improve long-term maintainability.
  • Code Analysis and Linters - Static type checker for JavaScript codebases.
  • Star history

    Star history chart for facebook/flowStar history chart for facebook/flow

    How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

    Frequently asked questions

    What does facebook/flow do?

    Flow is a JavaScript static type checker and AST parser that identifies type errors and prevents runtime failures through static annotations. It functions as a code intelligence engine and a static analysis linter to identify unsafe coding patterns and enforce consistency across a codebase.

    What are the main features of facebook/flow?

    The main features of facebook/flow are: Static Type Checkers, JavaScript Parsers, Code Intelligence, Type Definitions, External Library Definitions, Local Variable Declarations, Type Narrowing, Type Safety.

    Which projects share features with facebook/flow?

    Projects with overlapping indexed features include: analysis-tools-dev/static-analysis — This project is a comprehensive, curated directory of static analysis, linting, and security scanning utilities. It… federico-busato/modern-cpp-programming — This project is a comprehensive educational resource and programming course covering C++ language semantics and… crystal-lang/crystal — Crystal is a statically typed, compiled programming language designed for high performance and memory safety. It… phpstan/phpstan — This project is a static analysis engine and type checker designed for PHP codebases. It evaluates source code… jshint/jshint — JSHint is a JavaScript static analysis tool and linter designed to detect errors and enforce coding standards. It… python/mypy — mypy is a static type checker for Python that analyzes source code to detect type errors and inconsistencies without…

    Projects sharing features with Flow

    These projects share indexed features with Flow. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
    • analysis-tools-dev/static-analysisanalysis-tools-dev avatar

      analysis-tools-dev/static-analysis

      14,389View on GitHub↗

      This project is a comprehensive, curated directory of static analysis, linting, and security scanning utilities. It serves as a central resource for developers to discover, compare, and select tools based on specific programming languages, licensing models, and integration requirements. The directory distinguishes itself by providing deep metadata for each listed utility, including community-driven popularity rankings, maintenance status, and deployment methods. By aggregating these tools into a single searchable index, it enables teams to identify solutions for enforcing coding standards, ma

      Rustanalysisawesome-listcode-quality
      View on GitHub↗14,389
    • federico-busato/modern-cpp-programmingfederico-busato avatar

      federico-busato/Modern-CPP-Programming

      16,288View on GitHub↗

      This project is a comprehensive educational resource and programming course covering C++ language semantics and features from C++03 through C++26. It provides structured tutorials and technical guides focused on modern C++ development. The material offers specialized instruction on template metaprogramming, including the use of type traits and compile-time computations. It features detailed guides on concurrency and parallelism for multi-core execution, as well as a reference for software design applying SOLID principles and RAII. Additionally, it covers build performance optimization to redu

      HTMLc-plus-pluscode-qualitycompilers
      View on GitHub↗16,288
    • crystal-lang/crystalcrystal-lang avatar

      crystal-lang/crystal

      20,299View on GitHub↗

      Crystal is a statically typed, compiled programming language designed for high performance and memory safety. It leverages an LLVM-based compiler to translate source code into optimized machine-executable binaries, while its type-inference-based static analysis enforces strict safety rules during the build process. The language distinguishes itself through a fiber-based concurrent runtime that manages lightweight execution units for asynchronous input and output without blocking the main process. It also features a powerful compile-time macro system that allows for the inspection and transfor

      Crystalcompilercrystalcrystal-language
      View on GitHub↗20,299
    • phpstan/phpstanphpstan avatar

      phpstan/phpstan

      14,152View on GitHub↗

      This project is a static analysis engine and type checker designed for PHP codebases. It evaluates source code structure and type annotations to identify potential bugs, type mismatches, and logic errors without executing the application. By parsing code into an abstract syntax tree and applying a rule-based validation framework, it enforces code quality and safety standards across a project. What distinguishes this tool is its sophisticated type inference engine, which models dynamic language features, magic methods, and conditional types to maintain accuracy even in unconventional code. It

      PHPphpphp7phpstan
      View on GitHub↗14,152
    Compare all 30 related projects→