You can also look into CPS based solutions:
atlas search cps
cps:
url: https://github.com/nim-works/cps (git)
tags: async, await, concurrency, continuation, coroutines, cps, fibers, io, nim, parallel, passing, style, threads
description: Continuation-Passing Style for Nim 🔗
license: MIT
website: https://github.com/nim-works/cps
eventqueue:
url: https://github.com/disruptek/eventqueue (git)
tags:
description: reference CPS dispatcher using selectors
license: MIT
website: https://github.com/disruptek/eventqueue
passenger:
url: https://github.com/disruptek/passenger (git)
tags:
description: a demo of cps dispatch-fu
license: MIT
website: https://github.com/disruptek/passenger
cpstest:
url: https://github.com/zevv/cpstest (git)
tags:
description:
license:
website: https://github.com/zevv/cpstest
cps-baremetal:
url: https://github.com/zevv/cps-baremetal (git)
tags:
description:
license:
website: https://github.com/zevv/cps-baremetal
cpslearning:
url: https://github.com/shayanhabibi/cpslearning (git)
tags:
description: Some things while I learn cps
license:
website: https://github.com/shayanhabibi/cpslearning
cps-runtime:
url: https://github.com/gabearro/cps-runtime (git)
tags:
description: Nim CPS runtime with http1.1, http2, http3, ws, sse, webtransport, irc, dns and a React-like DSL, http server DSL, and wasm compilation
license:
website: https://github.com/gabearro/cps-runtime