Crate of the Week

I'd like to self-nominate prost-reflect. It build upon the widely-used protobuf crate prost to add runtime reflection and message descriptors

I nominate the Rust/FLTK GUI bindings.

I use this library to build distributable single file GUI executables. I build binaries for both Windows and Linux. (FLTK also runs on Mac but I've not tried it.)

What I especially like is that they "just work"; the dependencies on Windows and Linux are light, the size added to executables for the GUI lib is light (<1MB), and FLTK is versatile: you can quite easily customize a plain widget to draw what you want and behave (i.e., catching mouse clicks and key presses) how you want.

6 Likes

you probably forgot link, which I thinks is GitHub - l1npengtul/nokhwa: Cross Platform Rust Library for powerful Webcam Capture

1 Like

I would like to nominate planus, a replacement for Google's flatbuffers Rust library and compiler. Amazing API, still new.

4 Likes

zbus 2.0.0 - Docs.rs This crate provides the main API you will use to interact with D-Bus from Rust. this has awesome book too

1 Like

Ability to bypass libc and make direct Linux syscalls:

17 Likes

I (self-)nominate wiremock-multipart. An extension to wiremock that adds request matchers for multipart requests.

1 Like

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 - webonnx/wonnx: A GPU-accelerated ONNX inference run-time written 100% in Rust, ready for the web).

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