Funny that, because I just randomly selected it to be crate of this week.
It seems to be quite usable; two example applications uses it already. I’m playing with it for a project of mine.
Blatant self-promotion but my company released https://crates.io/crates/mysql-proxy built on tokio-core (the current crate of the week). It’s a lightweight and scalable proxy where you can easily plug in your own proxy logic to handle packets.
I nominate Either, a simple crate to express either one thing or another. I believe it should be included in libstd.
I think an obvious choice is
ripgrep. It’s a phenomenal piece of work, and is an actually useful program. This isn’t to slight the work others have done on the crates in this list, but
ripgrep is something that people who have no interest in Rust itself can actually get and use. It’s something we can hold up and say “see, you totally can write useful software in Rust; it isn’t just for PL research wanking!”
The one mitigating aspect would be that I’m not sure, at this point, whether
ripgrep needs any more publicity than it’s already gotten.
I nominate llvm_build_utils which allows for stable usage of LLVM bitcode from your Rust code. I found this while working on u128/i128 shim (now accepted as another RFC, though). It might actually be easier to write than assembly if what you really want is an intrinsic or just finer-grained signal to the LLVM optimizer—it has significant potential in my humble opinion.
@llogiq is off for next few weeks. We’ll be back with Crate of the Week section after few weeks!
The rust-phf collection of crates. I love things that do work at compile time instead of runtime.
They’re libraries for working with Rust syntax, made for Macros 1.1 but also work really well for other kinds of code generation, that are easy to use and easy to test.
cargo-benchcmp which generates nice before-after summaries for benchmarks.
(It was nominated before when it was a python script but now it’s in Rust, it has more features, and can be installed with cargo:
cargo install cargo-benchcmp).
name orig_ ns/iter cmov_ ns/iter diff ns/iter diff % count_ascii 1,444 (1766 MB/s) 763 (3343 MB/s) -681 -47.16% count_cy 5,871 (874 MB/s) 1,527 (3360 MB/s) -4,344 -73.99% count_jp 2,874 (1251 MB/s) 1,073 (3351 MB/s) -1,801 -62.67% count_words_ascii 4,131 (524 MB/s) 1,871 (1157 MB/s) -2,260 -54.71% count_words_jp 3,253 (1099 MB/s) 1,331 (2686 MB/s) -1,922 -59.08%