Rather than use a garbage collector, or have programmers allocate memory manually, Rust use a model of ownership rules to allow the compiler to check when to allocate and free memory. This does not occur at run time (no performance penalty).