Even Python has it: https://docs.python.org/3/library/multiprocessing.shared_mem...
Even Python has it: https://docs.python.org/3/library/multiprocessing.shared_mem...
The point is that it doesn't protect the user of a crate that only exposes a fully safe API, unless they do digging to validate overall architecture safety.
It's not "even". Python specifically has it because it has no real threading.
Note this does not mean that python code is thread-safe by default. At most, you can theoretically rely on bytecode operations to be atomic, which means you'll need to synchronize multi-threaded code with mutexes, semaphores and higher-level synchronization constructs.
What data races between processes, other than Disk/IO, databases, or external services, can a Rust program have?
I explicitely exclude the whole category of external services, since that is "by design" really. And the whole reason for ACID, global mutexes, transactions and CRDTs.