Crate of the Week

actually, unnominating crate of the week. the crate will likely be renamed soon

I'd like to nominate the ttrpc crate, which implements "GRPC for low-memory environments." More information on the ttrpc protocol is available alongside the Go implementation.

1 Like

I'd like to self-nominate shuttle a crate that uses traits and annotations to configure your backend deployment - including databases. shuttle lets you deploy Rust apps with a single Cargo command

6 Likes

I'd like to nominate enum_dispatch.

enum_dispatch transforms your trait objects into concrete compound types, increasing their method call speed up to 10x.

I discovered it on this Reddit thread of crates considered essential.

2 Likes

https://crates.io/crates/darkbird

darkbird is an in-memory storage also
persist data to disk with non-blocking disk_log

Self-ish nominating rustdoc-types, which contains the types to deserialize the output of rustdoc --output-format json, allowing programatic access to a crates API without having to use all of rustc or rust-analyzer.

3 Likes

Build concurrent and multi-stage data ingestion and data processing
pipelines with Rust+Tokio. TokioSky allows developers to consume data efficiently
from different sources, known as producers, such as Apache Kafka and others.
inspired by elixir broadway

sadness_generator - Rust

sadness-generator is a simple crate that provides multiple ways to make any program it is executed in very sad.

From Jake Shadle's post on crash reporting: Crash reporting in Rust

This is a fun little crate I used while testing that just provides different ways to crash a program. I published it in case it might be useful for other people, but mostly because I liked the name.

3 Likes

velcro, a drop-in vec! (and also hashmap! etc) replacement equipped with a "splat" or "spread" operator:

let a = vec![1, 2, 3];
let b = vec![0, ..&a, 4, ..(5..8)];
assert_eq!(b, vec![0, 1, 2, 3, 4, 5, 6, 7]); 

(via simonbuchan on i.r-l.o)

5 Likes

Parallel parser for compressed data archives of OpenStreetMap:

2 Likes

I want to self-nominate pgfplots. This is a Rust library to generate publication-quality figures. It is still WIP, but can currently generate multiple types of plots (virtually accepting any LaTeX's pgfplots key).

Thanks to the tectonic crate, you can even generate high-quality plots without having a LaTeX distribution installed in your system.

7 Likes

I have been using dxf-rs to extract data from autocad files.
I want to nominate this crate because it has saved me a lot of time.

4 Likes

I'd like to put in a self-plug for aliri_braid. It's a crate than enables the easy and ergonomic creation of strongly-typed newtype wrappers around string values, supporting multiple string-like types, including the standard String, SmartString (for small-string optimizations), ByteString (for Bytes-backed strings), and more.

Examples of usage and the generated impls and documentation can be found on the sibling aliri_braid_examples crate.

2 Likes

Nominating cargo vet, an alternative to cargo crev to audit your dependencies. These tool would really benefit from a network effect of public audits.

1 Like

I'd like to (somewhat) self-plug error-stack. It's a new error-handling library which lets you efficiently attach any arbitrary (thread-safe) data to the Err arm of a Result. And before you ask why we wrote yet another error library :grinning: we've got the answers in this post which goes through some of the philosophy. It's gotten some really positive feedback already and we think it'll be really helpful to a lot of people!

(Also small shout-out, it's based on some of the really cool work being done in core with the Provider API)

5 Likes

I’d like to nominate atom_syndication (‘Library for serializing the Atom web content syndication format.’).

I'd like to nominate TicKV (Tiny Circular Key Value). It's a small file system allowing key value pairs to be stored in Flash Memory. It doesn't require any dependencies and works with no_std

It's designed to allow embedded Rust applications to store data in flash, while maintaining loss resilience, wear leveling and a low memory and storage overhead. It even allows the tests to be run on your host machine, so it can be developed locally, which is pretty cool!

3 Likes

I nominate cap-std, a version of standard library designed to support capability-based security. Currently it seems to be mostly focused on file system access.

2 Likes

I'd like to self-nominate coprosize, which has just reached v1.0.0. It's just a tool for the study of dino dung :poop: but this is the only computer program of this kind in any programming language. :crab:

1 Like

I like to nominate bevy_reflect - especially for its TypeUuid that also supports generics and helps a lot building runtime composable structures! (Note that generic supporting TypeUuid is currently unreleased AFAICS)