这是干什么的?
Infer 是一个静态分析工具,不用运行代码就能通过分析找出 Java、C、C++ 和 Objective-C 代码里的 bug。它托管在 Facebook 的 GitHub 下,用 OCaml 编写。
它是导入用的库,还是运行的工具?
它是一个独立的命令行分析工具,指向你的代码库来使用,而不是导入的库。这个分析工具本身是用 OCaml 编写的。
从源码构建它需要什么?
由于 Infer 是用 OCaml 编写的,从源码构建意味着要先搭建 OCaml 工具链;具体步骤在 INSTALL.md 里有详细说明。使用打包好的安装包就完全不用折腾这些。
它完全开源吗——许可证上有什么要注意的?
Infer 采用 MIT 许可证。有一点要注意:启用 Java 支持可能需要你下载并安装一些以 GPL 许可证授权的组件。
它能分析哪些语言?
Java、C、C++ 和 Objective-C——一个工具就能覆盖 JVM 代码和原生 C 系语言源码。
Infer 是一个成熟、仍在活跃开发的项目吗?
它从 2015 年起就托管在 Facebook 的 GitHub 组织下,大约有 15.7k 星,仓库里还带有用于安装和部署的 CI 工作流配置。
What are similar projects?
rector, pyright, fallow, ast-grep, static-analysis, ruff, phpstan, semgrep
Which topics is it in?
static-code-analysis, objective-c, code-quality, static-analysis, cli-tool, c, cpp, c++, command-line, developers, java, command-line-tool