Skip to content
SPECIFICTION
Get listed

Infer

fbinfer.com

Free plan WebmacOSLinuxSelf-hosted

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

Infer (free) Free Static analysis for supported programming languages; downloadable binary, source build, or Docker image Read 2 Oct 2026 · fbinfer.com

Every Infer plan and price →

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

Alternatives to InferAll alternatives →