Safety. Performance. Zero-cost abstractions.
Each value in Rust has exactly one owner. When the owner goes out of scope, the value is dropped. No garbage collector needed -- memory safety through deterministic destruction.
References let you use a value without taking ownership. One mutable reference or any number of immutable references -- never both. The borrow checker enforces this at compile time.
Every reference has a lifetime -- how long it remains valid. Rust's compiler tracks lifetimes to guarantee references never outlive the data they point to. Dangling pointers become impossible.
Traits define shared behavior abstractly. Any type can implement a trait, enabling polymorphism without inheritance. Generics bounded by traits give you zero-cost abstraction -- fast and flexible.
A thriving ecosystem of crates, connected by Cargo -- Rust's build system and package manager.