Crate of the Week

I'd like to nominate my crate for delta compression, deltoid.

2 Likes

cargo-rr: "A light wrapper around rr, the time-travelling debugger"
Allows you to record the execution of your program, replay it and even go backwards!

8 Likes

cassette A simple, single-future, non-blocking executor intended for building state machines

1 Like

I'd like to self-nominate serde_with
A collection of custom de-/serialization functions for serde to reduce boilerplate. For example, you can serialize numbers to/from strings, skip serializing all empty Options with a single attribute, and even use these transformations inside of containers.

6 Likes

(Self-nomination) display_utils. It's a collection of functions to make common string manipulations easier, but yielding Display able structs instead. That way the crate uses no allocations and is no_std-compatible

6 Likes
4 Likes

I'd like to nominate tokio-console (GitHub - tokio-rs/console: tokio-console prototypes) - it's a great effort to let you view how your tokio executor is functioning.

5 Likes

I'm nominating arraygen (GitHub - theypsilon/arraygen: Derive macro for generating arrays from struct fields.). It offers a derive to generate arrays from structs. The version 0.2.0 has just been released.

2 Likes

I'd like to nominate genanki-rs (GitHub - yannickfunk/genanki-rs: Rust crate to create Anki decks. Based on the python library genanki). A crate to easily generate flashcard decks for the popular spaced repetition flashcards platform Anki.

typed-index-collections - should be way more popular than it is. It lets you create Vecs that take custom types instead of usize as their index so you don't accidentally use the wrong index in the wrong vec.

let user_id = 5;
return processes[user_id]; // Whoops! Should have used typed_index_collections.
3 Likes

youki: A container runtime written in Rust.

1 Like

We were told there wasn't enough crates proposals here.

So here's mine: lazy-regex, which lets you concisely create lazy static regular expressions checked at compile time, with some special matching into tuples ability:

let (whole, name, version) = regex_captures!(
    r#"(\w+)-([0-9.]+)"#, // a literal regex
    "This is lazy_regex-2.0!", // any expression
).unwrap();
2 Likes

atoi_radix10: Rust port of fast integer parsing.

1 Like

deku for sure. It's basically magic for parsing binary data, and a great declarative parsing library. Hope it grows & sees wider community adoption & support.

3 Likes

https://crates.io/crates/fallible_collections which provides allocation fallible standard std types

3 Likes

gpg-tui: A terminal user interface for GnuPG

I'd like to nominate rustc_codegen_gcc, a compiler backend for Rust using GCC for code generation.

It had a major milestone this week: rustc_codegen_gcc can now run libcore’s tests and pass most of them

12 Likes

I'd like to nominate cargo-sort, a Cargo plugin that ensures a consistent sorting of your dependencies and workspace member tables in Cargo.toml. Of course it also has a --check flag for CI :slight_smile:

4 Likes

Write desktop applications in Rust and Flutter!

4 Likes

Like a fixed-count Rc without the runtime cost.

3 Likes