Crate of the Week

Online demo can be found here:

3 Likes

Allows applications to better declare their intentions programmatically for harder-to-abuse interfaces.

7 Likes

Vec but with strongly typed indices, e.g. instead of Vec<CpuUsage> // Indexed by CPU core you can do TiVec<CpuCoreId, CpuUsage>. It prevents accidentally using the wrong index type, which is a common source of bugs.

Despite how useful it is (and IMO should be in std), it has 0 stars and only 300 downloads.

5 Likes

Rustc uses something similar: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_index/vec/struct.IndexVec.html

3 Likes

Somehow this has never been suggested (or I didn't find it :slight_smile: ). A neural network inference library, written purely in Rust for models in ONNX, NNEF and TF formats. Very extensive support for many different operators and comparable speed to the onnxruntime Python package.

Also compiles to WebAssembly and has JS bindings (https://github.com/bminixhofer/tractjs).

IMO the most important crate for working with Neural Networks in Rust. Support for inference of other ML models such as Decision Trees is also coming up.

8 Likes

This isn't exact a crate... it's more of a research prototype:

The accompanying paper is here (free): https://www.usenix.org/conference/osdi20/presentation/boos

I found it quite elegant, as I've struggled with how to use idiomatic rust in the weird environment of OS kernels before.

(For those who don't know, OSDI/SOSP is the premier venue for publishing systems papers.)

6 Likes

Puffin: A simple instrumentation profiler for Rust - by the awesome people at Embark.

2 Likes

RustScan: a modern port scanner written in Rust:

3 Likes

Finally: Postfix Macros in stable Rust (still experimental)!

5 Likes
2 Likes

ddcset: an application for controlling connected monitors over DDC/CI.

normpath makes path manipulation more reliable. It defines PathExt::normalize, which gives more expected results than fs::canonicalize, and it defines new path types that handle more edge cases.

From the ReadMe:

The goal is to provide an absolute minimal, CPU only, 2D rendering library for the Rust ecosystem, with a focus on a rendering quality, speed and binary size.

1 Like
1 Like
2 Likes

With Rust 1.48 out:

(If this is not visible, both points above are links to crates.io)

5 Likes
1 Like

BreadX: The X Window protocol implemented in 100% safe and mutex-free Rust.

2 Likes