jjpe: jjpe: The very strong bias against putting significant new functionality in stdlib

Correct. std is not a dumping ground for features that are not fundamental to using Rust. Hence why the available collections are sparse, and why there’s a TCP socket but no HTTP server (unlike, say, the Java std). New functionality is added by RFC, because everyone (except for #![no_std] crates and the embedded people) links std .

jjpe: jjpe: Meanwhile, random libs can do whatever they want, and thus are much more suitable to evolution.

Not all libs are “random libs”. Quite a few crates, which include things more languages have as part of their std, are controlled directly by Rust itself (see rand , regex , num , and the pseudonymous lazy-static ). The only reason they’re out-of-tree is because they are not tied to Rust’s six-week release schedule. These crates make similar breakage guarantees though, by way of “an almost fanatical devotion to” semver, which is the Rust way.