redrop
Rust's Drop::drop is synchronous. If a value owns something that needs .await to close
cleanly — a socket, a database session, a batched log shipper — there's no built-in way to run
that cleanup when it goes out of scope.
redrop is a small library that closes that gap: you annotate the async cleanup method, and
a generated Drop::drop hands the cleanup off to a collector that runs it later, with the load
of many drops happening at once handled for you.
This site is a slow, step-by-step walkthrough of how it works and how to use it — no prior knowledge of proc macros or async internals assumed.