Zngur: Simplified Rust/C++ Integration
Talkat RustConf 2026 · on Wednesday, 2026-09-09· at 11:05· Room 510bd | Palais des Congrès de Montréal, Palais des Congrès de Montréal·
summary
Zingar generates C++ headers, C++ sources and generated Rust from a single ZNG file, letting C++ call arbitrary Rust crates with direct, Rust-like APIs; Rust calling C++ requires C++ adapter implementations and three representation choices including CPP heap allocated for compatibility. Adobe reports successful integration into flagship apps for safety‑critical parsers and shows the benefit of Cargo plus normal C++ toolchains (generate, cargo build, clang link). Real example swaps libpng (about 75 CVEs) for a Rust PNG crate with no unsafe code.
AI-written summary · about
chapters (10)
- 0:00Introduction and motivation
- 4:36Zngur overview and design
- 7:27Zngur architecture and workflow
- 9:15C++ calling Rust basics
- 16:38Advanced C++ to Rust features
- 17:00Rust calling C++ challenges
- 21:15Exposing C++ objects to Rust
- 25:26Dynamic traits and real-world use
- 29:19Adobe’s experience and takeaways
- 32:27Q&A session
related talks
25mRust and C++
53mC++/Rust Interop: A Practical Guide to Bridging the Gap Between C++ and Rust
56mGet the best of both worlds: Integrating Rust with other languages
41mWe can have nice things
31mEmbedding Rust in C/C++
36mUsing Zephyr with Non-C Languages
04m"Scaling Safety: Rust at Google”
45mC++ Rust and Qt Easier than you think
