{"id":16820525,"url":"https://github.com/op/pkg-python-greenlet","last_synced_at":"2025-06-15T18:33:13.164Z","repository":{"id":4991163,"uuid":"6149281","full_name":"op/pkg-python-greenlet","owner":"op","description":"Debian packaging for greenlet","archived":false,"fork":false,"pushed_at":"2012-11-14T01:37:58.000Z","size":216,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-17T15:26:03.463Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/op.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-10-09T23:07:50.000Z","updated_at":"2014-02-05T23:39:35.000Z","dependencies_parsed_at":"2022-09-12T05:50:22.391Z","dependency_job_id":null,"html_url":"https://github.com/op/pkg-python-greenlet","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/op/pkg-python-greenlet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/op%2Fpkg-python-greenlet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/op%2Fpkg-python-greenlet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/op%2Fpkg-python-greenlet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/op%2Fpkg-python-greenlet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/op","download_url":"https://codeload.github.com/op/pkg-python-greenlet/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/op%2Fpkg-python-greenlet/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260028435,"owners_count":22947949,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T10:57:06.828Z","updated_at":"2025-06-15T18:33:13.147Z","avatar_url":"https://github.com/op.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"The greenlet package is a spin-off of Stackless, a version of CPython\nthat supports micro-threads called \"tasklets\". Tasklets run\npseudo-concurrently (typically in a single or a few OS-level threads)\nand are synchronized with data exchanges on \"channels\".\n\nA \"greenlet\", on the other hand, is a still more primitive notion of\nmicro-thread with no implicit scheduling; coroutines, in other\nwords. This is useful when you want to control exactly when your code\nruns. You can build custom scheduled micro-threads on top of greenlet;\nhowever, it seems that greenlets are useful on their own as a way to\nmake advanced control flow structures. For example, we can recreate\ngenerators; the difference with Python's own generators is that our\ngenerators can call nested functions and the nested functions can\nyield values too. Additionally, you don't need a \"yield\" keyword. See\nthe example in tests/test_generator.py.\n\nGreenlets are provided as a C extension module for the regular\nunmodified interpreter.\n\nGreenlets are lightweight coroutines for in-process concurrent\nprogramming.\n\nWho is using Greenlet?\n======================\n\nThere are several libraries that use Greenlet as a more flexible\nalternative to Python's built in coroutine support:\n\n - `Concurrence`_\n - `Eventlet`_\n - `Gevent`_\n\n.. _Concurrence: http://opensource.hyves.org/concurrence/\n.. _Eventlet: http://eventlet.net/\n.. _Gevent: http://www.gevent.org/\n\nGetting Greenlet\n================\n\nThe easiest way to get Greenlet is to install it with pip or\neasy_install::\n\n  pip install greenlet\n  easy_install greenlet\n\n\nSource code archives and windows installers are available on the\npython package index at http://pypi.python.org/pypi/greenlet\n\nThe source code repository is hosted on github:\nhttps://github.com/python-greenlet/greenlet\n\nThe master branch - i.e. the `development version`_ - can be installed\ndirectly by running one of the following::\n\n  pip install greenlet==dev\n  easy_install greenlet==dev\n\n.. _`development version`: https://github.com/python-greenlet/greenlet/zipball/master#egg=greenlet-dev\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fop%2Fpkg-python-greenlet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fop%2Fpkg-python-greenlet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fop%2Fpkg-python-greenlet/lists"}