-
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.
-
CodeRabbit
CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
-
serde-plain for easily converting enums to/from strings same as Serde usually does, but by themselves.
-
Also enum-iterator
-
Going the other way is also possible using schemafy but I never needed that so far.
-
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.)
-
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
-
-
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.
-
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
-
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.
-
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.
-
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.
-
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.
-
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. 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 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 is pretty cool
-
I like dtolnay's inventory or linkme crates to register items in a central list, just using decentralized annotations.
-
I like dtolnay's inventory or linkme crates to register items in a central list, just using decentralized annotations.
-
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 is great for dense maps where the keys are the variants of a discriminant-only enum.
-
Also https://github.com/google/autocxx
-
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