Producing readable, idiomatic Rust code is a major goal of C2Rust, our project to accelerate migration of C code into Rust. One hurdle we faced is the mismatch between C headers and the Rust module system. C and Rust are similar in many ways: they’re both performance oriented languages with explicit memory management and full control over every aspect of the system. Rust’s module system is a huge improvement over C header files.