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 async runtime 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.
  • 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, tracing can be hooked into observability stacks via layering, but it's worth learning tracing for just async Rust first.