Crate of the Week


Funny that, because I just randomly selected it to be crate of this week. :smile:


I’d like to nominate accurate which calculates a precise sum and dot product of floating point numbers. (It is like Python’s math.fsum and uses multiple partial sums to keep the accuracy.)




I’d like to nominate qml-rust, a Qt QML binding for rust. It actually wraps DOtherSide, a C wrapper for QML.

It seems to be quite usable; two example applications uses it already. I’m playing with it for a project of mine.


I nominate coalesce, a crate for combining different types that support a common trait.


I nominate Boolinator, a crate for using bools like option or result.


Blatant self-promotion but my company released 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. :wink:


If ripgrep isn’t allowed since it’s a binary, consider regex the nomination.


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!


Mitochondria is the powerhouse of the Cell.


I’d like to steal this week’s CotW for Xargo.


The rust-phf collection of crates. I love things that do work at compile time instead of runtime.


combine. A parser combinator library for Rust.


syn + quote.

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.


app_dirs: Put your app’s data in the right place on every platform.


Feedly notifier: Feedly updates notifier sitting in your status bar.


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).

Example report

 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%