A proof of concept for an experimental structured concurrency framework written in Python
Go to file
Mattia Giambirtone c4e07a0da1 Remove task handling example (no longer supported) 2024-03-29 19:12:57 +01:00
examples Remove task handling example (no longer supported) 2024-03-29 19:12:57 +01:00
structio Fixes and refactoring 2024-03-29 15:16:05 +01:00
.gitignore Update .gitignore 2024-03-10 17:23:22 +01:00
LICENSE Initial commit 2023-05-15 18:15:45 +02:00
README.md Update README with notes about OS (in)compatibility 2024-02-23 13:13:47 +01:00
requirements.txt Fix cancellation bugs and add ability to call some objects in remote python processes 2024-03-16 22:17:45 +01:00
setup.py Update setup.py with correct project URL 2024-02-23 13:13:47 +01:00

README.md

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, from which structio is heavily inspired (curio is also worth looking into, although technically it doesn't implement SC).

Why?

This library (and its predecessors) 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.

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