Crate of the Week

(self-nomination)

Cargo-pgo is a Cargo subcommand for optimizing Rust binaries with PGO and also BOLT (the LLVM post-link binary optimizer).

2 Likes

(self-nomination)

:crab: sass-embedded-host-rust is a rust library that will communicate with Embedded Dart Sass using the Embedded Sass protocol.

1 Like

I'd like to nominate tuples, which so far is the only crate I've found that provides a .cloned() method for element-wise cloning, i.e. if you have a (&T, &U, &V) and you want a clone of type (T, U, V). It also has a bunch of other handy tuple manipulation helpers, it's no_std, and has a bunch of feature flags so you can opt out of stuff you don't need!

1 Like

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:

16 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.

6 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:

6 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

9 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.

1 Like

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!

1 Like

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~

12 Likes