What's out there?
The general "go to" place these days to poke around the ecosystem, is:
Below, I've added a few crates that I think are useful to highlight for some types of engineers I often work with:
-
CLI Arg parsing: clap
-
Serialization / Deserialization: serde
-
Awesome Rust is a curated list of useful packages.
-
Asyncronous Rust: async-book
- I mostly use tokio, but there is more than one
asyncruntime available.- Even for microcontrollers, embassy is an example.
- gRPC Services/Clients: tonic (with prost for protobuf)
- REST Services: hyper... Likley something built on top of
hyper. - HTTP Service Calls: reqwest, but likley a client autogenerated via an OpenAPI package (there are a few).
- "Are we web yet?" is a website that generally contains a curated list of traditional service packages.
- I personally don't use this list much, but it's useful to see what's out there.
- tokio-console is a good thing to know about, if you use
tokio.
- I mostly use tokio, but there is more than one
-
Kubernetes:
- Kubernetes management (from Deployment, through Operators & Controllers to Schedulers): kube.rs
-
Tracing / Logging
- Start by learning the log package with
env_logger. - Then learn about Tokio's tracing package.
- Then, like myself, patiently await
tracing v0.2.x - Once you learn how Context propagation works in Rust,
tracingcan be hooked into observability stacks via layering, but it's worth learningtracingfor justasyncRust first.
- Then, like myself, patiently await
- Start by learning the log package with