Crate of the Week

Very easy macro to turn stateful loops and async requests into a Stream.

stream! {
    while let Some(item) = next().await {
       yield item;
    }
}
10 Likes

inlineable_string: An owned, grow-able UTF-8 string that stores small strings inline and avoids heap-allocation.

2 Likes

static_assertions: A crate that allows you to make assertions at compile time:

    const DATA: &str = include_str!("path/to/string.txt");
    const_assert!(DATA.len() < 512);
8 Likes

I almost hesitate to recommend this because it wants some (lots) more development but I'm kind of in awe of the work done so far in valid. Maybe with some more love and/or a fork it could be great!

1 Like

procspawn lets us spin up processes with a Thread::spawn-like interface.

3 Likes

jlrs - Julia bindings for Rust.

4 Likes

pointer-utils - A collection of small utilities for working with pointer types in Rust.

3 Likes

waitlist - A queue of std::task::Wakers that can be woken in order, or all at once. Useful for building synchronization structures between tasks in async rust (mutexes, condition variables, channels, etc).

1 Like

I would like to self-nominate wundergraph here. It provides a static graphql API based on a relational database. It's build on top of diesel and juniper.

6 Likes

cow-utils-rs: Copy-on-write string utilities for Rust.

3 Likes

Kibi - A text editor in ≤1024 lines of code, written in Rust.

6 Likes

prodash - is a dashboard for displaying progress of concurrent applications.

plotly for rust - Although it may seem like self-promoting I have to say having a plotting library that's on par with what's available in Python has allowed me to reach for Rust more often.

3 Likes

I'm interested, but the link is broken.

It looks like prodash has moved to GitHub - Byron/prodash: report progress of concurrent applications and display it in various ways

1 Like

I'll nominate process_control. It makes it easy to terminate a process after a timeout, which is surprisingly difficult to do correctly. Different platforms have different types of identifiers, and some may be recycled for other processes.

2 Likes

beef::Cow Alternative implementation of Cow that's more compact in memory.

6 Likes

flume - A blazingly fast multi-producer, single-consumer channel.

5 Likes

Alchemy - An experimental GUI framework for Rust, backed by per-platform native widgets.

Alchemy's readme says it's unmaintained.