/write-you-async-for-a-great-good

Source code for my Ruby based async/await tutorial.

Primary LanguageRuby

write-you-async-for-a-great-good

Source code for my Ruby based async/await tutorial.

What happened here?

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 :)

Plot:

  • 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! :)