A networking layer for multiplayer games:
Provide direct support for popular game engines:
Supports multiple languages:
... or wrapping it in a mutex.
It's safe to access from different threads, so long as only one thread accesses it at a time.
It doesn't use global variables
There's no shared state, methods mutate data within the struct in an unsynchronized way.
Rust has conventions for this:
Box<T>
&mut T
&T