Unsafety
Unsafe operations are those that can potentially violate the memory-safety guarantees of Rust’s static semantics.
The following language level features cannot be used in the safe subset of Rust:
- Dereferencing a raw pointer.
- Accessing a field of a
union
, other than to assign to it.
- Calling an unsafe function (including an intrinsic or foreign function).
- Implementing an unsafe trait.
- Applying an unsafe attribute to an item.
1
Prior to the 2024 edition, extern blocks were allowed to be declared without unsafe
.