BorrowSanitizer

Lobsters Hottest 工具

摘要

BorrowSanitizer 是一个开源的 LLVM sanitizer,用于检测多语言应用程序中 Rust 特有的别名违规,旨在足够快以支持模糊测试,并支持 Rust、C 和 C++ 互操作。

<p><a href="https://lobste.rs/s/jkv2du/borrowsanitizer">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/08/04 11:45

# 简介 - BorrowSanitizer 来源:https://borrowsanitizer.com/ > 查看我们 2026 年的最新状态更新 (https://borrowsanitizer.com/status/latest)!👀 **BorrowSanitizer** 是一个动态分析工具,用于检测多语言应用程序中 Rust 特有的别名(aliasing)bug。 BorrowSanitizer 项目标志 Rust 编译器通过限制别名和可变性,提供了强大的*静态*安全保证。然而,开发人员可以通过使用一部分 `unsafe` (https://doc.rust-lang.org/book/ch19-01-unsafe-rust.html) 功能来绕过这些限制。这些功能对于 Rust 与其他语言互操作是必要的。但是,如果开发人员错误地使用了不安全代码,他们就可能违反 Rust 别名模型的规则,而编译器依赖该模型来优化程序。错误的优化可能会引入安全漏洞。 Rust 开发人员可以使用 Miri (https://github.com/rust-lang/miri)(一个解释器)来查找别名 bug。Miri 是**唯一**能够发现违反 Rust 最新 Tree Borrows (https://www.ralfj.de/blog/2023/06/02/tree-borrows.html) 别名模型行为的工具,但它无法在外部代码中发现这些 bug。Miri 的运行速度也比本机执行慢得多,这使得它不适合用于模糊测试或基于属性的测试等方法来查找这些 Rust 特有的 bug。 BorrowSanitizer 是一个用于查找别名违规的 LLVM sanitizer。我们的目标是使其速度足够快,可用于模糊测试工具,并支持 Rust、C 和 C++ 的互操作。我们打算将其打造为生产级工具。 如果您有兴趣贡献,或者对我们的项目有任何其他问题,请加入我们的 Zulip (https://bsan.zulipchat.com/)。您可以按照下一节中的设置说明来构建和测试我们的 sanitizer。我们所有的代码都是开源的,并在 GitHub (https://github.com/borrowsanitizer) 上公开可用。 https://borrowsanitizer.com/setup.html https://borrowsanitizer.com/setup.html

相似文章

you_can::turn_off_the_borrow_checker

Hacker News Top

介绍了一个用于教学目的的 Rust 宏,它能抑制借用检查器的错误,但警告说该宏在生产环境中不安全。

无类型检查的生命周期借用检查

Lobsters Hottest

一篇博客文章介绍了一种玩具语言,它在运行时而非静态类型系统中强制执行借用检查,通过在栈上使用轻量级引用计数来支持内部指针和单一所有权,适用于动态类型环境。

在 nightly 上启用下一代借用检查器

Lobsters Hottest

Rust 博客宣布在 nightly 构建中启用下一代借用检查器 Polonius Alpha,带来流敏感的借用检查,并为今年晚些时候的稳定化铺平道路。

Cpp2Rust: 从C++到安全Rust的自动翻译

Lobsters Hottest

Cpp2Rust 是一个开源工具,利用 clang 的 AST 和一个运行时库,自动将 C++ 代码转换为安全的 Rust 代码,支持安全和 unsafe 两种输出模式,实现安全的内存安全转换。