tmux-rs: Uma jornada de 100 mil linhas de código de C para Rust (inseguro)

2025-07-03

Em seis meses, o autor pacientemente portou as ~67.000 linhas de código C do tmux, o multiplexador de terminal, para Rust, resultando em uma base de código de ~81.000 linhas. Tentativas iniciais usando o transpilador C2Rust se mostraram difíceis, levando a uma reescrita manual. O autor detalha o processo de construção, bugs encontrados e estratégias para converter os idiomas C para Rust, incluindo o tratamento de ponteiros brutos, instruções goto e macros intrusivas. O projeto culmina em uma reimplementação baseada em lalrpop do analisador yacc, alcançando uma migração completa de C para Rust e culminando em um lançamento 0.0.1. A jornada mostra os desafios e recompensas da portabilidade de código em larga escala.

Desenvolvimento C para Rust