I had the impression Rust tries to get memory safety without the need/overhead of GC.
It's a little less strong than your impression. Memory absolutely can be a problem, but instead of looking over the entire program to find it, you know the problem comes from a marked unsafe block.