Igor: Structured concurrency in Go

I’ve put a small project together over the weekend that implements structured concurrency in Go.

It’s in no way production ready, but it may be of interest if you want to just play with it.


I’ll try to add context (not knowing Go well, feel free to correct me):

  • structured concurrency requires cooperation from the entire program, including library dependencies. So Igor must exist as a Go dialect (disallowing go statement, etc.) rather than library.
  • Python / Trio can kind of get away with just a library, since Python is agnostic to the cooperative multitasking loop, and a large percentage of Python libraries don’t use OS threads or asyncio (in contrast, I assume almost every Go library uses the go statement).

I see, it’s clarified more in the README:

This project is meant as a playground for experimenting with what a language with native support for structured concurrency would look like.