Lightweight in-process concurrent programming
Project description
Greenstack is a fork of greenlet, which is a spin-off of Stackless, a version of CPython that supports micro-threads called “tasklets”. Tasklets run pseudo-concurrently (typically in a single or a few OS-level threads) and are synchronized with data exchanges on “channels”.
A “greenlet”, on the other hand, is a still more primitive notion of micro-thread with no implicit scheduling; coroutines, in other words. This is useful when you want to control exactly when your code runs. You can build custom scheduled micro-threads on top of greenlet; however, it seems that greenlets are useful on their own as a way to make advanced control flow structures. For example, we can recreate generators; the difference with Python’s own generators is that our generators can call nested functions and the nested functions can yield values too. Additionally, you don’t need a “yield” keyword. See the example in tests/test_generator.py.
Greenlets are provided as a C extension module for the regular unmodified interpreter.
Greenlets are coroutines for in-process concurrent programming.
Getting Greenstack
Currently, the only way to get Greenstack is by building it from source:
git clone git@github.com:tbodt/greenstack cd greenstack ./setup.py install
This will change soon.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for greenstack-0.6-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3197e20cb8991256f498a3d5d799d78c88df99b63724034fe480a3960d4368d |
|
MD5 | 888f6e9480efd76d6cc34d626956c8f1 |
|
BLAKE2b-256 | 59192d14b071d611d4f2fb79744cd62ca140260b37fdacd50dde12007934c217 |
Hashes for greenstack-0.6-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0863fce548928d7c3b5ce27d68c37a05b0437efae170bd4f10f05bd44d215c89 |
|
MD5 | 2747568286a61178519d46c437b15779 |
|
BLAKE2b-256 | c2d3453d59bdb13dabcfca194da62a6067ddb11dc3e67c02e5f8ce8a994b858a |
Hashes for greenstack-0.6-cp33-cp33m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | afce2e363fa02720cbc4d7fc165bf790f632c3e1a313f22815ed4e95f36de0d5 |
|
MD5 | 19f9fd4f942c4d77bab5d3c0bf34abcf |
|
BLAKE2b-256 | 63277543ea530cb34753bc5457f31707714c1f7692acf8a0ebae300082c4001d |
Hashes for greenstack-0.6-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fdff6f98e639f10e4d375c75180789b78cba4cdb271ec7565d0156263d4d19b |
|
MD5 | 41f5f2ce67093fdeca8a36e375501642 |
|
BLAKE2b-256 | 09436ffa81bfdfb012732b49acacd9cbedd6ca5e5fcb4be4c0264877a44ec4aa |
Hashes for greenstack-0.6-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2c1a56e66ee6c2faa7c6576d5958ffc2062dece10c4d5856a3ffbd4d93f3445 |
|
MD5 | a4b1ce0469d11172720a583793de077e |
|
BLAKE2b-256 | 125684cee95d3ef34cdf380c6e1f552da619cfe373cbc32fc00f1972abc9294e |
Hashes for greenstack-0.6-cp27-cp27m-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f36ef78343468ec6510f51a8fc2a3691b6b22e1a1f45e274137cc5386da36ab6 |
|
MD5 | 802811f5a512e50b066667d59297df85 |
|
BLAKE2b-256 | c0c32d87344d6bc625b01761020548e30262f9bc21fafe3f42212e600724a9de |
Hashes for greenstack-0.6-cp26-cp26mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26486468fb187a27921fd25e0dff8dbf0e4a4522f8930d47b82d1ae1d0b03c03 |
|
MD5 | da251aee5fd2d390c1d21e4d026a1e23 |
|
BLAKE2b-256 | ed6481ef5fa375e44230960de821183ec23b903e13e4c85dab98220c79ffd2cb |
Hashes for greenstack-0.6-cp26-cp26m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 461dba456837ea8fc67895673dfcddd07731170401c7380e2ed2ee17d5ec6ee9 |
|
MD5 | 972f9a77e1042238b2eed77300899ad8 |
|
BLAKE2b-256 | 9fae9bc8f3e0aa9eed8b83a29af76952a54033826019a250ce5aef4af212d407 |