[`cargo careful`](https://github.com/RalfJung/cargo-careful) is here to close this gap:
when invoked the first time, it builds a standard library with debug assertions from source, and then runs your program or test suite with that standard library.
-Installing `cargo careful` is as easy as `cargo install cargo-careful`, and then you can do `cargo careful run`/`cargo careful test` to execute your binary crates and test suites with an extra amount of debug checking.
+Installing `cargo careful` is as easy as `cargo install cargo-careful`, and then you can do `cargo +nightly careful run`/`cargo +nightly careful test` to execute your binary crates and test suites with an extra amount of debug checking.
This will naturally be slower than a regular debug or release build, but it is *much* faster than executing your program in [Miri](https://github.com/rust-lang/miri) and still helps find some Undefined Behavior.
Unlike Miri, it is fully FFI-compatible (though the code behind the FFI barrier is completely unchecked).