Async From First Principles
Built up from the poll loop, not down from an attribute macro. You write a Future by hand, build a working block_on with a real Waker, and only then look at what Tokio adds on top.
// lessons
- 01
A Future Is a Poll Function
Implement Future by hand and see there is no magic in it.
- 02
Nothing Runs Without an Executor
Prove that an un-awaited future does exactly nothing, and say why that is a feature.
- 03
Build block_on
Write a real executor: Waker, RawWaker and a park/unpark loop.
- 04
Cooperative Scheduling & Blocking Calls
Explain why one blocking call stalls an entire runtime thread.
- 05
Cancellation Is a Drop
Make cleanup correct when a client disconnects mid-request.
- 06
Timeouts & Select
Race a future against a deadline, and say which side won and what leaked.
- 07
What Tokio Adds
Map every piece you built to its Tokio equivalent: spawn, JoinHandle, select!, spawn_blocking.
Every exercise compiles and runs in the Forge sandbox — standard library only, no external crates.
