SuperAPI AI 工具集

rust-unsafe

编程与开发

查看项目

更新于 10-16 09:50

技能介绍

用途:该技能面向 Rust 不安全代码与 FFI 开发,帮助判断何时使用 unsafe、如何编写与审查不安全的底层代码。

主要能力:提供 47 条 unsafe 规则参考,分为通用原则、内存布局、裸指针、union、FFI、安全抽象与 I/O 安全等类别;给出何时使用 unsafe 的判定表(FFI 调用、底层抽象、经测量的性能优化为合理场景);要求每个 unsafe 块附带 SAFETY 注释,公开 unsafe 函数含 /// # Safety 文档。

常见模式:FFI 安全封装(CString/CStr)、带校验的裸指针(NonNull)、未初始化内存(MaybeUninit)、FFI 的 repr(C) 布局;并列出弃用模式与现代替代方案(如 mem::uninitialized() → MaybeUninit)。

工作流与工具:先质疑必要性,再写 SAFETY 注释,随后用工具验证,最后构建安全封装。验证命令包括 cargo +nightly miri test、valgrind --leak-check=full ./target/release/program、RUSTFLAGS="-Z sanitizer=address" cargo +nightly test、cargo check --features ffi、cargo doc --no-deps --open。FFI 工具方向包括 bindgen、cbindgen、PyO3、napi-rs、cxx。

适用场景:编写或审查 FFI 绑定、底层容器实现、与 C 互操作、处理裸指针和未初始化内存。

限制:相关内容为规则与模式参考,不构成具体项目保证;具体性能收益需自行测量,工具可用性依赖 nightly 等环境,其余未提供。