tmux-rs: C에서 (안전하지 않은) Rust로의 10만 줄 코드 이주기
2025-07-03
저자는 6개월에 걸쳐 터미널 멀티플렉서인 tmux의 약 67,000줄 C 코드를 Rust로 이식하여 약 81,000줄의 코드베이스를 만들었습니다. 처음에는 C2Rust 툴을 사용했지만, 생성된 코드는 유지보수가 어렵고 크기가 커졌기 때문에 수동으로 다시 작성하기로 했습니다. 저자는 빌드 프로세스, 발생한 버그, 원시 포인터, goto 문, 침입형 매크로 처리 등 C 코드에서 Rust 코드로 변환하는 전략을 자세히 설명합니다. 최종적으로 lalrpop crate를 사용하여 yacc 파서를 재구현하여 C에서 Rust로의 완전한 마이그레이션을 달성하고 0.0.1 버전을 릴리스했습니다. 이 프로젝트는 대규모 코드 이식의 어려움과 보상을 보여줍니다.
개발
C에서 Rust로