rust-lang avatar

rust-lang/miri

6.5k 518 58
Rust Apache-2.0
创建于 10 年前 最后更新 今天 +7 stars today

AI 综合评分

63 B 级
代码质量
58
文档质量
66
社区健康
60
项目活跃
68
创新性
55

项目简介

Rust 中级中间表示的解释器,用于代码检查与测试

项目摘要

【主题】

Miri 是 Rust 语言的 MIR(中级中间表示)解释器,用于检测未定义行为和验证代码正确性。

【核心分点总结】

  1. 未定义行为检测:Miri 能捕获 Rust 代码中的未定义行为,如越界访问、释放后使用、数据竞争等,帮助开发者避免潜在安全漏洞。
  2. MIR 解释执行:直接在 MIR 层解释执行 Rust 代码,无需生成机器码,支持交叉检查和动态分析。
  3. 测试与验证:与 cargo miri 集成,可替代标准测试环境,确保 unsafe 代码的正确性。
  4. 常量求值引擎:扩展 Rust 编译器的常量求值能力,支持更复杂的 const 计算。
  5. 平台抽象:模拟不同目标平台的行为,便于跨平台代码验证。

【行动指南】

  1. 使用 cargo miri test 替换常规测试,检测 unsafe 代码中的未定义行为。
  2. 在持续集成流程中集成 Miri,作为代码安全检查环节。
  3. 启用 -Zmiri-detailed-logs 获取更详尽的执行追踪,方便调试。

【金句总述】

Miri 是 Rust 安全性的哨兵,让未定义行为无处遁形。

【故事性收尾】

自从在 CI 中加入 Miri,开发者小李再也不用担心 release 前的内存错误排查——每次 cargo miri test 跑完后,那整齐的绿色通过标志让他能安心地喝下最后一口咖啡。