Re:Rust and C++ Interoperability in Chrome
by muizelaar on Wednesday August 19, 2020 @02:20PM
(#24213962)
Mozilla's uses a combination of https://github.com/eqrion/cbindgen and https://github.com/rust-lang/rust-bindgen depending on the direction of interop. These tools don't provide the safety guarantees of https://github.com/dtolnay/cxx but the also both predate cxx and C++ doesn't have much in terms of safety guarantees to begin with so the bar is pretty low.
[ Parent
| on HN ]
Re:Rust and C++ Interoperability in Chrome
by jcranmer on Wednesday August 19, 2020 @02:35PM
(#24214234)
It's also worth mentioning that Mozilla tends not to use a lot of standard C++ types, using nsTArray instead of std::vector or nsA?C?String instead of std::string. This makes the porting of APIs using arrays or structs easier, since Mozilla owns the ABI rather than needing to worry about different standard libraries having different ABIs.
Re:Rust and C++ Interoperability in Chrome
by ChrisSD on Wednesday August 19, 2020 @02:51PM
(#24214512)
C++ interop with C++ can be a pain. E.g. even with the same version of the same compiler, GCC can have different options enabled that affect the layout of some types.