Crate of the Week

trailofbits/dylint: A tool for running Rust lints from dynamic libraries.

I'm looking into this for writing application-specific lints for a large codebase.


Shameless self-nomination: sync_file, to concurrently read from files without race conditions.

I'd like to nominate Loadstone, a bare-metal bootloader for embedded systems, specifically systems running on Cortex-M microcontrollers.


Self-nomination: sycamore, a Rust library for making web applications using WebAssembly. Features include components, no VDOM, fine-grained reactivity, Server Side Rendering (SSR), Router, among others...

Sycamore is actually pretty fast (it's faster than Svelte) based on js-framework-benchmark.


Another self-nomination: synth is an open source declarative command line test data generator written in Rust.


I'll nominate Ockam.

I've personally tried to build some fundamental constructs like transport agnostic e2e encryption and actor libraries, but never invested enough in them. Ockam is basically doing what I had attempted and failed at, but way way way better.

I saw their blog post the other day and I think it's quite cool. e2e encryption + actors is a super cool primitive for secure and resilient services. It reminds me a bit of the hashicorp stack, but as a library.

IMO definitely worth checking out - I think frameworks like this are extremely high potential.


I'll nominate format_serde_error.


And a shameless self-nomination:

1 Like

Another Configuration Library for Rust Applications (with auto derive).

I nominate this abuse of the type system:

via reddit


Thank you @taiki-e!





This library is a simple schema migration library for rusqlite using user_version instead of an SQL table to maintain the current schema version.

Thus, it aims for:

  • simplicity: define a set of SQL statements. Just add more SQL statement to change the schema. No external CLI, no macro.
  • performance: no need to add a table to be parsed, the user_version field is at a fixed offset in the sqlite file format.

Self nomination:

This is a unix utility for letting you split stdout from a command in a GUI, then get the results back in the terminal to be passed along. It's meant to let you explore command output as a table.

Has qcell been nominated yet? It's a heavily underrated crate, particularly when working with dynamic views of trait objects (runtime polymorphism).


tupleops: GitHub - Kijewski/tupleops:

A neat toolbox for manipulating tuples. New and still underappreciated crate with just one star on github. I used it recently in tandem with derive_new to handle the tuples that diesel returns on joins. I just wanted to add another item to the tuple (append) before I fed the elements into the new-method (apply) for my return-struct. Very nice!

1 Like

I'd like to nominate a crate that my friend has spent much time on: a fast no_std websocket crate called 'embedded-websocket'

1 Like

I would like to nominate cargo guppy, a crate which can be used to track and query Cargo dependency graphs.

The crate is very well documented, tested and serves, in my opinion, as a great example on how to structure and write beautiful Rust API's.


Still not seen a cargo dependency tree viewer in 3D yet. There's surely lots of fun to be had there.
(Bonus points for cyberpunk theming)

1 Like

Hi everyone! I'd like to make a self-suggestion: GitHub - mikaelmello/inquire: A Rust library for building interactive prompts

It is a crate to build interactive prompts that was inspired by the amazing (IMO) Github CLI app. You might be familiar with a similar crate that is dialoguer. To make mine stand out, I focused a lot on providing the greatest developer experience possible with nice to use APIs, sane defaults and an extensive documentation, besides more features :slight_smile:

I talked about it on the last RustConf and people loved it! Thought it might be worth a shot to put it here too, thanks!