BurtonQin 发表于 2024-07-18 22:59
Tags:Rust checkers, linter, static checker, dynamic checker, verifier
随着 Rust 编程语言的日益流行,对强大的程序分析工具的需求也变得愈发重要。这类工具能够检测常见的编程错误和安全隐患。Rust 生态中已经有了好几款不错的检测器和 linter 工具,能帮助开发者编写更安全可靠的代码。我收集了最近一些值得关注的 Rust 检测器,并整理了一个列表,供大家参考:
https://burtonqin.github.io/posts/2024/07/rustcheckers/
我把这些 Rust 检测器分为了四大类:linter、静态检测器、动态检测器和形式化验证器。对于每款检测器,我都包括了以下信息:代码和论文链接、所使用的中间表示(IR)、可检测的错误类型、底层技术方法,以及当前的维护状态。
除了开源的检测器,我还列举了一些学术论文,即使我现在还没找到随附的公开代码,但这些论文在 Rust 程序分析方面很有见地,也是值得学习的。
我整理这个列表的目的就是让 Rust 社区能了解现在有哪些可用的程序分析工具、它们有哪些功能以及 Rust 检测器开发的整体状态,这样一来,开发人员可以更轻松地驾驭生态系统,根据特定需求选择合适的工具。
我的新检测器Lockbud:
除了整理现有的 Rust 检测器,我还自主研发了一款新工具 "Lockbud"。Lockbud 是一款静态分析工具,旨在检测 Rust 代码中的各类并发和内存安全问题,如double-locks、conflicting lock orders、atomicity violations、use-after-free等。Lockbud 是我受宋教授指导合作完成的最新 TSE 论文的成果,这篇论文基于我们之前在 PLDI 发表的研究工作。这是项目的地址: https://github.com/BurtonQin/lockbud 。尽管 Lockbud 还不太成熟,但它已经在 12 个实际 Rust 代码库中发现了 96 个此前未曾发现的 bug。
从我自己开发检测器和评估其他检测器的经验来看,目前Rust生态急需建立一个统一的静态分析框架。这样的框架能够更无缝地集成各类创新的检测算法,进一步提升 Rust 生态系统的整体安全性和易用性。
如果您有任何新的 Rust 检查器项目、相关研究论文或改进 Rust 分析环境的建议,欢迎随时发帖与大家分享。我一直在关注最新的发展动态,并愿意与社区进行交流。
[本人,非翻译,欢迎交流]
Ext Link: https://burtonqin.github.io/posts/2024/07/rustcheckers/
评论区
写评论rust确实需要一个好的集成工具 你列举的还是比较重要的 目前rust静态检测只能在特定的nightly版本上运行 难以保持与rust的高频更新 检测器大多还不太成熟 fp fn比较多 所以检测可以 但离完全集成还有距离
--
👇
苦瓜小仔: 很棒的检测工具清单。
最近我开始写这个集成检测工具。虽然工具名称暗示与操作系统相关,但仅仅是以它为背景而起的名字。一些思考见 issues。
https://github.com/os-checker/os-checker
可能浏览器不太兼容 直接复制链接就行
--
👇
tyree3: 奇奇怪怪,前面这个链接,https://github.com/BurtonQin/lockbud ,点进去跳转地址是 https://rustcc.cn/(https://github.com/BurtonQin/lockbud)
奇奇怪怪,前面这个链接,https://github.com/BurtonQin/lockbud ,点进去跳转地址是 https://rustcc.cn/(https://github.com/BurtonQin/lockbud)
很棒的检测工具清单。
最近我开始写这个集成检测工具。虽然工具名称暗示与操作系统相关,但仅仅是以它为背景而起的名字。一些思考见 issues。
https://github.com/os-checker/os-checker