作者回顾了一个C++项目到Rust的增量式重写过程,总结了Rust的优势和遇到的挑战。优势包括简化代码、提升性能、更容易发现代码bug、方便的跨平台编译和内置测试框架。劣势主要集中在与C/C++交互时,`unsafe`代码块易引入未定义行为,Miri和Valgrind的局限性,内存泄漏问题,跨平台编译和Cbindgen工具的不足,不稳定的ABI,缺少自定义内存分配器的支持,以及Rust本身和FFI相关的复杂性。作者认为Rust在纯Rust项目中表现出色,但在与C/C++交互时仍存在很多问题,并表示未来可能会考虑使用Zig进行类似的重写工作。