Crate of the Week


#131

array_tool

Fully documented crate with methods for:

Vector: (unique, join, times, intersect, union, shift, unshift)
str: (justify, indexed-char-replacement, word-wrap)

More methods to come. :smiley:


#132

Please nominate & vote for our crates of the week! Previous week’s crates (in alphabetical order) were:

alias cargo-count chrono clap clippy conrod crossbeam Diesel gcc gfx glium handlebars herbie-lint hyper itertools LALRPOP lazy_static nom owning_ref preferences quickcheck quick_error racer ramp rayon roaring rotor rustfmt rustful serde tempfile toml winapi

(Oh, and @stebalien was right; serde was missing from that list)


#133

Can I nominate petgraph again?

I’d like to for all the same reasons as last time :slight_smile:


#134

ArrayVec provides a wrapper around arrays to give them an interface that resembles Vec. This is really useful since it means you can embed arrays in your structs without yet more indirection and allocations.


#135

rustgeo which provides geo primitives in a way that makes it easy to extend/reuse for different purposes.


#136

I’d like to nominate specs. It’s a parallel Entity-Component System that is now mature enough to be used in heavy-load applications. It stands out in front of other ECS variants by being natively parallel, providing highly ergonomic interface, and crashing everything else on ecs_bench.


#137

It’s also really handy that ArrayVec implements IntoIterator, since plain arrays do not.
(I tried to add that in PR32871, but they want integer generics first for the stable interface.)


#138

We should probably relist all the nominations with a like each time. Just cause it wasn’t picked before doesn’t mean if should be forgotten :wink:


#139

Please nominate & vote for our crates of the week! Previous week’s crates (in alphabetical order) were:

alias arrayvec cargo-count chrono clap clippy conrod crossbeam Diesel gcc gfx glium handlebars herbie-lint hyper itertools LALRPOP lazy_static nom owning_ref preferences quickcheck quick_error racer ramp rayon roaring rotor rustfmt rustful serde tempfile toml winapi


#140

pkg-config makes writing Rust crates that use Linux-ish system libraries reasonable.


#141

I like maplit, it’s tiny and offers a bunch of vec![] like macros for HashMaps etc.


#142

I’d like to nominate rusty-release. This a tool that help you when you release a new version of a crate. It update the Carto.toml, tag the version in git, rust cargo test, publish the new version crates.io, …


#143

At the danger of introducing our first competition here, I’d like to nominate semantic-rs, which does all that, plus make sure that semver constraints are followed.


#144

Please nominate & vote for our crates of the week! Previous week’s crates (in alphabetical order) were:

alias arrayvec cargo-count chrono clap clippy conrod crossbeam Diesel gcc gfx glium handlebars herbie-lint hyper itertools LALRPOP lazy_static nom owning_ref preferences quickcheck quick_error racer ramp rayon roaring rotor rustfmt rustful semantic-rs serde tempfile toml winapi


#145

How about the brand new cargo-profiler. This lets you profile binaries using valgrind, but looks like it’s also possible to add other profiling tools soon.


#146

The parking_lot crate contains mutex, condvar and rwlocks that can be used statically, unlike the ones in std. This can be an alternative to lazy_static.


#147

Shameless plug: Mitochondria, which provides two additional cells. MoveCell for a cell in which you can only replace the value by another, and OnceCell which can be initialised only once, useful for lazily-initialisated values.


#148

I propose pbr as the next crate of the week.

A few days ago I was programming with a friend on a fun side project and we added this really awesome progress bar to our program within a few minutes! It required only two lines of action code (code that actually does something) + dependency code to use the crate I’m talking about (see here).

This progress bar is nothing too special that is hugely important to the Rust eco system… but it made two guys happy for one afternoon :wink:


#149

Please nominate & vote for our crates of the week! Previous week’s crates (in alphabetical order) were:

alias arrayvec cargo-count chrono clap clippy conrod crossbeam Diesel gcc gfx glium handlebars herbie-lint hyper itertools LALRPOP lazy_static nom owning_ref pbr preferences quickcheck quick_error racer ramp rayon roaring rotor rustfmt rustful semantic-rs serde tempfile toml winapi


#150

The flate2 crate makes it super easy to add compression to your streams. All you have to do is apply one of the WriteExt or ReadExt methods on your stream to compress/decompress it.

I used it in conjunction with serde and bincode to add save/load feature for my game.