Stdx - The missing batteries of Rust

The recent discussions around this subject motivated me to refresh stdx.

It's now up to date with Rust 1.15 and custom derive. The version is 0.115.0-rc, with the -rc on there because the 0.9 serde line is still only in -rc.

This was a big revision, and stdx is now firmly oriented toward teaching, with a single illustrative example of every single crate. I made a bunch of changes to the crate composition, with clap replacing docopt, adding reqwest, rayon, error-chain, and others. There are too many changes to describe, so please give it a look.

This as an interesting upgrade experience. The stdx Cargo.toml file uses exact version requirements, and this time that exposed an incompatibility between the crates I was using, where clap wouldn't let me upgrade libc fully.

That made me realize that, even if stdx never becomes a crate that one would use like std, simply linking it into your crate dag has an interesting, and fairly desirable effect of locking down these crates to the stdx-approved version. I think there's a lot of possibilities for verification along those lines, like testing arbitrary crates using the stdx version lock to ensure broad compatibility.

I also noticed that there are a number of crates here with serde features, and none are yet compatible with the 0.9 series. I think stdx and projects like it can take a role in ensuring that e.g. all the stdx crates are working correctly with serde and otherwise establishing conventions for compile-time features.

8 Likes