arXiv · 2604.17261
&inator: Correct, Precise C-to-Rust Interface Translation
Abstract
Automatically translating system software from C to Rust is an appealing but challenging problem, as it requires whole-program reasoning to satisfy Rust's ownership and borrowing discipline. A key enabling step in whole-program translation is interface translation, which produces Rust declarations for the C program's top-level declarations (i.e., structs and function signatures), enabling modular and incremental code translation. This paper introduces correct, precise C-to-Rust interface translation, called &inator. &inator employs a novel constraint-based formulation of semantic equivalence and type correctness including borrow-checking rules to produce a Rust interface that is correct (i.e., the interface admits a semantics-preserving implementation in safe Rust) and precise (i.e., it uses the simplest, least costly types). Our results show &inator produces correct, precise Rust interfaces for real C programs, but support for certain C features and scaling to large programs are challenges left for future work. This work advances the state of the art by being the first correct, precise approach to C-to-Rust interface translation.
Explore related subjects
Keep this discovery
Victor Chen, Ayden Coughlin, Michael D. Bond. 2026-04-19. &inator: Correct, Precise C-to-Rust Interface Translation. https://arxiv.org/abs/2604.17261
Cite the original work for its findings. Save a collection to share your selection of sources.