I love browsing crates.io and blessed.rs for interesting and useful crates to experiment with. What are your favorite?
I’m especially interested in those simple ones that do one thing and do it will, like uuid, tempfile, and notify.
I mean serde is – in my understanding – the most useful crate out there. It does exactly one thing and that very well.
Here are some I found and used in my own code:
- itertools
- regex
- anyhow and thiserror (error handling)
- indoc (indented/formatted multi line string literals)
- strum (various derive macros for enums)
- petgraph (for working with general graphs)
- winnow is a great (and fast) parser combinator library.
- bpaf, clap and xflags are three different command line argument parser libraries. Which one to use depends on the needs of the project and if you need to match the behaviour of an existing non-rust program (as I needed to in one case)
This is the first time I’m hearing about blessed.rs, thank you. Havent used lib.rs since they closed the source. Thanks for sharing.
I wrote a string case conversion library called “convert-case”. Most people use “heck”. They use different patterns, and different naming conventions. I prefer mine (more features), but it also came out long after heck became standard.
Here is an originally random list (using cargo tree --prefix=depth
) with some very loose logical grouping. Wide-scoped and well-known crates removed (some remaining are probably still known by most).
mime data-encoding percent-encoding textwrap unescape unicode-width scraper
arrayvec bimap bstr enum-iterator os_str_bytes pretty_assertions paste
clap_complete console indicatif shlex
lz4_flex mpeg2ts roxmltree speedy
aes base64 hex cbc sha1 sha2 rsa
reverse_geocoder trust-dns-resolver
signal-hook signal-hook-tokio
blocking
fs2
semver
snmalloc-rs