In the spring of 2025, I had the opportunity to research C interop for Hylo as part of my bachelor thesis at TU Delft. I studied existing technologies, made interviews with interop tool authors and compiler engineers, and made a couple of targeted prototypes that validated my ideas. My research plan flipped on its head every week as I discovered new information and talked with new people, which made the project quite challenging, but also just as fun and adventurous, and I eventually graduated.
Read the paper ->
Hylo is a new emerging systems programming language that I became obsessed with last year after watching some conference talks about it. It is designed to be a safe, high-performance language competing with Rust and C++, but with a focus on mutable value semantics, generic programming and maintaining a simple mental model thanks to eliminating references and pointers from the language. If you don’t know Hylo yet, I highly recommend this keynote talk by Dave Abrahams from last year’s C++ On Sea. While the foundations of the language are mostly in place, making a production-ready language is a large undertaking. We welcome new contributors, whether you want to learn, help with language design, compiler implementation, LSP support, a new website, or anything else.
The Paper

Read the paper ->
My paper provides an overview of existing C interop technologies and their challenges. It also proposes a robust interop design for Hylo, which could mostly be applied to other languages. While researching, I noticed that existing tools have significant limitations—not just trade-offs—regarding safety, portability, and ease of use. I believe Hylo has an opportunity to create a developer experience that truly raises the bar.
One of the key proposals is an architecture for the binding generator that captures a C type’s memory layout without the Hylo compiler needing to replicate complex C struct layout rules by leveraging Clang’s frontend. This also allows to handle advanced concepts that are often not mapped in other languages, such as flexible array members, bitfields and untagged unions. Hylo’s computed properties and subscripts are what make this approach particularly nice to use, but it could be similarly implemented in other languages with a bit of syntactic noise when using setters/getters.
This paper is a detailed but still high-level proposal. It is meant to be a starting point for more design and implementation work. It may also serve as the foundation on which we can build C++ interop in the future. I’d love to hear your thoughts, questions, or concerns about this topic and am happy to discuss any part of it.
Acknowledgements
I would like to thank the following individuals for generously sharing their time and expertise in interviews that informed this research:
- David Sankel, principle scientist at Adobe, C++ committee member, and contributor to the Zngur Rust-C++ interop project.
- Michal Brzozowski, creator of the Zenon language.
- Emilio Cobos Álvarez, contributor to Rust Bindgen and CBindgen at Mozilla.
- Nick Matthijssen, creator of the Muon language.
- Timen Zandbergen, a masters student at TU Delft researching safe separate recompilation in Rust.
- Timur Doumler, C++ standards expert and committee member.
I would also like to thank the Hylo contributors for the discussions and feedback on the Hylo C interoperability design, in particular Dimi Racordon, Lucian Radu Teodorescu, and Dave Abrahams. Last but not least, I would like to thank Dénes Balogh for his invaluable help in deploying the ABI Explorer prototype for public use.