Discussion forum for David Beazley

Async io/curio for beginners


Hi David/All,

I have a decent understanding of python and can write fairly complex programs. I wanted to understand more about asyncio and curio frameworks. I came across a few tutorials like this one. But they seem too high level.

Could you suggest a some starting point like books/tutorials/toy project ideas for getting started?

FYI, I am a big fan. I have watched/re-watched/made notes on many of your talks on youtube. Really loved your talk on Discovering Python (pycon 2014).



Curio and asyncio are based on two totally different concepts for how concurrency and I/O should be implemented so they probably shouldn’t be grouped together when it comes to understanding how they work.

Probably the best general source of information about what’s happening in Curio would be an operating system textbook—especially sections pertaining to process/task scheduling. Under the covers, that is essentially what Curio is doing (scheduling). My PyCon 2015 talk (https://www.youtube.com/watch?v=MCs5OvhV9S4) is actually not too far away from how Curio works. Some newer talks such as the PyOhio talk (https://www.youtube.com/watch?v=E-1Y4kSsAFc) get into more detail about async/await. Some much older talks such as the Coroutine tutorial from PyCon 2009 are also somewhat related to how Curio works (https://www.youtube.com/watch?v=Z_OAlIhXziw).

If you’re main interest is in the usage of Curio versus its implementation, the official documentation is probably the main source for now. I’ve tried to include some useful examples, but it’s an ongoing work in progress.