Unsafe Rust
So far, you can see that Rust has a strict memory safety guarantee at compile time. However, sometimes this safety guarantee can be annoying (or to say for the most of the time).
Therefore, Rust has a second language hidden inside that doesn't enforce these memory safety guarantees: it's called unsafe Rust and works just like regular Rust, but gives us extra superpowers.
When the compiler tries to tell whether or not the code upholds the memory safety rules, it's better to reject some valid programs than accept some invalid programs. This results to that sometimes your code may be OK for you, but won't compile. In these cases, you can use the unsafe
block to tell the compiler that you can guarantee that your code is acceptable.
Another reason Rust has an unsafe alter ego is that the underlying computer hardware is inherently unsafe. If Rust didn't let you do unsafe operations, you couldn't do certain tasks.
Unsafe Superpowers
You can take five operations in unsafe Rust, called unsafe superpowers, that you can't in safe Rust.