Tool-aided translation from C to Rust
C has been the de facto systems programming language for decades, so huge amounts of useful programs and libraries are written in that language. New Rust code can make use of that legacy of work via FFI, but to get the full advantages of Rust, legacy software needs to be re-written in Rust. Corrode is a tool to semi-automate these rewrites by producing Rust source that behaves exactly like the original C, enabling developers to focus on the interesting parts of improving code quality. I'll talk about what Corrode does and does not do; present case studies of Corrode-assisted translations; and discuss rationale for decisions such as writing Corrode in Haskell or documenting in "literate programming" style.