How do you rewrite C/C++ projects to Rust?
5 days ago
- 将C/C++项目迁移到Rust对于提高安全性和减少维护是实用的,但需要战略性的方法。
- 成功的迁移是渐进式的,从集成到现有构建和发布流程中的独立模块开始。
- 迁移的理想候选包括性能敏感、并发或安全关键的代码库,这些代码库的维护成本很高。
- 完全重写仅适用于具有详尽测试和稳定API的小型代码库;否则,增量迁移更安全。
- 从没有依赖关系的叶子模块开始迁移,尽早解决集成挑战,然后逐步扩展。
- 纵向切片方法能更快地展示业务价值,但涉及复杂的FFI且初始安全收益较少。
- Rust的FFI是最具挑战性的部分,需要仔细手动跟踪跨边界的指针、所有权和内存分配。
- 通过逐步建立信心来准备:解决集成问题,保持FFI清晰,并确保团队学习Rust。