Crate of the Week

I'd like to nominate nokhwa

It's a crate that lets you easily capture images from web cameras. This gave me a serious warm cozy feeling, and it "just worked" for two cameras. The repo has nice examples, and it's one of those packages where you never know when you'll need it until you do. Thanks to everyone who has worked to flesh out the rust ecosystem even in the creepy corners requiring lots of integration and possible configurations.

I would like to nominate tokio-console. It was recently announced in this blog post.

14 Likes

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.

5 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

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!

12 Likes

Parallelized AV1 video encoder:

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

4 Likes

(post deleted by author)

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.

1 Like

I'm nominating blake3: A fast cryptographic hash

1 Like