Use the Rust `sema` Crate to Throttle Async Tasks with a Counting Semaphore
When dozens of async tasks compete for a limited resource, a counting semaphore can serialize access without blocking the executor. This guide walks through the Rust `sema` crate, shows a minimal example, explains fairness, and warns about common pitfalls.