Crate of the Week

Self-nomination: https://crates.io/crates/rs_pbrt ... So far I was under the impression, that only a library should be published, but because most of the crate is actually a library, and several executables are provided (using that library), using various scene descriptions I went ahead and (finally) published what I have been working on the last 3 to 4 years ... I hope you like it. It is compatible to v3 of the C++ code, even though v4 is already online and the matching book version on the horizon.

7 Likes

Bit of self promotion.
I've just publish the first public version of my actor framework based on asynchronous functions: Heph,
https://github.com/Thomasdezeeuw/heph

1 Like

If I am allowed to self-promote... [apparently that is the norm here]:

Type conversion, success expected

https://crates.io/crates/easy-cast

1 Like

Self-promotion: forceatlas2

N-dimensional, type-agnostic, very fast force directed graph spacialization algorithm.

Demo with a web of trust, 2D and 3D:

Demo 3D

3 Likes

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!

10 Likes

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

2 Likes

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.

7 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

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