Recently, I've noticed that the overhead added by Rust's standard library to every Rust binary is too small! Every Rust executable already contains a symbolicator and a parser for external debug symbol archives. The archives may be compressed, so every Rust executable also includes a gzip decompressor. However, the archives also support zstandard compression, which doesn't work with libstd's backtraces! It's because the normal build of the standard library for some reason chose not to also bundle a full zstandard decompressor into every Rust binary.
It might take a while before Rust has a stable ABI, especially one that is complete enough to support all of libstd, and has mechanisms for long-term forward- and backward- compatibility.
However, dynamically linking all of libstd using a Rust-native ABI isn't necessary to get the benefits.
How about creating (an optional build of) libstd that depends on a simpler libstd-private dynamic library just for its common bulky code?
libstd would continue to be statically linked, but it could call to a shared library for some of its functionality, like the backtrace support with gzip and zstd, and select stable and boring parts of libstd that could be put behind a C ABI (rng, helpers for fmt, unwinding, Unicode routines). The compatibility risk for this is low, because newer versions of libstd can simply choose to stop using some no-longer-useful parts of the private library, or abandon it altogether.
This would allow operating systems start shipping base libraries for Rust. Even if it's not going to be much in the beginning, it will help establish processes for doing so for OS vendors and software distributors.
It could also be a way for operating systems to start adapting Rust-written software for the OS, e.g. instead of every Rust binary having its own copy of miniz_oxide, the OS-provided libstd helper could use the OS's preferred zlib implementation.
It may also help the Rust project to have its own motivation and real-world testing for features like #[export]
/#[repr(crabi)]
.