Crate of the Week

fltk-rs has just released 1.1.0, and my own experience has been very positive. Recommended!

2 Likes

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.

4 Likes

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.

4 Likes

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.

9 Likes

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

3 Likes

I'll nominate Ockam.

https://crates.io/crates/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.

8 Likes

I'll nominate format_serde_error.
https://github.com/AlexanderThaller/format_serde_error

3 Likes

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

3 Likes

Thank you @taiki-e!

7 Likes

Self-nomination:

2 Likes

Self-nomination:

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.
2 Likes

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

3 Likes

tupleops: GitHub - Kijewski/tupleops: Utility library to work with tuples.

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!

2 Likes

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

https://crates.io/crates/embedded-websocket

2 Likes

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.

4 Likes

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)

2 Likes