Arc vs Rc for library writers

65 points azuled

I maintain a fairly large crate. The library itself is single threaded. Internally it uses Rc exclusively because nowhere inside the library does it use threads.

Is it necessary to transition every use of Rc into Arc in order for the library to be used in multi-threaded contexts?

I'm interested in discussion here, I think. I can see the argument for switching to Arc, but I'm not sure if I fully understand if it makes sense, and I'm not familiar enough with multi-threaded rust code to know.