
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
How to get it
- 1
Download the app
Clone the repository
git clone https://github.com/meta/infer - 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
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
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| infer (this) | 15.7k | Dev tool | intermediate | 4 days ago | Developers working on Java, C, C++, or Objective-C codebases |
| static-analysis | 14.9k | Curated list | beginner | 4 days ago | Developers looking for a linter or analyzer for a specific language |
| phpstan | 14.1k | Dev tool | intermediate | 4 days ago | PHP developers who want to catch bugs earlier than tests alone allow |
| vcpkg | 27.6k | Dev tool | intermediate | 4 days ago | C and C++ developers who need third-party libraries in their projects |
| SwiftLint | 19.8k | Dev tool | beginner | 21 days ago | iOS and macOS developers who want consistent Swift style across a team |
| awesome-cpp | 74.2k | Curated list | beginner | 6 days ago | C++ 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.