Infer
fbinfer.com
What it is
Infer is a static analysis tool that examines compiled Java, C, C++, Objective-C, and Erlang code and reports potential bugs before release. Its checks include null pointer problems, resource or memory leaks, coding conventions, unavailable APIs, and concurrency issues such as data races. Some analyses can follow an issue across multiple functions or methods and files. Pulse provides memory-safety analysis, while RacerD checks thread safety. Cost analysis estimates asymptotic function complexity for Java and C-family languages; Hack support is experimental, and Python, Rust, and Swift are not supported by that analysis. Infer captures compilation commands, analyzes the captured files, and writes reports that can be reviewed with `infer explore`; files that are not compiled are not analyzed. Integrations are documented for build tools including Buck, CMake, Gradle, Make, Maven, Xcodebuild, and xctool. It can be installed from binary releases, built from source, or run in Docker. The free plan costs nothing. Infer runs on Linux and macOS, with web and self-hosted options; Windows is not supported.
Spec sheet
- What it does
- Infer is a static analyzer that reports potential bugs in source code before it ships.Read 2 Oct 2026 · fbinfer.com
- Purpose
- Infer is a static analysis tool that produces a list of potential bugs from Java or C/C++/Objective-C code.Read 1 Oct 2026 · fbinfer.com
- Deployment
- Infer runs in Meta's continuous-integration pipeline to verify select properties of code modifications for projects including Facebook, Messenger, Instagram, and WhatsApp.Read 1 Oct 2026 · fbinfer.com
- Integrations
- Infer documents integrations for Buck, cmake, Gradle, Make, Maven, Xcodebuild, xctool, and compilation databases.Read 1 Oct 2026 · fbinfer.com
- Support
- The project directs users to GitHub issues and the #infer IRC channel on Libera Chat for questions and issue reports.Read 2 Oct 2026 · fbinfer.com
- License
- The Infer repository states that Infer is MIT-licensed, while noting that enabling Java support may require GPL-licensed components.Read 1 Oct 2026 · github.com
- Analysis workflow
- Infer captures compilation commands, analyzes the captured files, and writes reports that can be explored with infer explore.Read 2 Oct 2026 · fbinfer.com
- Browser demo
- Infer can be tried on a small example in a browser through Codeboard.Read 1 Oct 2026 · fbinfer.com
- Bug detection
- Infer can detect issues including null pointer dereferences, data races, and other bugs that may span multiple functions or files.Read 2 Oct 2026 · fbinfer.com
- Build integrations
- Documented build system integrations include ant, Buck, CMake, Gradle, Make, Maven, xcodebuild, and xctool.Read 2 Oct 2026 · fbinfer.com
- C-family checks
- For C, C++, and iOS/Objective-C, Infer checks null pointer dereferences, memory leaks, coding conventions, and unavailable APIs.Read 1 Oct 2026 · fbinfer.com
- Checker features
- Available checkers include Pulse for general-purpose memory and value analysis and RacerD for thread-safety analysis.Read 2 Oct 2026 · fbinfer.com
- CI use
- The recommended CI flow is to identify modified files and run analysis in reactive mode starting from those files.Read 2 Oct 2026 · fbinfer.com
- Cost analysis
- Cost analysis computes asymptotic function complexity and supports C/C++/Objective-C and Java, with Hack experimental and no Python, Rust, or Swift support.Read 1 Oct 2026 · fbinfer.com
- Deep analysis
- Infer can detect issues such as null pointer dereferences and data races by reasoning across multiple functions or methods in different files.Read 1 Oct 2026 · fbinfer.com
- Download options
- Users can download binary releases, build Infer from source, or use a Docker image; the getting-started guide also offers a small browser example through Codeboard.Read 2 Oct 2026 · fbinfer.com
- Installation
- Infer can be installed from binary releases, built from source, or run using Docker images.Read 1 Oct 2026 · fbinfer.com
- Java checks
- For Android and Java, Infer checks null pointer exceptions, resource leaks, annotation reachability, missing lock guards, and concurrency race conditions.Read 1 Oct 2026 · fbinfer.com
- Languages
- The documentation lists Java, C, C++, Objective-C, and Erlang; the latest release notes also describe Python and Swift frontends and an experimental Rust frontend.Read 2 Oct 2026 · fbinfer.com
- Limit
- Infer analyzes files captured during compilation, so if no file is compiled, no file is analyzed.Read 2 Oct 2026 · fbinfer.com
- Maker use
- Infer is deployed within Meta's continuous integration pipeline to verify selected properties of code modifications across projects including Facebook, Messenger, Instagram, and WhatsApp.Read 2 Oct 2026 · fbinfer.com
- Pulse
- Pulse is an interprocedural memory safety analysis that can detect null dereferences in Java.Read 1 Oct 2026 · fbinfer.com
- Supported languages
- Infer is a static program analyzer for Java, C, C++, Objective-C, and Erlang, written in OCaml.Read 1 Oct 2026 · fbinfer.com
- Supported systems
- The latest release is described as a binary release for Linux and macOS, while the support FAQ says Infer is not supported on Windows.Read 2 Oct 2026 · github.com
- Windows support
- Infer is not supported on Windows; the documentation suggests using a Linux virtual machine if the project can compile on Linux.Read 1 Oct 2026 · fbinfer.com
Plans and prices
Strong points and limits
Strong points
- Free plan costs nothing.
- Checks Java and C-family code for multiple bug classes.
- Analysis can follow issues across functions and files.
- Integrations cover several common build tools.
- Binary, source, and Docker installation options.
Limits
- Windows is not supported.
- Uncompiled files are not analyzed.
- Cost analysis excludes Python, Rust, and Swift.
- Java support may require GPL-licensed components.
Who it suits
Infer suits developers and teams who want static checks for supported languages in a build or CI workflow. It may be useful where analysis across functions and files matters, provided the project can compile on Linux or macOS.
Verdict
Infer offers broad static analysis for Java and C-family projects, with additional Erlang support and build integrations. Check language and platform coverage carefully, and ensure compilation capture includes the files you need analyzed.
Where Specifiction places it
- C and C++ Static Analysis Tools#5 of 258.5
- Static Analysis Tools#9 of 388.5