A C header is not needed at runtime, it is purely a way to easily describe the symbols in a library that exist in a (somewhat) type-safe way. It&#x27;s the lingua franca for describing libraries, and tooling (such as Rust&#x27;s bindgen, or Python&#x27;s cffi) can consume them to do the setup&#x2F;create the information necessary to call functions from other languages. This is much nicer than manually trying to transcribe the Rust (or whatever) signatures into your application.<p><i>&gt; header files are a Rust-to-C++ issue only</i><p>Or... C? (And of course other languages too, as just discussed.)