Let's put together a vulnerable server, then blow it up. Lay out your Cargo.toml like so:
[package] name = "overwhelmed_tcp_server" version = "0.1.0" authors = ["Brian L. Troutwine <brian@troutwine.us>"] [dependencies] clap = "2.31" slog = "2.2" slog-term = "2.4" slog-async = "2.3" [[bin]] name = "server" [[bin]] name = "client"
The library slog (https://crates.io/crates/slog) is a structured logging library that I highly recommend in production systems. Slog itself is very flexible, being more of a framework for composing a logging system rather than a set thing. Here we'll be logging to terminal, which is what slog-term is for. The slog-async dependency defers actual writing to the terminal, in our case, to a dedicated thread. ...