awesome-repositories.com
Blog
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
facebook avatar

facebook/infer

0
View on GitHub↗
15,646 stars·2,093 forks·OCaml·MIT·10 vuesfbinfer.com↗

Infer

Infer is a static analysis toolset for Java, C, C++, and Objective-C designed to detect memory leaks, null dereferences, and resource bugs. It functions as a multi-language bug finder that identifies race conditions, deadlocks, and memory safety issues by translating source code into a common intermediate representation for analysis.

The project distinguishes itself through an inter-procedural data flow analyzer that tracks movement between sources and sinks to detect tainted flows and generate data flow graphs. It also includes a framework for verifying temporal properties and reachability using an intermediate representation analyzer.

The system covers broad capability areas including concurrency analysis for data races and starvation, memory safety verification for buffer overruns and retain cycles, and computational complexity analysis using big-O notation. It further provides tools for semantic diffing, array bounds checking, and the definition of custom analysis rules via domain-specific languages.

Analysis tools can be deployed via container images and integrated into continuous integration pipelines using incremental code analysis.

Features

  • General Bug Detection - Provides an automated toolset to identify and reduce a wide variety of general programming bugs.
  • Static Code Analysis - Provides automated scanning of Java, C, C++, and Objective-C source code to detect bugs and memory leaks.
  • Concurrency Auditing - Performs static analysis of multi-threaded code to identify race conditions, deadlocks, and synchronization errors.
  • Memory Safety Verification - Identifies null dereferences, buffer overruns, and resource leaks through automated analysis of memory management.
  • Intermediate Representations - Translates multiple source languages into a common intermediate representation to apply a unified set of analysis rules.
  • IR-Based Bug Detection - Translates multiple languages into a common intermediate representation to detect memory safety issues and resource leaks.
  • Inter-procedural Data Flow Analyzers - Tracks data movement between sources and sinks across function boundaries to detect tainted flows and generate data flow graphs.
  • Multi-Language Bug Finders - Identifies race conditions, deadlocks, and memory safety issues across Java, C, C++, and Objective-C.
  • Incremental Analysis Engines - Utilizes an incremental analysis engine to process only modified code segments, significantly reducing continuous integration time.
  • Static Analysis - Ships a comprehensive static analyzer for Java, C, C++, and Objective-C to detect memory leaks and null dereferences.
  • Deadlock and Starvation Detection - Finds locking issues and thread scheduling errors that prevent a program from making progress.
  • Value and Lifetime Analysis - Identifies null dereferences and resource leaks by tracking uninitialized values through lifetime analysis.
  • Static Data Race Detection - Identifies unprotected concurrent accesses to fields or objects that may lead to race conditions.
  • Static Race Condition Analysis - Analyzes concurrent code execution to identify potential synchronization errors and race conditions.
  • Taint Analysis Engines - Tracks data movement between sources and sinks to detect tainted flows and produce inter-procedural data flow graphs.
  • Inter-procedural Data Flow - Tracks data movement across function boundaries to detect tainted flows and resource leaks between different code modules.
  • Source-Sink Taint Tracking - Maps data flow from untrusted inputs to sensitive sinks to identify potential security vulnerabilities and memory errors.
  • Continuous Integration Pipelines - Integrates incremental static checks into continuous integration pipelines to maintain software quality while reducing build times.
  • Execution Path Cost Assessment - Evaluates the algorithmic complexity and computational overhead of specific execution paths within the code.
  • Array Bounds Checking - Analyzes array access patterns in source code to identify potential buffer overruns.
  • Reachability Analyzers - Checks if annotated functions are reachable and validates that field accesses serve as designated sinks.
  • Complexity Analysis - Computes the runtime cost of methods and functions using big-O notation to report algorithmic complexity.
  • Custom Analysis Rules - Offers a domain-specific language for writing custom linters and state-machine checks to enforce project-specific coding standards.
  • Custom Rule Development - Supports the development of custom analysis rules and state-machine checks to enforce project-specific coding standards.
  • Equality Saturation Engines - Implements an equality saturation engine that uses rewrite rules to perform semantic diffing and filter structural changes.
  • Retain Cycle Detection - Identifies strong reference cycles that prevent memory from being reclaimed by the system.
  • Semantic Diffing Engines - Filters structural changes to perform semantic analysis and evaluate computational complexity.
  • Temporal Property Verification - Uses a domain-specific language and state-machines to verify that sequences of events occur in a required temporal order.
  • AST Extraction - Provides mechanisms to extract abstract syntax trees via compiler plugins for deep structural analysis of source code.
  • Temporal Property Verification - Verifies whether specific sequences of events or state changes occur in the required order.
  • Code Analysis - Static analysis tool for identifying potential bugs in mobile code.
  • Code Analysis and Linters - Static analyzer for detecting bugs in C and Java.
  • Development Tooling - Static analyzer for Java and C-family languages.
  • Static Analysis - Static analyzer for Java, C, and Objective-C.

