Introducing tmux-rs
10 months ago
- #Rust
- #C-to-Rust
- #tmux
- Collin Richards将tmux从C语言移植到Rust作为业余项目,目前已实现100% Rust代码的重要里程碑。
- 最初采用C2Rust工具转换,但生成代码难以维护,最终转向人工重写。
- 构建流程从链接Rust到C二进制文件,演变为使用`cc` crate构建包含C库的Rust二进制文件。
- 遇到若干有趣bug,包括类型不匹配和函数声明错误等问题。
- 将原始指针、`goto`等C语言模式转换为Rust实现,过程中面临Rust安全机制的挑战。
- 为红黑树、链表等数据结构重新实现了侵入式宏的Rust版本。
- 用`lalrpop`替代Yacc解析器,从而彻底清除了残余的C代码。
- 开发工具使用Vim配合自定义宏,并辅以Cursor等AI工具,但仍需人工审核。
- 尽管当前存在稳定性问题,项目下一步计划向安全Rust代码过渡。