This chapter was an introduction to one of the most exciting components of the larger Rust ecosystem. Futures and the Tokio ecosystem provide powerful primitives that can be widely used in applications, including networking software. In itself, Futures can be used to model any computation that is otherwise slow and/or depends on an external resource. Coupled with tokio, it can be used to model complex protocol behaviors that are pipelined, or multiplexed, and so on.
Some major drawbacks of using these center around lack of proper documentation and examples. Also, error messages from these applications are often heavily templated and, hence, verbose. Because the Rust compiler itself does not know of the abstractions as such, it often complains about type mismatches, and it is up to the user to reason through deeply nested types. Somewhere down the line, it may make sense...