Crate of the Week

Self-nominating test-r, a test framework bringing some advanced features like shared dependencies, dynamic test generation, retries, etc. while remaining compatible with the built-in test harness interface.

Self nominating: Rust TcpSever
"A simple and lightweight crate for launching and using a server"

Nominating plotlars, a crate for simplifying the creation of polars visualizations.

1 Like

Self-nominating logforth, a flexible logging framework for Rust applications, providing easy log dispatching and configuration.

We use it in several data systems and observe its easy to start with and flexible to extend. Welcome users to test it out or extend with their favorite layout, appended, and filters.

Nominating GitHub - wdanilo/struct-split, which is roughly a macro-based solution to partial borrows, with actually a nice-looking interface.

2 Likes

Self nominating IronCalc a package for working with spreadsheets :grin:.

See also GitHub for the full idea

fixed-slice-vec provides a stack-allocated vector backed by byte slices.

2 Likes

postcard provides a #![no-std] focused serializer/deserializer and makes communicating with, e.g., embedded devices so much simpler and nicer. I'd like to point out especially the stability of the format and the excellently documented Postcard Wire Specification.

6 Likes

kolibri-embedded-gui

Super-lightweight Immediate-mode Embedded GUI framework, based on the awesome embedded-graphics library

augurs, a time-series toolkit for Rust with bindings to JS & Python, offering features like forecasting, outlier detection, seasonality detection and clustering. Check out the demo!

2 Likes

I once made a similar crate: variable-len-reader

A library for reading/writing variable length data. Support AsyncRead/AsyncWrite in tokio.

Self-nominating include-utils

A more powerful replacement for the standard include_str macros.

Often you only need a specific part of the file, e.g. relevant lines for an example, or section of README.md. This crate provides macros that can include only part of a file, similar to the mdbook specific feature.

Imagine that you want to include "usage" section from your repository readme file to the crate documentation. But you do not want to see in crate documentation some parts of readme file, like header, badges, etc. With theinclude_str macro you can only include the entire file content.

But with the include_md macro you can include only a specific section of the file.

5 Likes

I would like to nominate cmd_lib.

This is a library that provides a couple macros that make it much more convenient to write shell-script-like programs in Rust. In particular, spawning commands, capturing stdout, redirection and pipes are much less verbose than just using std. It even has nice logging built in.

I still think Bash is fine for scripts of a couple dozen lines, but this has lowered the threshold for me to migrate medium-sized or multi-file scripts to Rust.

Could also be interesting from a cross-platform perspective!

3 Likes