> Is it memory safe enough
I'd say for the vast majority of use cases, it is.
Pluggable allocators + good test coverage make it trivial to catch a lot of the more common memory issues and exhaustive switches are quite robust (though it can be tricky when the branches vary according to the target platform).
Also, it is far easier to code in an exploratory, iterative fashion in Zig than it is in Rust.
Overall, I think with Zig and Go you can cover a lot of programming use cases. In fact, I find Go to be pretty damn fast out-of-the-box and in a lot of real world scenarios can match Zig/Rust (production builds). All three have room for fine tuning (at the expense of readability), though of course the ceiling is much higher in Zig and Rust.
Not to mention, Rust won't protect you from logic issues, you can definitely do the wrong thing correctly.