Infer
Infer is a free static analyzer that reports potential bugs in source code before it ships.
What Infer is
Infer is a free static analyzer that reports potential bugs in source code before it ships. It supports Java, C, C++, Objective-C, and Erlang, with checks that include null pointer errors, memory or resource leaks, coding conventions, unavailable APIs, and concurrency problems. Its analysis can follow issues across functions or methods in multiple files. Pulse handles memory safety and value analysis, while RacerD focuses on thread safety. Infer captures compilation commands, analyzes the captured files, and creates reports that can be explored with infer explore; files that are not compiled are not analyzed. Documented integrations include ant, Buck, CMake, Gradle, Make, Maven, xcodebuild, and xctool. You can use a binary release, build from source, run a Docker image, or try a small browser example through Codeboard. The latest binary release is described for Linux and macOS. Infer is not supported on Windows, though the documentation suggests using a Linux virtual machine if the project can compile there. It is also used in Meta's continuous-integration pipeline for selected code properties.
Good
- Free, with binary, source-build, and Docker options.
- Checks Java, C, C++, Objective-C, and Erlang.
- Can identify issues spanning multiple functions or files.
- Integrates with several documented build systems.
- Includes Pulse memory and RacerD thread-safety checkers.
Watch out
- Windows is not supported.
- Uncompiled files are not analyzed.
- Cost analysis lacks Python, Rust, and Swift support.
- Java support may require GPL-licensed components.
Who it suits
Infer suits developers and teams who want static checks for supported languages before code ships, including in CI workflows. It is not suitable for Windows-native use, and it only analyzes files captured during compilation.
Verdict
Infer offers broad static analysis for several languages and build workflows at no cost. Check its platform and compilation-capture requirements before adopting it.
Plans and prices
From Infer's own pricing page, checked 2 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| Infer (free) | Free | Static analysis for supported programming languages; downloadable binary, source build, or Docker image |
The facts
Each one read from Infer's own pages, with the date it was checked.
What it does
- Analysis workflow
- Infer captures compilation commands, analyzes the captured files, and writes reports that can be explored with infer explore.checked 2 Oct 2026
- Bug detection
- Infer can detect issues including null pointer dereferences, data races, and other bugs that may span multiple functions or files.checked 2 Oct 2026
- Build integrations
- Documented build system integrations include ant, Buck, CMake, Gradle, Make, Maven, xcodebuild, and xctool.checked 2 Oct 2026
- C-family checks
- For C, C++, and iOS/Objective-C, Infer checks null pointer dereferences, memory leaks, coding conventions, and unavailable APIs.checked 1 Oct 2026
- Checker features
- Available checkers include Pulse for general-purpose memory and value analysis and RacerD for thread-safety analysis.checked 2 Oct 2026
- CI use
- The recommended CI flow is to identify modified files and run analysis in reactive mode starting from those files.checked 2 Oct 2026
- Deep analysis
- Infer can detect issues such as null pointer dereferences and data races by reasoning across multiple functions or methods in different files.checked 1 Oct 2026
- Deployment
- Infer runs in Meta's continuous-integration pipeline to verify select properties of code modifications for projects including Facebook, Messenger, Instagram, and WhatsApp.checked 1 Oct 2026
- 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.checked 2 Oct 2026
- Installation
- Infer can be installed from binary releases, built from source, or run using Docker images.checked 1 Oct 2026
- Integrations
- Infer documents integrations for Buck, cmake, Gradle, Make, Maven, Xcodebuild, xctool, and compilation databases.checked 1 Oct 2026
- Java checks
- For Android and Java, Infer checks null pointer exceptions, resource leaks, annotation reachability, missing lock guards, and concurrency race conditions.checked 1 Oct 2026
- 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.checked 2 Oct 2026
- License
- The Infer repository states that Infer is MIT-licensed, while noting that enabling Java support may require GPL-licensed components.checked 1 Oct 2026
- Limit
- Infer analyzes files captured during compilation, so if no file is compiled, no file is analyzed.checked 2 Oct 2026
- Pulse
- Pulse is an interprocedural memory safety analysis that can detect null dereferences in Java.checked 1 Oct 2026
- Purpose
- Infer is a static analysis tool that produces a list of potential bugs from Java or C/C++/Objective-C code.checked 1 Oct 2026
- Support
- The project directs users to GitHub issues and the #infer IRC channel on Libera Chat for questions and issue reports.checked 2 Oct 2026
- Supported languages
- Infer is a static program analyzer for Java, C, C++, Objective-C, and Erlang, written in OCaml.checked 1 Oct 2026
- 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.checked 2 Oct 2026
- What it does
- Infer is a static analyzer that reports potential bugs in source code before it ships.checked 2 Oct 2026
Where it runs
- Browser demo
- Infer can be tried on a small example in a browser through Codeboard.checked 1 Oct 2026
Money
- 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.checked 1 Oct 2026
The company
- 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.checked 2 Oct 2026
The full review of Infer
Overview
Infer is a free static analyzer for developers who want potential bugs flagged in Java, C, C++, Objective-C, or Erlang before code ships. It is most compelling for teams with builds on Linux or macOS and an existing compilation workflow; its cross-file analysis is useful, but setup depends on capturing compilation and Windows is out.
Key features
Infer captures compilation commands, analyzes the files included in those builds, and writes reports that developers can explore with infer explore. Tying analysis to the build makes it practical to fit into established workflows, but creates a firm coverage boundary: a file that is not compiled is not analyzed. For CI, the recommended approach is to identify modified files and run reactive analysis from those files.
Its checks address different risks by language. For Java and Android, they cover null-pointer exceptions, resource leaks, annotation reachability, missing lock guards, and concurrency races. For C, C++, and Objective-C, they include null dereferences, memory leaks, coding conventions, and unavailable APIs. The ability to reason across functions or methods in different files helps with bugs that depend on interactions rather than a single local expression.
Pulse provides interprocedural memory-safety analysis, including null-dereference detection in Java, while RacerD focuses on thread safety. Cost analysis estimates asymptotic function complexity for Java and C-family code. Hack support is experimental; cost analysis does not support Python, Rust, or Swift. These specialized analyses add value when those checks match a team's concerns, but they do not make Infer a universal analyzer across every language or concern.
Documented build integrations include ant, Buck, CMake, Gradle, Make, Maven, xcodebuild, and xctool, as well as compilation databases. Infer can be installed from binary releases, built from source, or run in Docker; a small browser example is available through Codeboard. Meta also uses Infer in its continuous-integration pipeline to verify selected properties of code changes across projects including Facebook, Messenger, Instagram, and WhatsApp. That deployment demonstrates a role in CI, not a guarantee that it will catch every defect.
Pricing
Infer is free: the Infer plan costs nothing and includes static analysis for supported programming languages. Users can choose a downloadable binary, a source build, or Docker, with no paid tier or seat quota to weigh against the core analysis.
The MIT license makes the repository broadly accessible, but enabling Java support may require GPL-licensed components. Teams that need Java analysis should account for that licensing caveat when choosing how to adopt Infer.
Platforms
Infer supports Linux and macOS, with self-hosted and web options also listed. The latest binary release is for Linux and macOS, and Infer is not supported on Windows. The documentation suggests using a Linux virtual machine if a project can compile on Linux, which makes Windows use possible only through that workaround rather than native support.
Support is available through GitHub issues and the #infer IRC channel on Libera Chat. That community-based route may suit teams comfortable troubleshooting in developer forums, but is a weaker fit for organizations that need a dedicated commercial support channel.
Who it's for
Infer is a strong candidate for engineering teams maintaining Java or C-family code that already builds on Linux or macOS and can capture compilation reliably. Its cross-function analysis, multiple build integrations, and reactive CI workflow suit teams that want static checks connected to code changes without a software subscription.
It is a less natural fit for Windows-only projects, builds that do not reliably compile all relevant files, or teams seeking analysis centered on Python, Rust, or Swift. The Erlang language is supported, though the described language-specific checks and cost-analysis coverage focus on Java and C-family code.
Pros and cons
- Pro: Cross-function and cross-file reasoning can surface bugs that depend on interactions across methods, rather than only local code patterns.
- Pro: Free distribution through binaries, source, and Docker removes a license fee as a barrier to evaluating it in existing workflows.
- Pro: Integrations for common build systems and a recommended reactive CI flow make it adaptable to both routine builds and change-focused analysis.
- Con: Compilation capture limits analysis to files actually compiled, so coverage depends on the build capturing the code a team intends to inspect.
- Con: No Windows support means Windows-oriented teams need a Linux VM and a project that can compile there.
- Con: Cost analysis has language gaps, and Java support may bring GPL-licensed components despite the repository's MIT license.
Alternatives
For broader comparison, see C and C++ Static Analysis Tools or Static Analysis Tools.
MATLAB Grader is the more relevant choice for MATLAB work; its free use requires a current MATLAB license under maintenance, and LMS integration requires a qualifying academic license.
CBMC is another free command-line option for readers who prefer a tool under a BSD 4-clause license.
Qodana may suit teams looking for a freemium static-analysis product with a free Community plan, a 30-day detailed history window, and unlimited lines of code and projects.
Semgrep Code is worth considering when a free tier with Code and Supply Chain coverage is a better match; its Free Edition is capped at 10 repositories, 10 contributors, and 60 AI credits.
Clang Static Analyzer is a free, open-source alternative for C, C++, and Objective-C code.
Flawfinder is another free option, distributed under GPL-2.0+.
Parasoft SOAtest offers tailored custom pricing for organizations seeking a paid product with a free plan and trial.
Squish is a paid alternative with a free trial for readers considering a commercial tool instead.
Verdict
Choose Infer if you need free static analysis for Java or C-family projects, can run builds on Linux or macOS, and want checks that reason across functions within an existing build or CI workflow. Its strongest case is broad bug analysis without a license fee; look elsewhere if Windows support, uncaptured-file coverage, or analysis for languages outside its practical strengths is essential.
Getting started
- Open the Infer website and choose a binary release, source build, or Docker image
- Install or build Infer on Linux or macOS
- Connect Infer to a supported build system or compilation database
- Capture compilation commands and source files
- Run analysis and inspect reports with infer explore
- Try the browser example through Codeboard
Limits worth knowing
Infer reports only on files captured during compilation. Its cost analysis supports C, C++, Objective-C, and Java, with experimental Hack support and no Python, Rust, or Swift support.
Questions
Is Infer free?
Yes. The Infer plan is free at no cost.
Which platforms does Infer support?
Infer is available for Linux, macOS, self-hosted use, and a web browser demo. Windows is unsupported.
Which languages can it analyze?
Documentation lists Java, C, C++, Objective-C, and Erlang. Release notes also describe Python and Swift frontends and an experimental Rust frontend.
Does Infer integrate with CI and build tools?
Yes. Documented integrations include ant, Buck, CMake, Gradle, Make, Maven, xcodebuild, xctool, and compilation databases, and Infer is used in Meta's CI pipeline.
Is Infer open source?
The repository states an MIT license, while Java support may require GPL-licensed components.
Alternatives to Infer
- 1

Semgrep Code
Free planOpen sourceWebAPIExtensionLinux8.3From $15 a month - 2

Qodana
Free planWebAPIExtensionLinux7.9From $5 a month - 3

GitHub CodeQL
Free planWebExtensionLinuxmacOS7.5From $30 a month - 4

Understand
APIExtensionLinuxmacOS7.2From $100 a month - 5
CBMC
Free planLinuxmacOSWindows6.5Free plan - 6

CppDepend
LinuxmacOSWindows6.3$599 one-time
