Skip to content

Infer

A static analyzer that scans Java, C, C++, and Objective-C code for bugs without running it.

Stars
15.7k
Forks
2.1k
Licence
MIT
Language
OCaml
Last update
4 days ago
Type
Dev tool

What it is

Infer is a static analysis tool, meaning it reads source code and looks for likely bugs without executing the program. It supports Java, C, C++, and Objective-C, and is written in OCaml. Developers use it to catch problems in code before it ships.

  • Scan a Java project for bugs before merging changes
  • Check C or C++ code for memory and logic errors
  • Run analysis on Objective-C code as part of a build

Great for

  • Developers working on Java, C, C++, or Objective-C codebases
  • Teams who want an automated bug check as part of their code review process
  • People comfortable installing a command-line developer tool from a packaged release

Not ideal for

  • Beginners looking for a point-and-click tool, since the README points to packaged installs and a source build rather than a graphical interface
  • Projects in languages outside the four listed, since the README only names Java, C, C++, and Objective-C
  • Anyone needing Java support without checking licensing, because the README notes Java support may require GPL-licensed components
Step-by-step guide: how to use InferInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Download the app

    Clone the repository

    git clone https://github.com/meta/infer
  2. 2

    Run it

    • Read the Getting Started page at fbinfer.com/docs/getting-started for installing a packaged version
    • Download the release that matches your operating system from the latest release page
    • Run Infer against a project in one of the supported languages
    • Review the reported issues and fix the ones that apply
  3. 3

    Get the most out of it

    • Use the packaged release instead of building from source unless you need to modify Infer, as the README points to INSTALL.md for source builds
    • Read the Getting Started documentation for language-specific setup
    • Check the GPL note before enabling Java support in a commercial project

Downloads

Strengths

  • Covers four widely used languages in one tool
  • MIT-licensed core, with an active public repository
  • Installable from packaged releases, so you do not have to build it from source

Trade-offs

  • Java support may pull in GPL-licensed components, which can matter for some projects
  • The README is short and defers most setup detail to external documentation
  • Analysis specifics such as which bug types it finds are not described in the README excerpt

How it compares

ProjectStarsTypeLevelUpdatedBest for
infer (this)15.7kDev toolintermediate4 days agoDevelopers working on Java, C, C++, or Objective-C codebases
static-analysis14.9kCurated listbeginner4 days agoDevelopers looking for a linter or analyzer for a specific language
phpstan14.1kDev toolintermediate4 days agoPHP developers who want to catch bugs earlier than tests alone allow
vcpkg27.6kDev toolintermediate4 days agoC and C++ developers who need third-party libraries in their projects
SwiftLint19.8kDev toolbeginner20 days agoiOS and macOS developers who want consistent Swift style across a team
awesome-cpp74.2kCurated listbeginner6 days agoC++ developers looking for a library for a specific task

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.