Crate of the Week

Trying again and renominating cargo-cache, a small tool to gather stats on and clear/manage cargos download cache. :upside_down_face:

4 Likes

I'd like to nominate the efg crate which replaces the function-style syntax of the #[cfg()] macro with the syntax of boolean expressions.

(Example from the README.md)

#[efg(feature "proc-macro" && !(target_arch "wasm32" && target_os "unknown"))]
extern crate proc_macro;
7 Likes

Gomez for solving nonlinear equations.

I'd like to nominate my own crate, zoxide. zoxide is a smarter cd command that massively improves terminal productivity. Compared to autojump/z, zoxide has:

  • Added features, eg. autocomplete and fzf integration
  • An improved algorithm (in my opinion)
  • More customizability
  • Better performance
  • Cross-shell compatibility, works on 8 shells and counting
  • Plugins for other CLI tools, like vim/emacs/ranger/nnn/etc.
10 Likes

Wrapper for writing php extension in rust lang. I think it's big work

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.

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

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

15 Likes

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

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.

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

1 Like

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!

6 Likes