What's your favourite under-rated Rust crate and why?

This page summarizes the projects mentioned and recommended in the original post on /r/rust

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • concread

    Concurrently Readable Data Structures for Rust

  • For me it was conread having a set of concurrent data structures that works off a eventually consistent style strategy is just awsome for heavily concurrent code (most notably the lru cache replacement is awsome!) rather than having a lock(s) to achieve the same goal which can get stalled readers / writers.

  • serde-plain

    A serde serializer that serializes a subset of types into plain strings

  • serde-plain for easily converting enums to/from strings same as Serde usually does, but by themselves.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • enum-iterator

    Tools to iterate over all values of a type

  • Also enum-iterator

  • schemafy

    Crate for generating rust types from a json schema

  • Going the other way is also possible using schemafy but I never needed that so far.

  • phpass

    PHPass, the WordPress password hasher, re-implemented in rust

  • phpass , which implements the password algorithm used by WordPress in rust. WordPress is a reality for so many devs, and this solves a big challenge in either moving away from it, or at least handling your auth on the rust side. It's also way faster than matching running the php code, so if you're doing security scans on your password DB it can really help (eg check for a bunch of commonly used passwords, then clear + send password reset emails to those who are insecure).

  • futures-batch

    An adapter for futures, which chunks up elements and flushes them after a timeout — or when the buffer is full. (Formerly known as tokio-batch.)

  • rust-djangohashers

    A Rust port of the password primitives used in Django Project.

  • A crate that's kind of similar use-case-wise is djangohashers, which I've used to handle some interfacing with old legacy Django installations I've handled.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • cargo-errorbook

    Love your errors

  • redbpf

    Discontinued Rust library for building and running BPF/eBPF modules

  • Hello, redBPF is a Rust library that enables users to write both BPF program and userspace program using idiomatic Rust. It is my favorite and I hope many people use this library.

  • structopt

    Parse command line arguments by defining a struct.

  • I haven't done any big project with Rust, so I haven't used a lot of crates besides the most famous ones. But recently I've used structopt, which is a crate that lets you define command line arguments through derive macros. Not very underrated I guess, considering that clap is going to incorporate structopt's code to do the same thing (I'm not sure if they will remain two different crates or not tho).

  • wg-allocators

    Home of the Allocators working group: Paving a path for a standard set of allocator traits to be used in collections!

  • No, it only controls the global allocator. Custom allocator suppport on a per-datastructure level is still outstanding. See https://github.com/rust-lang/wg-allocators and especially https://github.com/rust-lang/wg-allocators/issues/7

  • parse-size

    Parse byte size into integer accurately.

  • Two crates: - parse-size is criminally underrated. It allows you to parse input like "100 MB", "50 kb", "25b" into an integer of bytes. It parses input so intuitively and it works exactly the way I expected. I use it in https://github.com/r00ster91/splitter. - line_drawing is in my opinion the best line algorithm library there is. Extremely clean and nice to use. Exactly what I need for my project https://github.com/r00ster91/yayagram.

  • splitter

    a file splitter and joiner (by wooster0)

  • Two crates: - parse-size is criminally underrated. It allows you to parse input like "100 MB", "50 kb", "25b" into an integer of bytes. It parses input so intuitively and it works exactly the way I expected. I use it in https://github.com/r00ster91/splitter. - line_drawing is in my opinion the best line algorithm library there is. Extremely clean and nice to use. Exactly what I need for my project https://github.com/r00ster91/yayagram.

  • line_drawing

    A collection of line-drawing algorithms for use in graphics and video games.

  • Two crates: - parse-size is criminally underrated. It allows you to parse input like "100 MB", "50 kb", "25b" into an integer of bytes. It parses input so intuitively and it works exactly the way I expected. I use it in https://github.com/r00ster91/splitter. - line_drawing is in my opinion the best line algorithm library there is. Extremely clean and nice to use. Exactly what I need for my project https://github.com/r00ster91/yayagram.

  • yayagram

    Play nonograms/picross in your terminal

  • Two crates: - parse-size is criminally underrated. It allows you to parse input like "100 MB", "50 kb", "25b" into an integer of bytes. It parses input so intuitively and it works exactly the way I expected. I use it in https://github.com/r00ster91/splitter. - line_drawing is in my opinion the best line algorithm library there is. Extremely clean and nice to use. Exactly what I need for my project https://github.com/r00ster91/yayagram.

  • strum

    A small rust library for adding custom derives to enums

  • Similar: strum with EnumIter, or with EnumVariantNames which returns a constant array of discriminant names instead. It has a few more additional useful derivable options.

  • actix-web-static-files

    actix-web static files as resources support

  • actix-web-static-files. Exceptionally useful when working within a embedded environment, or when I want to ship a single binary without having to worry about packaging additional files.

  • fuzzcheck-rs

    Modular, structure-aware, and feedback-driven fuzzing engine for Rust functions

  • fuzzcheck-rs is really cool. It combines property-testing with fuzzing, getting the nice, structured nature of the former, and the coverage-driven search of the latter, but it works by mutating the structure directly instead of going through a bit string. So if you have a binary tree, going from A(B, C) to A(C, B) can be a single mutation away if that makes sense in your use case, instead of being arbitrarily far away in the bitstring approach.

  • sonyflake-rs

    🃏 A distributed unique ID generator inspired by Twitter's Snowflake.

  • sonyflake-rs is pretty cool

  • inventory

    Discontinued Typed distributed plugin registration

  • I like dtolnay's inventory or linkme crates to register items in a central list, just using decentralized annotations.

  • linkme

    Discontinued Safe cross-platform linker shenanigans

  • I like dtolnay's inventory or linkme crates to register items in a central list, just using decentralized annotations.

  • goblin

    An impish, cross-platform binary parsing crate, written in Rust (by m4b)

  • I do security-related projects in Rust, and goblin has been my go-to crate for any type of binary parsing (ELF/PE/Mach-O).

  • enum-map

  • enum_map is great for dense maps where the keys are the variants of a discriminant-only enum.

  • autocxx

    Tool for safe ergonomic Rust/C++ interop driven from existing C++ headers

  • Also https://github.com/google/autocxx

  • logos

    Create ridiculously fast Lexers (by maciejhirsz)

  • logos for creating "ridiculously fast Lexers". I wrote quite a few parsers and this library saved me from tons of boilerplate lexer code. I would highly recommend it.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Ich_iel

    2 projects | /r/ich_iel | 16 Dec 2021
  • Dioxus 0.5: Web, Desktop, Mobile Apps in Rust

    5 projects | news.ycombinator.com | 28 Mar 2024
  • Build Your Own curl - Rust

    2 projects | dev.to | 23 Mar 2024
  • Bertie – A minimal, high-assurance implementation of TLS 1.3 written in hacspec

    5 projects | news.ycombinator.com | 23 Mar 2024
  • Pingora: HTTP Server and Proxy Library, in Rust, by Cloudflare, Released

    6 projects | news.ycombinator.com | 28 Feb 2024