Bindgen is the most popular and mature tool and is maintained by the Rust project. It is used to create bindings for C code (and some C++) in Rust code. Cbindgen can be used to create C bindings to Rust code. The other tools below are for C++ interop; cxx is the current favourite tool with the community, but is not suitable for all use cases.

You may want to use COM/WinRT for inter-language interaction, the best Rust support for COM and WinRT is in windows-rs.


Unsafe programming

Resources for learning about unsafe programming: