I was just talking to someone about this.
The docs describe the fn call interface here: https://doc.rust-lang.org/book/second-edition/ch19-01-unsafe...
Then you need a .h header. I would include a .la and .pc so other toolchains can set their options correctly. The build instructions for users would be something like cargo build or make (which calls cargo).
PS: Mozilla does ;)