Crate of the Week

That library appears to be no longer needed given std::array::from_fn() (unless you want to support Rust prior to 1.63.0).

What I really need, as isn't made clear from my post, is try_from_fn:

This is a nightly-only experimental API. (array_try_from_fn #89379)

chews on my own leg out of frustration

So close! But at least I know it's baking, and hopefully not for too long.

crates.io: Rust Package Registry / GitHub - cchexcode/qop
I've recently built a standalone SQL migration tool. So far I've added support for Postgres and sqlite with Cassandra support being planned.
Backstory: I was fed up with all the tooling out there that integrates with specific ORMs and just wanted to run migrations standalone and add a few neat features I was looking for.

Few examples: Running migrations up and down (duh), applying individual scripts by ID and list them (remote and local). Also includes safeguards for linear history, fixing the migration plan to enforce linear history, migration summary in human readable format of what'd be executed.

... and https://blessed.rs

One of the main crates I need at work as robotic engineer, works well and seems not mentioned yet is parry3D

Hi! I’m self-nominating clipline, a crate for line segment rasterization with pixel-perfect clipping.

Nominating saphyr, which is an implementation of YAML 1.2 (parser and serialiser). It’s a fork of yaml-rust with more active maintenance.

Self-nominating Sandhole, a reverse proxy that lets you expose services behind NAT with just an OpenSSH client.

Speaking of database migrations, I’d like to self-nominate sql-schema—While it hasn’t seen much use yet (I am currently testing it it out with a new project), so far I’m fairly happy with it and hope to get some feedback from other folks on how it can be improved to work well for them (it should work well with existing tooling you’re already using!).

The backstory is this: I’ve grown somewhat annoyed over the years at having to write imperative database migrations (why can’t I just edit the schema?!). And since I also value predictability and flexibility, using one of those ā€œedit the schema and magically migrate the databaseā€ tools is extremely unappealing to me. So after thinking about my options, I decided to create a tool that diffs a schema file with the sum of all the migration files and then creates a new migration file with the changes (if there are any). This isn’t without limitations but I expect it can be made to work well for most use cases.

I was looking for a simple mock-server based on file name conventions, but I couldn't find one with my needs, so I created a new mock server and published it to crates: rs-mock-server

It has a good list of features, all based on the file names and folder structure.

You can see the code here: GitHub - lvendrame/rs-mock-server: Simple Rust mock server

You will be welcome to help me with tests, code refactoring or opening issues with bugs and suggestions.

I would like to self-nominate MOMA which is accompanied by MOMA_simulation_engine. MOMA is a Rust framework for exploring number theory, cryptography, and bioinformatics through the lens of Moving Origin Modular Arithmetic.

The crate is designed for researchers and developers who are interested in a novel, relational framework for analyzing complex sequences.

The Core Idea: A Barycenter for Numbers

The inspiration for this crate comes from the concept of a barycenter in astrophysics. Just as the Earth and Moon orbit a common center of mass that is not the exact center of the Earth, MOMA treats modular arithmetic as a system where the "zero point" or "origin" is not fixed.

This origin shifts dynamically based on a contextual value—typically a prime number p—and the chosen OriginStrategy. This provides a novel relational framework for analyzing complex systems.

I would like to self-nominate web-route.

web-route provides an ergonomic way to define and manage web server routes without having to resort to format! gymnastics.

People are welcome to suggest improvements.

I would like to self-nominate dotenvx-rs.

[dotenvx-rs] encrypts your .env files, limiting their attack vector while retaining their benefits,
and proects your sensitive data in .env files to avoid AI Code scanning and config leak.

Welcome to leave comments and improvements.

I would like to self-nominate aehobak.

Aehobak transcodes binary patches from bsdiff. The goal is a byte-oriented format, compact and optimised for patch application speed.

I would like to self-nominate Grimoire CSS.

Grimoire CSS is a Rust-powered, all-in-one CSS engine that outputs production-ready styles without bundlers, preprocessors, or postprocessors.

At the core are Spells—simple property=value declarations — and Scrolls, reusable modules with variables and inheritance that let you design entire style systems with ease.

Its language-agnostic parser extracts Spells from any file type (.html, .tsx, .mdx, .txt, you name it) in both filesystem and pure in-memory modes, so you’re never limited by framework or format.

Everything is optimized for peak performance - processing 200,000 classes per second (5Ɨ faster and 28Ɨ more memory-efficient than Tailwind v4) - while respecting the full CSS cascade, adding vendor prefixes, minifying, deduplicating and much more on the fly.

Available as a standalone binary, Rust crate, or NPM library.

And this is just a glimpse of what Grimoire CSS can do. Visit https://grimoirecss.com to explore its full feature set, including interactive sections for animations, playground, the transmutator, and more.

Thank you! (• ε •)

I would like to self-nominate cargo-safe-publish.

cargo-safe-publish is a safer version of cargo publish.

cargo safe-publish performs the following steps to make your publication process more secure:

  • cargo safe-publish uses the gix to perform additionally git checks to verify that only expected files are included in your published crate
  • cargo safe-publish split up the actual publication process into a call to cargo publish --dry-run and cargo publish --no-verify. The former command performs the verification build to make sure that the published source code is actually be able compile. After this cargo aborts the publication process. cargo safe-publish then removes the compressed .crate file. Finally cargo publish --no-verify will recreate the compressed .crate file and upload it without a verification build. This removes the possibility for build scripts to overwrite that file.
  • cargo safe-publish re-downloads the published crate, right after the publication process and compares the published content. It will report any difference it detect

I would like to self-nominate mocktail.

mocktail is a minimal crate for mocking HTTP and gRPC servers in Rust, with native support for streaming.

This was built after discovering that none of the existing mocking libraries support streaming. We also frequently need to mock both regular HTTP and gRPC servers and it’s nice to use a common API for both.

I'd like to nominate ui_test, a testing framework by Oli that allows you to test the error output when using your library incorrectly.

This can be very useful when developing macros which rely on (e.g. for soundness) not compiling in certain cases, but it's also useful in general to be able to track and improve (e.g. using the #[diagnostic] attributes) the errors your users will hit.

It is somewhat similar to trybuild, but with configuration options.

I would like to self nominate crates.io: Rust Package Registry and nominate crates.io: Rust Package Registry.

wayland-interface-check focuses on bash scripting: if you have some software that requires certain wayland protocols to be available, you can check for them and fall back to X11 otherwise.

wlprobe gives you a json of every protocol available on your machine and is used to generate protocol availability by DE in Wayland Protocol Documentation | Wayland Explorer

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.