The secret life of std
- You can call
"text".parse::<T>()
on all types T
that impl std::str::FromStr for T
- You can
.collect()
into a Result<T, E> where T: FromIterator
- Formatting syntax (as in
format!("{:#?}", vec!["lorem"])
) is really powerful (it includes compile-time left pad!), you should read the fmt
docs.
Wonders of Rust documentation
The ancient treasures of crates.io
- custom_derive! in all its
macro_rules!
glory, by Daniel Keep
- quick-error makes creating error enums easy
- conv, a bunch of conversion traits that go beyond what
std::convert
offers, by Daniel Keep
- difference.rs, a text diffing library with built-in diffing assertion, by Johann Hofmann
- strsim: “Implementations of string similarity metrics. Includes Hamming, Levenshtein, Damerau-Levenshtein, Jaro, and Jaro-Winkler.” By Danny Guo. I can never remember this crate’s name!
- itertools by bluss, because Iterators are awesome.
- The contain-rs GitHub organisation which not only has a funny name but also a bunch of crates for various data structures. (While I have seen this crate, I’m still looking forward to popular, idiomatic, persistent data structures.)
- quickcheck (and everything else) by Andrew Gallant
- typenum, compile-time numbers in Rust, by Paho Lurie-Gregg and Andre Bogus.
- timely dataflow, a low-latency cyclic dataflow computational model. Awesome stuff, like all the other projects by Frank McSherry.
The private life of Rust work in progress
- futures-rs, a WIP implementation of future, promise, and (async) stream types, by Alex Crichton. Now public!
- miri, an interpreter for Rust’s mid-level intermediate representation, by Scott Olson.