I would like to self-nominate my crate num-order. It just reached version 1.0!
This crate is used to support numerically consistent ordering and hashing on various fundamental numeric types (including integers, floats, rational and complex numbers, etc.). This enables the comparing between different numeric types, which might be useful for implementing uniform numeric type and other applications.
Self nomination of hifitime, currently in version 3.1 (and no-std for most).
It's a high fidelity time management library that guarantees exactly one nanosecond precision for 32,768 years before 01 January 1900 and 32,767 years after that 01 January 1900. It supports several time systems: TAI, UTC, ET, TDB, and GPS time. It also includes high precision duration calculations like let dur: Duration = 23.hours() + 14.minutes();, so adding time zone support should straight forward. All epochs are stored in TAI under the hood in just 80 bits!
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.
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
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.
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.
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 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)
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!