23 lines
1.6 KiB
Markdown
23 lines
1.6 KiB
Markdown
# structio - What am I even doing?
|
|
|
|
A proof of concept for an experimental structured concurrency framework written in Python
|
|
|
|
## Disclaimer
|
|
|
|
This library is highly experimental and currently in alpha stage (it doesn't even have a proper version
|
|
number yet, that's how alpha it is), so it's not production ready (and probably never will be). If you
|
|
want the fancy structured concurrency paradigm in a library that works today, consider [trio](https://trio.readthedocs.org),
|
|
from which structio is heavily inspired ([curio](https://github.com/dabeaz/curio) is also worth looking into, although
|
|
technically it doesn't implement SC).
|
|
|
|
## Why?
|
|
|
|
This library (and [its](https://git.nocturn9x.space/nocturn9x/giambio) [predecessors](https://git.nocturn9x.space/nocturn9x/aiosched)) is just a way for me to test my knowledge and make sure I understand the basics of structured concurrency
|
|
and building solid coroutine runners so that I can implement the paradigm in my own programming language. For more info, see [here](https://git.nocturn9x.space/nocturn9x/peon).
|
|
|
|
**P.S.**: structio is only thoroughly tested for Linux: While Windows/macOS support is one of the goals
|
|
of the project, I currently don't have enough time to dedicate to the quirks of the I/O subsystem of each OS.
|
|
All features that don't rely on I/O (timeouts, events, queues, memory channels, etc.) are cross-platform, but
|
|
things like sockets behave very differently depending on the platform, and it'll take some time for me to
|
|
apply the necessary fixes for each of them. File I/O (in its current form using threads), as well as asynchronous
|
|
threads and processes _should_ work, but there's no guarantee |