Five Years of Trying to Add Recursion to lychee
Summary
This post details lychee's five-year quest to implement recursion in its async link checker. It chronicles multiple architectural experiments (channel-based cycles, semaphores, per-host rate limiting, and the WaitGroup approach) and highlights notable lessons about termination, backpressure, and Rust's ownership model. The piece ends on a hopeful note, with recent infrastructure changes bringing recursion closer to reality.