Crate of the Week

im, an immutable data structures crate, just got updated to 3.0.

3 Likes

Suggestion for next week, competition for im
Needletail
A bioinformatics library to blaze through .fastq and .fasta files, allowing quick, low-overhead parsing and custom processing of basic genomics data.

I use this in production, and am very happy with it!

cargo-make task runner and build tool for rust.
I wrote it and using it for my open source and company internal projects.
Really helps to speed up dev and standardize the build process.

3 Likes

Of course I need to nominate my own, heavy duty extended final state machine crate :wink: :wink:

https://crates.io/crates/extfsm

Rust, with the extremely easy async programming needed something like this for a long time. Not a toy but very extensive library geared towards production use ...

1 Like

https://crates.io/crates/exonum
An extensible framework for blockchain software projects.

11 Likes

cute: Python like comprehensions in Rust

6 Likes

I'd like to nominate shawshank. I was having a lot of trouble with string cloning and fixing that through keeping all strings in one place and having references everywhere else. When I found Shawshank I was so happy, it really easy to use :slight_smile:

https://crates.io/crates/shawshank

Shawshank gives a simple arena datastructure and interface for interning data. It's basically an arena with maximal sharing, when you give it the same data twice it will only keep one copy. Give it some data to own, it gives you back an id to access it later. With the id you can get a borrow to data, or remove (disintern) the data.

4 Likes

whatlang: https://github.com/greyblake/whatlang-rs

3 Likes

Tarpaulin

A code coverage tool created specifically for rust as a cargo subcommand.

cargo tarpaulin
Launching test

running 1 test
test tests::bad_test ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured

Coverage Results
src/lib.rs: 7/8
src/unused.rs: 0/4

58.33% coverage, 7/12 lines covered
14 Likes

aesni

AES (Rijndael) block ciphers implementation using AES-NI

1 Like

Exa, a modern replacement for ls, written in Rust.

8 Likes

Juggernaut, an experimental neural network, written in Rust.

3 Likes

match_all RFC, this crate was created for RFC#2003. It provides the following macros: "match_all", "for_match", and "for_match_all"

great crate :wink: Sigh, not an obvious name to find it ... BTW, internationalization support for it would be cool, i.e. you can intern multiple languages and pull one you need or if nothing there, pull out default language. It would need to read the usual GNU internationalizaiont .po stuff though ...

Good idea. Pinging @kinghajj (should have done that when I nominated the crate)

Tarpaulin looks like a great crate (link in email broken it's tarpaulin-cargo) but unfortunately doesn't compile. On latest nightly

error[E0432]: unresolved import nix::sys::ptrace
--> /Users/prz/.cargo/registry/src/github.com-1ecc6299db9ec823/cargo-tarpaulin-0.3.13/src/lib.rs:26:15

I know that nix crate was moving stuff around, maybe that's it ...

pest (PEG parser) is a good candidate as Crate of the Week. It is quite simple to get used to it, grammar is easy to learn and read. 1.0 is approaching (beta.3 at the time of writing. Works especially fine for languages and text parsing. Not to forget, it’s fast. Doc does exist.

2 Likes

Candidate for crate-of-the-week: derive_builder. It was already crate-of-the-week in issue 169, but I think it's cool enough to get another mention after six months or so. :wink:

Another candidate: brain, a high-level programming language that compiles to brainfuck.

I'm not sure if it's useful, but it's awesome.

2 Likes

I'll suggest one of my own crates. enum-primitive-derive This helps improve the ergonomics when having to wrap up existing code by allowing you to crate C-like enums to encompass #define's and then transition back and forth between them easily. It was a pattern I've written many times over the years and finally wrote a custom derive for it to hopefully make it easier for everyone.