Historique des stars

Graphique de l'historique des stars pour facebook/inferGraphique de l'historique des stars pour facebook/infer

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Questions fréquentes

Que fait facebook/infer ?

Infer is a static analysis toolset for Java, C, C++, and Objective-C designed to detect memory leaks, null dereferences, and resource bugs. It functions as a multi-language bug finder that identifies race conditions, deadlocks, and memory safety issues by translating source code into a common intermediate representation for analysis.

Quelles sont les fonctionnalités principales de facebook/infer ?

Les fonctionnalités principales de facebook/infer sont : General Bug Detection, Static Code Analysis, Concurrency Auditing, Memory Safety Verification, Intermediate Representations, IR-Based Bug Detection, Inter-procedural Data Flow Analyzers, Multi-Language Bug Finders.

Quelles sont les alternatives open-source à facebook/infer ?

Les alternatives open-source à facebook/infer incluent : rust-lang/rust-clippy — This project is a static analysis linter, code quality tool, and language auditor for Rust. It functions as an… crytic/slither. securego/gosec — gosec is a static analysis security tool designed to scan Go source code for vulnerabilities and common coding flaws.… google/error-prone — Error Prone is a static code analyzer and Java compiler extension that identifies common programming mistakes during… phpstan/phpstan — This project is a static analysis engine and type checker designed for PHP codebases. It evaluates source code… nunomaduro/larastan — Larastan is a static analysis tool for PHP and a specialized extension for PHPStan. It serves as a code analyzer…

Alternatives open source à Infer

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Infer.
  • rust-lang/rust-clippyAvatar de rust-lang

    rust-lang/rust-clippy

    13,309Voir sur GitHub↗

    This project is a static analysis linter, code quality tool, and language auditor for Rust. It functions as an automated refactoring system designed to identify common mistakes and suggest idiomatic improvements for Rust source code. The tool identifies non-idiomatic patterns, performance bottlenecks, and code smells to improve the overall correctness and quality of the code. It specifically audits memory safety by flagging suspicious use of unsafe blocks and pointer manipulations and detects inefficient operations to optimize execution speed. The analysis surface covers coding style enforce

    Rustlintrust
    Voir sur GitHub↗13,309
  • crytic/slitherAvatar de crytic

    crytic/slither

    6,141Voir sur GitHub↗
    Pythonethereumsoliditystatic-analysis
    Voir sur GitHub↗6,141
  • securego/gosecAvatar de securego

    securego/gosec

    8,866Voir sur GitHub↗

    gosec is a static analysis security tool designed to scan Go source code for vulnerabilities and common coding flaws. It functions as a security analyzer that inspects the abstract syntax tree to identify insecure function calls, API usage, and potential security risks. The tool distinguishes itself by mapping detected vulnerabilities to Common Weakness Enumeration identifiers for standardized reporting and integrating with external AI models to suggest code fixes for identified issues. Its capabilities cover the detection of injection vulnerabilities, hardcoded credentials, weak cryptograph

    Go
    Voir sur GitHub↗8,866
  • google/error-proneAvatar de google

    google/error-prone

    7,182Voir sur GitHub↗

    Error Prone is a static code analyzer and Java compiler extension that identifies common programming mistakes during the build process. It functions as a compiler wrapper that flags potential errors as compile-time failures to prevent bugs from reaching execution. The tool integrates directly into the Java compilation workflow to provide compile-time validation. It allows for the definition of custom linting rules and analysis checks to enforce specific coding standards and detect prohibited API usage. The system utilizes abstract syntax tree analysis and type-aware pattern matching to inspe

    Javajavastatic-analysis
    Voir sur GitHub↗7,182
  • Voir les 30 alternatives à Infer→