Crate of the Week

H2 tokio based http/2.0 server and client library

4 Likes

actix-web - a small, fast, pragmatic, open source rust web framework.

6 Likes

libasm - a library to provide inline assembly support for stable Rust.

5 Likes

ordermap A hash table (associative array) where the iteration order does not depend on the key or the hash, only insertion and removal.

In particular I find this to be a lifesaver when testing since I can make assertions and the diff (with pretty_assertions) is easy to read if I just called .sort() on both of the inputs first.

Compared to HashMap's which are completely unreadable since the keys can be in literally any order.

4 Likes

configure - pull in configuration from the environment.

1 Like

I haven't seen this mentioned anywhere so far: rust-semverver.
It compares the local version of the crate you are developing with the latest version on crates.io and will print out the major, minor and breaking changes in your local version. While it's not completely bug-free yet, it was moved to the nursery today.

8 Likes

Introducing, skullrump. A way to quickly write UNIX-like binary head and tail routines. I use this to quickly read and write tons of data efficiently in a file-based database system.

With this there's no need to use text files anymore, because doing a binary -> text conversion is very simple with skullrump, allowing users to make use of other UNIX tools such as awk, sed, and friends.

Here is an example invocation of a program that utilizes skullrump:

fswatch myfile.fmt | xargs cog --tail 1 | awk -f avg.awk | fig

This will run my program cog with the tail argument, outputting the last entry every time there is a change to the file being watched by fswatch, passing the output to an averaging awk program, and then printing the result in huge letters with fig.

I'd like to propose built - a crate for putting build time information into the crate.

3 Likes

I'd like to nominate my own project DataFusion (https://www.datafusion.rs/) and (https://crates.io/crates/datafusion) which is query planner / execution framework that can be used as a crate dependency and is also a standalone "Big Data" product for data processing.

4 Likes

I bump v0.1 of my undo redo library rundo. Procedural Macros is really useful, let me can write a easy use undo redo library.

1 Like

I'd like to nominate my own crate, just: GitHub - casey/just: šŸ¤– Just a command runner / https://crates.io/crates/just

It's a handy little command runner for saving and running project-specific commands.

2 Likes

Crate of the week offer: this might be a duplicate, but, cargo-tree

1 Like

I think afl.rs wasn't mentioned in here so far: https://github.com/rust-fuzz/afl.rs
It is a fuzzing library that found a lot of bugs in existing crates over the last 2 years.

You can check https://github.com/rust-fuzz/trophy-case for what afl.rs (and libfuzzer) caught.

7 Likes

Iā€™d like to propose pswrd :closed_lock_with_key: - stateless password vault app.

1 Like

May be someone will find it useful: fselect - find files with SQL-like queries

2 Likes

Just tried out trace crate - it's a big step up from peppering code with println (my command line gdb skills aren't great yet, so println is my go to debugging tool).

They need to release a new version to cargo as v0.1.3 isn't up to date with the compiler. This works fine though:
[dependencies.trace]
git = "https://github.com/gsingh93/trace.git"

Anything that improves debuggability is a big plus - many thanks Gulshan Singh for coding it up!

https://github.com/gsingh93/trace

6 Likes

I'm the author of humansize, a small, configurable crate with sane defaults for displaying byte sizes in a human-friendly way; It's a dependency of this week's fselect so I thought I'd submit it here.

2 Likes

I didn't find any one proposing Cursive. It's beautiful.

Cursive is a TUI (Text User Interface) library for rust. It uses ncurses by default, but other backends are available.
It allows you to build rich user interfaces for terminal applications.

9 Likes

I noticed my little cool project svgbob has been used in asciidoctor
and here

It would be great if svgbob could be incorporated into rustdocs as well, so we can incorporate ascii diagrams inline with code comments.

7 Likes

Hey. As suggested by @ThisWeekInRust on Twitter, I'm submitting the Vigil crate here: vigil-server

Notice: I'm the crate owner.

From the crate description:

Microservices Status Page. Monitors a distributed infrastructure and sends alerts to Slack.

Vigil is an open-source Status Page you can host on your infrastructure, used to monitor all your servers and apps, and visible to your users (on a domain of your choice, eg. status.example.com).

It is useful in microservices contexts to monitor both apps and backends. If a node goes down in your infrastructure, you receive a status change notification in a Slack channel.