Crate of the Week

I'd like to nominate bytehound -- an excellent memory profiler for Rust which I've been looking for for four years.

16 Likes

self-nomination

sql_query_builder Allow you to write SQL queries in a simple and composable way. The main goal is to find the best balance between write idiomatic SQL queries and manage scenarios of complex query composition mixed with conditional clauses.

1 Like

I nominate @BurntSushi's bstr in honor of its 1.0 release:

15 Likes

I'd like to self-nominate shuttle, the only "Rust-native" solution to deploy your app. Cost-free and hassle-free. Just add one annotation to your main file, run the deploy command and you are good to go.

Currently it supports, in terms of deployment:

And in terms of databases:

6 Likes

I'd like to self-nominate pci-driver, a crate for developing PCI/PCIe drivers in Rust.

2 Likes

I'd like to nominate match_deref, a proc-macro that implements deref patterns on stable Rust. This solves a major pain point when working with recursive data structures, such as ASTs.

5 Likes

I'd like to nominate GitHub - Narigo/keepass-diff: A CLI-tool to diff Keepass (.kdbx) files. Useful, if syncing with Dropbox or NextCloud and getting multiple files due to conflicts., which came in very handy just now :wink:

1 Like

Since combining head and tail to get the top and bottom of a file/pipe is surprisingly difficult, a group of GitHub engineers decided to create headtail as a new open source project for fun (and because we wanted it to exist so we could use it)!

6 Likes

serde-transcode can efficiently convert between various serde-supporting formats:

4 Likes

I'm the author of humansize, a size formatting crate that already has some adoption, but I just published a 2.0 version with new features and a revised API:
https://lib.rs/crates/humansize

8 Likes

I'd like to (re-)self-nominate pci-driver, a crate for developing PCI/PCIe drivers in Rust.

1 Like

I'd like to self-nominate dlhn.
dlhn is a new serialization format, implemented using serde.
We have just released a version that fixes a critical bug.
I would like to make this known to those who are using the pre-fixed version.

[self-nomination]

HyperQueue, a runtime for ergonomic execution of programs on a distributed cluster, with built-in support for HPC systems.

3 Likes

I'd like to self-nominate emojis, which is a little crate to lookup emojis by Unicode value or gemoji shortcode. You can also iterate over all emojis, iterate over emoji skin tones, and emojis within a group.

I'd like to nominate Screen 13, an easy-to-use 3D rendering library. It provides a render graph for Vulkan compute, graphic, and ray-trace shader pipelines. Includes documentation and examples!

I’d like to nominate humantime — Rust date/time library // Lib.rs, a zero-dependency crate to convert between SystemTime and UTC date/time without making any syscalls. If you only need UTC, this is a much smaller and simpler alternative than either time or chrono.

11 Likes

I'd like to self-nominate edres - named because it's serde backwards. It takes markup files (json/toml/yaml) and generates compatible Rust structs and enums based on them.

Essentially it lets the config files be the source of truth for the data structure, while still being compile-time type-safe when you deserialize and use them. So when the schema changes, you don't have to update your code at all unless you've made a breaking change - which will fail compilation instead of breaking at runtime.

I recently overhauled the documentation, testing, and configuration - so I think it's in a nice state to show off~

10 Likes

I'd like to nominate soa-derive, for making the Array of Structs to Struct of Arrays transformation far more accessible and less mentally taxing, with (often significant) performance and storage improvements!

It has a lovely benchmark, and a pretty nice API.

Link: GitHub - lumol-org/soa-derive: Array of Struct to Struct of Array helpers in Rust

3 Likes

I'd like to nominate type_description - a crate for machine-readable type descriptions that can be used for self-documenting configuration types.

2 Likes

I'd like to nominate enum_delegate - a crate that, in essence, helps you implement a trait on many types across crate boundaries, while avoiding the runtime cost of dynamic dispatch. This is especially useful for digital/audio signal processing with graphs, where nodes with different processes need to be executed under tight timing constraints.

2 Likes