How does it compare with https://github.com/edubart/minicoro ?
For a few similar things:
* It can Yield from anywhere
* You can push data on the stack when creating a co-routine
* It has a slot for local storage in the coroutine (the library you linked calls it user_data).
* It should be pretty light weight since it uses assembly and saves as little state as possible based off the calling the conventions.
There are differences though. One big difference is I do have functions that let you call functions that generate deep call stacks on the thread stack.