Source code for my Ruby based async/await tutorial.
I've been thinking about writing a small article about my experience of using EventMachine and building infrastructe around it for a real application in commercial use, but latter I've decided to transform into into something like a real book. So it will take a lot more time to do this, if I will ever complete this endevour :)
- Chapter 1: Problem we are trying to solve. Introducing client/server, socket concept and plot of our story.
- Chapter 2: Introduction to select Ruby interface.
- Chapter 3: Building blocks of async: Byte Buffers, Selectors, Event Emmiters
- Chapter 4: Let's build it. Our first async application in plain Ruby.
- Chapter 5: Prior art. EventMachine.
- Chapter 6: EventMachine evolution. Fibers.
- Chapter 7: Alternative approaches. Revactor, Celluloid, nio4r and others. Midori and Ruby 3 evolution.
- Chapter 8: Modern age Async. Ruby 3. Ractors and the future of Ruby async.
- Chapter 9: Let's build it 2. Using fibers as our core abstraction.
- Chapter 10: Let's implement asynchronous TCP.
- Chapter 11: Let's implement asynchronous HTTP 1.1. And why HTTP 2 is beyond our reach.
- Chapter 12: Let's implement asyncronous web-server and app.
- Chapter 13: Wrapping up. Async/await, CSP, Actors and other high level models.
- Chapter 14: Async in C, Java, Rust, and Javascript. Further studying.
Plot is in flux, so it might change! :)