redrop

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.

Start the tutorial →