Async aims to make writing asynchronous processing easier. It provides a task-graph with interdependent tasks that communicate using blocking channels, allowing to delay actual computations until items are requested. Tasks will automatically be distributed among 0 or more threads for the actual computation.
Even though the GIL effectively prevents true concurrency, operations which block, such as file IO, can be sped up with it already. In conjunction with custom c extensions which release the GIL, true concurrency can be obtained as well.
- Python Nose - for running the tests
- NOTE: it doesn't seem to work deterministically in this version, and must be avoided
Development was discontinued, as there are much better alternatives, like zeromq.
Async is considered useless (by me, the author) as the GIL will prevent anything good from happening (it gets slower instead of faster in multi-threaded mode ;)). Please do not use this project, which can be considered nothing more than an exercise I did years ago.
The source is available in a git repository at gitorious and github:
Run the tests with cd async nosetests
New BSD License