Crate of the Week

Have had great success using this very sophisticated and performant (and underappreciated?) DNS library.

https://crates.io/crates/cargo-about

This seems invaluable for anyone who needs to deal with dependencie's licenses in a project. I don't know how I would have been able to deal with that without.

7 Likes

This library provides anyhow::Error , a trait object based error type for easy idiomatic error handling in Rust applications.

I'd like to (self-)nominate wonnx (https://crates.io/crates/wonnx and GitHub - haixuanTao/wonnx: Wonnx aimed at being an ONNX Provider for every GPU on all platforms written in 100% Rust.).

The wonnx crate (still in development) aims to provide support for running neural networks (in ONNX format) on top of WebGPU (through wgpu) on various platforms, including (in the future) the browser. At the moment the crate successfully executes various computer vision models (e.g. SqueezeNet).

2 Likes

Hi, I'd like to nominate Hurl (I'm one of the maintainer).

Hurl allows you to test and run HTTP requests with plain text and curl. Hurl is available on Linux, Mac and Windows. We use it intensively to test our Web site and APIs in a CI/CD pipeline. More documentation on https://hurl.dev

1 Like

I'd like to nominate cargo-release.

It has been the biggest single quality of life improvement for maintaining my Rust projects that I can remember.

While I love sharing Rust code, open source projects are only a spare-time things for me. 50% of the time when I am publishing I would mess something: forget to tag, forget to update CHANGELOG, or something like that. In particular releasing multi-crate projects was always dreadful. With just a tiny bit of extra config releasing changed from "I hate releasing this stuff - such a chore and I always forget about something" into "cargo release , looks good, cargo release --execute".

I highly recommend adding it to your workflow! And big THANK YOU for everyone working on it!

13 Likes

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.

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

4 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!