I've made a crate called 'ustr' that does fast, C-compatible string interning: https://github.com/anderslanglands/ustr
I haven't published it yet as it contains a lot of unsafe code and I want to use it in anger and gather some feedback for a while to make sure it's sound before I put it on crates.io.
I wrote it based on OpenImageIO's ustring type https://github.com/OpenImageIO/oiio as I need fast string interning for a renderer project, and I also wanted to be able to share those strings with C without adding all the CString boilerplate at the ffi boundary.
Things still left to do:
- make sure it's sound.
- investigate memory usage properties and see if there's any optimizations necessary there.
- investigate generating Ustrs at compile time and being able to use them transparently.