Crate of the Week

I'd like to self nominate thunderStorm - A crate for scaffolding Node.js backend applications

1 Like

I'll need to take a closer look at your crate but it looks amazing! Nice video documentation--in future, I'll possibly think of a similar solution for my crates.

1 Like

I apologize to Goldstein and to the thread for this, but, since I can't take back my "like" of cismute and thus am in the position of permanently being listed as "liking" it, I feel obliged to state that I now question the soundness of that crate and would not have "liked" it had I looked at its source code first. I apologize to Goldstein for being negative about their crate, and I apologize to the thread for being off-topic.

I think I'll also try to stop "liking" posts now that I've learned that it becomes permanent.

I believe I’ve addressed the soundness concern in reply to your issue. In sum, the same concern applies to the standard library, http and any dependent crates like hyper, actix-web or reqwest, and also any other crates that use Any::downcast_{ref,mut}(). Considering this and the fact that it’s unlikely to be a real issue, I think it’s safe to use the crate.

Of course, you have every right to have this concern and to like/unlike the crate because of it.

Thank you :relaxed:

I'd like to self-nominate cargo-semver-checks — a CI-friendly cargo test for preventing semver violations in your crate's API. Only ~a week old, and one of my first "real" crates!

3 Likes

I propose cargo-semver-checks - Scan your Rust crate for semver violations.

2 Likes

Great timing! Your post appeared on my screen not even a second after I submitted mine. Thanks for the nomination :blush:

1 Like

I'd like to self-nominate quickenv, an alternative implementation of the direnv environment manager that doesn't hook into the user's shell and favors speed over convenience.

See also the lobste.rs thread for discussion.

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.

16 Likes