Crate of the Week

preinterpret is similar to paste, but has more features

transitive_from provides a way to define a tree of From trait chains

macro_magic allows a proc macro invocation to transmit information to a different proc macro invocation.

konst provides a number of operations in consteval

This is very helpful!! :clap:

tokio-netem provides a toolbox of Tokio AsyncRead /AsyncWrite adapters that let you emulate latency, throttling, slicing, terminations, forced shutdowns, data injections and data corruption without touching your application code. Compose them around TcpStream (or any Tokio I/O type) to run realistic integration tests and chaos experiments.

let mut stream = TcpStream::connect("localhost:80")
    .await?
    .throttle_writes(32 * 1024) // 32 KB/s`
    .slice_writes(16); // flush writes every 16B

I'd like to promote disjoint_impls as a crate of the week.

Crate fully resolves this longstanding Rust issue and enables writing non-overlapping (disjoint) impls distinguished by a set of associated types (no special syntax required):

disjoint_impls! {
    pub trait MyTrait {}

    impl<T: Dispatch<Group = u32>> MyTrait for T {}
    impl<T: Dispatch<Group = i32>> MyTrait for T {}
}

I would like to self-nominate rust_readability, a package that can assess the complexity of texts using a variety of well-established readability formulas.

The package includes implementations of the Lix, Rix, Flesch-Kincaid, and Automated Readability Index methods, among others, and can handle both files and strings.

I want to nominate mitsein, which is a crate that provides non-empty collections.
It has both the generic NonEmpty<T> wrapper as well as aliases like Vec1.
It has macros for constructing non-empty collections.

It supports more collections than any other non-empty crate I could find. It has feature flags for popular crates like serde, schemars, smallvec, itertools and others. I've been looking for a crate like this for a really long time, and I finally found it.

The author is also really active, the library is very well documented, and there are constant commits to it. When asking questions in his issue tracker, he gives long thought-out responses and takes lots of care. I want it to be featured in crate of the week!

I would like to self-nominate extend_mut, a library to safely extend the lifetime of an exclusive reference under some constraints.

Edit: GitHub link: GitHub - Ddystopia/extend_mut: Rust crate to extend lifetime of an exclusive reference.

I've been doing some work at work with resilience4j on some Java projects, and some unrelated stuff with various REST API clients in Rust. I wanted some of the tools that r4j has and building a tower crate to handle it has been a fun project, so I'm self-nominating my new crate:

I just ripgreped our history, we didn't have dioxus yet. It's a framework for building cross-platform apps in Rust.

Maybe this could be the next crate of the week? A great example of Rust kicking serious butt in the realm of computational mechanics!

automesh: Automatic mesh generation in Rust.

Interested folks can read more here. Rust is allowing us to move fast in development and be hundreds (or even thousands) times faster than comparable tools:

I would like to self-nominate cfg-rs, a config lib without serde dependency.

I would like to self-nominate asyncapi-rust which generates AsyncApi specs for WebSockets or other async protocols, similar to how utoipa does for REST apis.

:crab: Proposed Crate of the Week: (self-nominating)

Self nomination, cargo cat. It just outputs a random (๑´>᎑<)~* cat face. Thoroughly battle-tested in pull request reviews.

Link: crates.io: Rust Package Registry
Repository, GitHub - blyxyas/cat-ascii-faces: (。^•ㅅ•^。) Print cats to your terminal, or get a random array of cats in a library! contributions are very welcome!

≽^•⩊•^≼

Based on yaml-rust2, true and tried library. Awesome! :+1:

Self nomination, Turbo Vision for Rust 1.0
More details here

GuardianDB - A high-performance, decentralized database built on IPFS with advanced P2P networking, access control, and real-time synchronization capabilities - More details here

Self nomination for hotpath. I've recently released live perf monitoring TUI, so would be great to spread the news.

Self nomination for grapheme-utils, a very forgiving batch of ergonomic functions that make working with graphemes much easier. Given a byte index, or grapheme index, get the current, previous, or next grapheme, printed string width, etc.

I'm excited to announce Fluxion v0.3.0, a Rust reactive streams library with temporal ordering guarantees, bullet-proof testing, awesome documentation and friendly fluent API!

New features:

  • on_error operator to handle errors and stop error propagation
  • one more fully-fledged integration example emphasizing legacy code interoperability
  • numerous bug fixes and performance improvements

Check it out and provide feedback!