I’m an avid user of async Rust, and I have used it to implement various kinds of distributed systems and networking applications. Even though async Rust is very helpful in expressing concurrent processes, synchronization patterns, timeouts etc., it is not a secret that there are still a lot of papercuts and missing features in it. One of these is an interface for asynchronous iterators.