Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
When you do need to use unsafe, you can not only use LLVM's sanitizers, Rust has its own runtime analyzer that's really easy to run your test suite under named Miri, it catches a lot of the possible cases for undefined behaviour, and the intent is to eventually evolve it to a point where it catches all forms of undefined behaviour. (See also Loom.)
Rust's powerful type system allows you to encode a lot of your own invariants so the compiler can enforce them. See, for example, the typestate pattern which allows you to enforce correct traversal of any finite state machine at compile time. (The Hyper HTTP library uses it to turn "tried to set a request/response header after the body started streaming" into a compile-time error.)