Crate of the Week

(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

https://github.com/sigmaSd/IRust

4 Likes

I'd like to nominate tokio-console (GitHub - tokio-rs/console: a debugger for async rust!) - 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 (https://github.com/yannickfunk/genanki-rs). 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

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

7 Likes

Write desktop applications in Rust and Flutter!

5 Likes

Like a fixed-count Rc without the runtime cost.

10 Likes

Cycle-aware Rc, a mini tracing GC that can be used to implement self-referential data structures of strong references without memory leaks.

1 Like

3 posts were split to a new topic: Cactusref: cycle-aware reference counting

(Self-nomination) Public-key / Shared-key encryption library for serde::{Serialize, Deserialize} types.

5 Likes

pipeline, a macro crate for function composition and partial function application making deeply nested function calls a lot nicer.

Edit: I take it back, I found a few serious limitations that need to be resolved before advertising it to a broader audience.

1 Like