Crate of the Week

Hm, this does not appear to have been released anywhere (not on crates.io but apparently also neither on GitHub). Also the repository is only a few days old?

you are right, I pushed a version to crates.io.

I'd like to self-nominate musclecalc, which is a fitness tool. :weight_lifting_man: It remains at an early stage of development and more features will be available soon but I consider this crate important because while many crates are created by programmers strictly for programmers, I want to make Rust applications available to a much wider public. :slightly_smiling_face:

3 Likes

I'd like to self-nominate:

  • It's a "concrete / real-life" result of using the #[gat] macro[1] to feature GATs on stable Rust (plus, internally, a pinch of ::polonius-the-crab to get polonius-like borrow-checking on stable Rust as well)
  • We can thus write things like .windows_mut(), which no other "flexible iterator" crate could express yet (afaik).

  • From what I've heard, writing certain parser implementations can be quite convenient with lending iterators (I'd welcome feedback from those having had the chance to experiment with it!).


[META]


  1. these #[gat] annotations are currently exposed and required, but they are expected to eventually smoothly disappear once generic_associated_types makes it to stable / through a Cargo feature opt-in. ↩ī¸Ž

  2. ↩ī¸Ž

17 Likes

a scripting language written in rust:

3 Likes

I would like to nominate runcc, a cli utility that can run multiple shell commands in parallel. I was looking for an alternative to the npm concurrently package and found this. It is actually better than concurrently as it either allows to run multiple commands directly or put them in configuration files for easy reuse. And just runs really reliably all the time I used it.

(self-nomination)

Cargo-pgo is a Cargo subcommand for optimizing Rust binaries with PGO and also BOLT (the LLVM post-link binary optimizer).

2 Likes

(self-nomination)

:crab: sass-embedded-host-rust is a rust library that will communicate with Embedded Dart Sass using the Embedded Sass protocol.

1 Like

I'd like to nominate tuples, which so far is the only crate I've found that provides a .cloned() method for element-wise cloning, i.e. if you have a (&T, &U, &V) and you want a clone of type (T, U, V). It also has a bunch of other handy tuple manipulation helpers, it's no_std, and has a bunch of feature flags so you can opt out of stuff you don't need!

1 Like

I'd like to nominate bytehound -- an excellent memory profiler for Rust which I've been looking for for four years.

15 Likes

self-nomination

sql_query_builder Allow you to write SQL queries in a simple and composable way. The main goal is to find the best balance between write idiomatic SQL queries and manage scenarios of complex query composition mixed with conditional clauses.

1 Like

I nominate @BurntSushi's bstr in honor of its 1.0 release:

15 Likes

I'd like to self-nominate shuttle, the only "Rust-native" solution to deploy your app. Cost-free and hassle-free. Just add one annotation to your main file, run the deploy command and you are good to go.

Currently it supports, in terms of deployment:

And in terms of databases:

6 Likes

I'd like to self-nominate pci-driver, a crate for developing PCI/PCIe drivers in Rust.

2 Likes

I'd like to nominate match_deref, a proc-macro that implements deref patterns on stable Rust. This solves a major pain point when working with recursive data structures, such as ASTs.

4 Likes

I'd like to nominate GitHub - Narigo/keepass-diff: A CLI-tool to diff Keepass (.kdbx) files. Useful, if syncing with Dropbox or NextCloud and getting multiple files due to conflicts., which came in very handy just now :wink:

1 Like

Since combining head and tail to get the top and bottom of a file/pipe is surprisingly difficult, a group of GitHub engineers decided to create headtail as a new open source project for fun (and because we wanted it to exist so we could use it)!

6 Likes

serde-transcode can efficiently convert between various serde-supporting formats:

2 Likes

I'm the author of humansize, a size formatting crate that already has some adoption, but I just published a 2.0 version with new features and a revised API:
https://lib.rs/crates/humansize

3 Likes