# Summary
[Where to start](ch00-00-where-to-start.md)
- [How an event loop works](ch01-00-how-an-event-loop-works.md)
- [Using event sources](ch02-00-event-sources.md)
- [Monitoring a file descriptor](ch02-01-generic.md)
- [Timers](ch02-02-timers.md)
- [Ping](ch02-03-ping.md)
- [Channels](ch02-04-channels.md)
- [Unix Signals](ch02-05-signals.md)
- [I need async/await!](ch03-00-async-await.md)
- [Run async code](ch03-01-run-async-code.md)
- [Async IO types](ch03-02-async-io-types.md)
- [A full example: ZeroMQ](ch04-00-a-full-example-zeromq.md)
- [Composition](ch04-01-composition.md)
- [Creating our source, part I: our types](ch04-02-creating-our-source-part-1-our-types.md)
- [Creating our source, part II: setup methods](ch04-03-creating-our-source-part-2-setup-methods.md)
- [Creating our source, part III: processing events (almost)](ch04-04-creating-our-source-part-3-processing-events-almost.md)
- [Creating our source, part IV: processing events (really)](ch04-05-creating-our-source-part-4-processing-events-really.md)
- [The full ZeroMQ event source code](ch04-06-the-full-zeromq-event-source-code.md)