Crate of the Week

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

Blogr is a fast, lightweight static site generator built in Rust for creating and managing blogs. Write in Markdown, preview with a built-in terminal editor, and deploy to GitHub Pages with a single command. Blogr also comes with a built-in newsletter management system, which you can manage right from the terminal using its beautiful TUI.

6 Likes

I would like to self nominate rustest at crate of the week.

Rustest is a testing framework inspired by pytest, rstest and others...
It provides parametrized tests and test fixtures system with fixture teardown, fixture matrix or fixture dependency...
It is also (almost) compatible with standard rust test library, allowing smooth transition to rustest.

1 Like

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

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 {}
}
1 Like

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.

1 Like

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!

2 Likes

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.

1 Like

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:

1 Like

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

8 Likes

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:

2 Likes

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!

≽^•⩊•^≼

4 Likes

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

Self nomination, Turbo Vision for Rust 1.0
More details here

1 Like

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.