Crate of the Week

Parallelized AV1 video encoder:

4 Likes

I want to self-nominate html5gum. It's a HTML5 tokenizer compliant with the WHATWG HTML spec, meaning that it can parse most real-world, malformed HTML like browsers do. It's stil work-in-progress because I'd like to expand it to become a full parser that understands tag hierarchy, but in its current state it can already be used to extract attributes from tags, and things like that.

It can be used to parse HTML significantly faster than html5ever's tokenizer (when using lower-level emitter API, otherwise it's slower atm), and only 2x slower than using quick-xml's SAX parser.

I'm currently working on getting html5ever up to speed with recent changes to the HTML spec such that comparisons can be done more fairly.

5 Likes

I'd like to self-nominate update-informer.
It's a crate for CLI applications written in Rust to check for updates on Crates.io and GitHub.

2 Likes

I'm nominating blake3: A fast cryptographic hash

3 Likes

Found a nice crate for profanity filtering: rustrict. It's a lot better than censor in terms of false-positive cases (such as glass, bass, pass, assassin, etc). I use this one in my project to check bad words in songs' lyrics.

1 Like

A co-worker of mine published something I found very nifty today: https://crates.io/crates/document-features

It is just a small proc-macro that parses the [features] section of your Cargo.toml and puts that information nicely formatted and with any comment you made attached into your crates documentation.

Many crates have really poor documentation for the features they offer, maybe this little crate can help to improve the status quo a bit.

16 Likes

There is now an official Prometheus client crate to expose application metrics in the Open Metrics format.
Disclosure: I am not working on the crate myself, but I am a member of the Prometheus team :slightly_smiling_face:

2 Likes

I want to nominate https://github.com/pr2502/ra-multiplex -- a LSP server that proxies rust-analyzer for multiple editor instances. This is particularly useful to save resources in vim/neovim.

1 Like

Library for implementing 2-factor authentication with hardware keys (U2F/Fido), used in Firefox:

5 Likes

That's an interesting collection of innocuous common words in the supplied list.

I self-nominate FunDSP. I just got version 0.2.0 out. It's an audio processing and synthesis library.

https://crates.io/crates/fundsp

3 Likes

I'd like to nominate assay which improves the default testing experience by adding transparent support for async functions, enabling the use of the ? operator as well as asserting that tests panic when they should.

2 Likes

Please keep nominations to one per comment. Otherwise it's not clear what people are voting for.

My apologies, I've edited the comment to only suggest one crate. Thanks for the help!

Nextest (cargo-nextest), a next generation test runner for Rust

10 Likes

file-rotate
File/log rotation as a std::io::Write middleware.
I wish to nominate it because it is a rather unmissable component at least in my own work: Log rotation is important and it is nice to not have to set up an external tool like logrotate.
The crate has a well rounded set of features for most use cases and a satisfying API to use.

2 Likes

Is there a "winners" list someplace? A record of scores?

https://this-week-in-rust.org/
Crate of the Week, Quote of the Week, calls for participation etc.

1 Like

https://crates.io/crates/bitsvec - A bit vector with the Rust standard library's portable SIMD API.

github link: GitHub - PsiACE/bitsvec: A bit vector with the Rust standard library's portable SIMD API.

Happy to announce that portable-simd is working well in this crate and has some possible performance advantages.

1 Like

I'd like to nominate cargo-mutants, a relatively new tool for mutation testing in Rust. It performs mechanical replacements to your source code to identify places where test coverage might be insufficient.

8 Likes