You might want to look into using `Arc<str>`. It's an immutable string slice that can have many owners and will be dropped once the last one is done with it.
Does that answer the question? Could you expand on what you mean by sharing `&str`?
I consider it a midpoint between `String` and `&str`. Most of the convenience of `String` (barring mutation) but less costly.