Rust SIG Meeting - 2026-03-31 #21
Replies: 10 comments
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
tshepang |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
@odra (Leonardo Rossetti) |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hey folks 👋 welcome to our 6th meeting of 2026.
Rust SIG Meeting 2026-03-31
Agenda
Solicitation of notetaker
Rust Watercooler Chat Topic - A Rant about C++ <=> Rust Interop; Markus Hosch - BMW
Review GitHub repo content and discuss how to enrich (Pete)
Office hours - Rust + Automotive questions - come chat! (All)
Discuss upcoming events / news related to Rust & Automotive (All)
Meeting close
Check-in area
(around ~15 folks total max at one point)
Housekeeping section, please add
Tasks
Meeting Minutes
A Rant about C++ <=> Rust Interop; Markus Hosch - BMW
Markus works on the Eclipse S-CORE communications library; complex and large C++ codebase
Spoiler: Rust <=> C++ interop is only so-so
Maybe obvious or not but C++ and Rust approach things differently
Rust <=> C++ Generics
Brief list of tools that are there to help ease the integration of C++ and Rust:
cxx
How to use cxx on Rust side:
mod) with certain macro:#[cxx::bridge]OpaqueInt#[cxx_name = "ExecuteCppFunction]fnunsafeultimatelyOn C++ side:
UniquePtrResulttype alias to ayourcompany::Result<std::unique_ptr<OpaqueInt>>Templates?
std::unique_ptr<T>andstd::vector<T>this is supportedstd::stringis done over top ofstd::basic_string<T>type MyConcreteType = Templated<i32>;Getting into details on cxx bridge
impl UniquePtr<OpaqueInt> { /* .. *. / }Still some trade-offs, even using cxx
std::unique_ptr<t>indirectionArena/custom allocators?
std::unique_ptr<T>can have custom deleters that know how to reclaim resources rather than a plaindelete()std::unique_ptr<T>Did you end up forking to get this capability of arene/custom allocators?
std::vector<T>supports custom allocators, but also not supported in cxxautocxx
Tried autocxx once; via Google
crubit
Seems quite complete; via Google
bindgen
Useful for C
zngur
Relatively more new
WebAssembly Interface Types (WIT)
Often it's done to have no memory sharing between WebAssembly Modules (wasm)
Overall
Currently Eclipse S-CORE has chosen cxx
Challenges
Cannot really at times explain the move-ability semantics from C++ in Rust
Guiding development of communications framework in Eclipse S-CORE
std::expected<T, E>on top ofstd::variantstd::variant#[cfc(xx = libcxx_layout)]#[libcpp_derive::import]listed on types to generate the necessary boilerplates for themOther bits about FFI?
#t-lang/interop > Interop Problem Space Mapping - Weekly Updates
Example
Stuff coming up for Rust
RustWeek 2026
Requested topics
Material
Any material to read before the meeting should be included here.
Beta Was this translation helpful? Give feedback.
All reactions