The gist of it is: it's really easy.
http://jakegoulding.com/rust-ffi-omnibus/
It's got a nice breakdown of how to bring rust libraries into a few languages. There are a few tutorials about how to make rust produce a static or shared library, but it's pretty straightforward.
> header files are a Rust-to-C++ issue only
Or... C? (And of course other languages too, as just discussed.)
Hence the "not necessarily" in my comment. The parent seemed to be painting this as extra unnecessary work; I was saying that a header file is _not_ necessary except for binding to C/C++.
If you want to write a C API that will be called from many languages; you should have a header file so that bindgen tools can consume it. If you want an API that will only be called by Python .... not so necessary, you may want a header file anyway but it depends on the situation.
> Or... C?
Sure, goes without saying :)
https://github.com/Sean1708/rusty-cheddar
I haven't used it personally, but it looks useful.
This is the second post I have seen in the last couple of days of "glibc is bad lets rewrite it in Rust". However the problem is not that glibc is just bad but rather everything links to it. If other languages can't talk to Rust easy this would be a nicer problem to focus on first (before rewriting glibc).
I guess this is sort of how its done: http://siciarz.net/24-days-of-rust-calling-rust-from-other-l...
Rust -> C <- Other language. You have to create the C header files (I'm surprised Rust compiler or something similar doesn't automate this).