Crate of the Week

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.

5 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)

6 Likes

Parallel parser for compressed data archives of OpenStreetMap:

3 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.

3 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.

3 Likes

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)

6 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!

5 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.

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

10 Likes

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)

1 Like

Shame: A shader EDSL for writing render and compute pipelines in rust.

4 Likes

dacquiri - Rust just stumbled upon this and it looks super interesting

2 Likes

I'd like to self-nominate my newly published crate bnum. It provides arbitrary, fixed size signed and unsigned integer types that extend the functionality of Rust's primitive integers, using const generics.

2 Likes

I’d like to self-nominate cismute, which provides specialization-like hack on stable Rust.

2 Likes

Cool!, I'm your first :star2: :slight_smile:

I'd like to self nominate thunderStorm - A crate for scaffolding Node.js backend applications

1 Like