Hmm yeah I'm not surprised that interfacing safe Rust with an existing unsafe C/C++ API is painful. That's really true in every language. (Although I haven't tried Zig tbf.)
I'm also not totally convinced that rewrite from scratch is always the wrong thing. For small projects the total work rewriting can be much less than dealing with this kind of FFI.
I'm also not totally convinced that rewrite from scratch is always the wrong thing. For small projects the total work rewriting can be much less than dealing with this kind of FFI.