Javaソースコードをコーディング規約に照らしてチェックする静的解析ツール。XMLで設定でき、コマンドライン、Ant、Mavenから実行できます。
meta/infer
Java、C、C++、Objective-Cのコードを実行せずにバグを検出する静的解析ツール。
- スター
- 15,746
- フォーク
- 2,101
- 未解決の Issue
- 194
- 最終コミット
- 一昨日
これは何?
Inferは、プログラムを実行せずに、ヌルポインタのデリファレンス、メモリリーク、リソースリークなどのバグがないかソースコードを検査する静的解析ツールです。Java、C、C++、Objective-Cに対応しており、OCamlで実装されています。
Inferはパッケージ化されたリリースとして配布されているほか、ソースからビルドすることもできます。プロジェクトのドキュメントでは、インストールやコントリビューションの手順を説明しています。Javaのサポートを有効にするには、GPLライセンスのコンポーネントのインストールが必要になる場合があります。
このプロジェクトはMITライセンスで、facebook organizationのオープンソースリポジトリとしてメンテナンスされています。
主な機能
- 01ヌル参照やメモリリーク、リソースリークなどのバグを静的解析で検出します。
- 02Java、C、C++、Objective-Cのコードベースに対応しています。
- 03パッケージ化されたリリースを利用でき、ソースからビルドすることもできます。
- 04OCamlで実装されており、MITライセンスで提供されています。
ユースケース
- リリース前に、CやC++のプロジェクトでメモリリークやリソースリークを検出する。
- コードレビューやCIで、Javaのコードベースにあるヌルポインタ関連のバグを見つける。
- Objective-CのiOSまたはmacOSのコードをスキャンして欠陥を検出する。
クイックスタート
- 1
パッケージ版のInferについては、Getting Startedページをご覧ください
- 2
ソースからビルドするには、INSTALL.mdに従ってください
使う前に知っておきたいこと
- Javaサポートを有効にするには、GPLライセンスのコンポーネントをダウンロードしてインストールする必要がある場合があります。
トピック
よくある質問
- infer とは?
- Java、C、C++、Objective-Cのコードを実行せずにバグを検出する静的解析ツール。 Inferは、プログラムを実行せずに、ヌルポインタのデリファレンス、メモリリーク、リソースリークなどのバグがないかソースコードを検査する静的解析ツールです。Java、C、C++、Objective-Cに対応しており、OCamlで実装されています。
- infer は無料で使えますか?ライセンスは?
- infer は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- infer は今もメンテナンスされていますか?
- 活発にメンテナンス中。infer の最終コミットは 2026年11月5日 です。
- infer は何に使えますか?
- リリース前に、CやC++のプロジェクトでメモリリークやリソースリークを検出する。 コードレビューやCIで、Javaのコードベースにあるヌルポインタ関連のバグを見つける。 Objective-CのiOSまたはmacOSのコードをスキャンして欠陥を検出する。
- infer のインストール方法は?
- パッケージ版のInferについては、Getting Startedページをご覧ください ソースからビルドするには、INSTALL.mdに従ってください
- infer はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/meta/infer
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
ECMAScript/JavaScriptの問題のあるパターンを検出し、多くの問題を自動修正できる、プラグイン対応のリンターです。
実行せずにPHPコードのバグを見つける静的解析ツール。
Pythonコードを実行せずに解析し、エラーの検出、コーディング規約の適用、コードスメルの指摘を行う静的解析ツールです。
golintの置き換えとして使える、高速で設定可能なGoリンター。独自ルールや出力フォーマッターにも対応します。
Rust製のPythonツール。コードベースのモジュール依存関係と公開インターフェースを可視化し、ルールを適用できます。