`Changelog <https://github.com/jgehrcke/gipc/blob/master/CHANGELOG.rst>`_ |
`gipc @ PyPI <https://pypi.python.org/pypi/gipc>`_ |
`gipc @ GitHub <https://github.com/jgehrcke/gipc>`_
Overview
========
gipc enables reliable child process management
and non-blocking inter-process communication in software that uses `gevent
<https://github.com/gevent/gevent>`_.
Using Python's `multiprocessing package
<https://docs.python.org/3/library/multiprocessing.html>`_ in the context of a
codebase that also uses gevent is error-prone and may break the application in
various `subtle ways
<https://gehrcke.de/gipc/#what-are-the-challenges-and-what-is-gipc-s-solution>`_.
With gipc, ``multiprocessing.Process``-based child processes can again safely be
created in your gevent-powered application. The API of
``multiprocessing.Process`` objects is provided in a gevent-cooperative way.
Also, gipc provides a pipe-based transport layer for gevent-cooperative
inter-greenlet and inter-process communication. gipc is lightweight and easy to
integrate.
From 2012 to 2018, gipc's home was at `bitbucket.org/jgehrcke/gipc
<https://bitbucket.org/jgehrcke/gipc>`_. Since then development has continued on
GitHub.
Code examples
=============
Individual example programs can be found in the `examples
<https://github.com/jgehrcke/gipc/blob/master/examples>`_ directory.
Documentation
=============
Visit https://gehrcke.de/gipc for installation instructions, API docs, code
examples, and in-depth information.
Platform support
================
The current version of gipc works on CPython 3.9 through 3.13. It supports
gevent versions 1.5 and newer and supports both, Unix-like systems as well as
Windows. On Linux and macOS, gipc also works with PyPy.
gipc's continuous integration (CI) pipeline automatically executes a wide range
of tests on Linux, Darwin (macOS), and Windows.
Who uses it?
============
- `MXCuBE <https://mxcube.github.io/mxcube/>`_ (Macromolecular Xtallography Customized Beamline Environment)
- `AIT-Core <https://github.com/NASA-AMMOS/AIT-Core>`_ (AMMOS Instrument Toolkit, developed for a number of ISS missions)
- `pyethapp <https://github.com/ethereum/pyethapp>`_
- `disco <https://github.com/b1naryth1ef/disco>`_ (Discord Python library)
- `bliss <https://bliss.gitlab-pages.esrf.fr/bliss/index.html>`_
- `esdocs <https://github.com/jaddison/esdocs>`_
- `Wishbone <https://wishbone.readthedocs.io>`_
- `Quantopian’s remote Python debugger <https://github.com/quantopian/qdb>`_
- `Ajenti <http://ajenti.org/>`_
- `HoneyBadgerBFT <https://github.com/initc3/HoneyBadgerBFT-Python>`_
- `iDigBio <https://github.com/iDigBio/idb-backend>`_
- `Chronology <http://chronology.github.io>`_
- `GDriveFS <https://github.com/dsoprea/GDriveFS>`_
- `NetCall <https://github.com/aglyzov/netcall>`_
- `SiteScan <https://github.com/jasonsheh/SiteScan>`_
- `PokeAlarm <https://github.com/PokeAlarm/PokeAlarm>`_
- `gipcrpc <https://github.com/studio-ousia/gipcrpc>`_
- `etcd-gevent <https://github.com/wjsi/etcd-gevent>`_
Are you using gipc in your project? Please drop me a line!
How to run the tests?
=====================
gipc's tests are written for `pytest <http://pytest.org>`_. With the
repository's root directory being the current working directory you can run the
tests like this::
$ pip install -r requirements-tests.txt
$ cd test && pytest -vv --cov-report term --cov-report html --cov gipc
Contact & help
==============
Your feedback and questions are highly appreciated. Please contact me via mail
at jgehrcke@googlemail.com or use the `GitHub issue tracker
<https://github.com/jgehrcke/gipc/issues>`_.
Author & license
================
gipc is written and maintained by `Jan-Philip Gehrcke <https://gehrcke.de>`_.
It is licensed under the MIT license (see LICENSE file).
I am thankful for all contributions (bug reports, code, great questions) from:
- Guy Rozendorn
- John Ricklefs
- Heungsub Lee
- Alex Besogonov
- Jonathan Kamens
- Akhil Acharya
- John Porter
- James Addison
- Oliver Margetts
- ... and others
Raw data
{
"_id": null,
"home_page": "https://gehrcke.de/gipc",
"name": "gipc",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "gevent, multiprocessing, ipc, child processes",
"author": "Dr. Jan-Philip Gehrcke",
"author_email": "jgehrcke@googlemail.com",
"download_url": "https://files.pythonhosted.org/packages/94/60/2394e336a97e6e9e575800042e2f139ed67cd018e76037b15010a1927bd5/gipc-1.7.0.tar.gz",
"platform": "POSIX",
"description": "`Changelog <https://github.com/jgehrcke/gipc/blob/master/CHANGELOG.rst>`_ |\n`gipc @ PyPI <https://pypi.python.org/pypi/gipc>`_ |\n`gipc @ GitHub <https://github.com/jgehrcke/gipc>`_\n\nOverview\n========\ngipc enables reliable child process management\nand non-blocking inter-process communication in software that uses `gevent\n<https://github.com/gevent/gevent>`_.\n\nUsing Python's `multiprocessing package\n<https://docs.python.org/3/library/multiprocessing.html>`_ in the context of a\ncodebase that also uses gevent is error-prone and may break the application in\nvarious `subtle ways\n<https://gehrcke.de/gipc/#what-are-the-challenges-and-what-is-gipc-s-solution>`_.\nWith gipc, ``multiprocessing.Process``-based child processes can again safely be\ncreated in your gevent-powered application. The API of\n``multiprocessing.Process`` objects is provided in a gevent-cooperative way.\nAlso, gipc provides a pipe-based transport layer for gevent-cooperative\ninter-greenlet and inter-process communication. gipc is lightweight and easy to\nintegrate.\n\nFrom 2012 to 2018, gipc's home was at `bitbucket.org/jgehrcke/gipc\n<https://bitbucket.org/jgehrcke/gipc>`_. Since then development has continued on\nGitHub.\n\nCode examples\n=============\n\nIndividual example programs can be found in the `examples\n<https://github.com/jgehrcke/gipc/blob/master/examples>`_ directory.\n\n\n\nDocumentation\n=============\nVisit https://gehrcke.de/gipc for installation instructions, API docs, code\nexamples, and in-depth information.\n\n\nPlatform support\n================\n\nThe current version of gipc works on CPython 3.9 through 3.13. It supports\ngevent versions 1.5 and newer and supports both, Unix-like systems as well as\nWindows. On Linux and macOS, gipc also works with PyPy.\n\ngipc's continuous integration (CI) pipeline automatically executes a wide range\nof tests on Linux, Darwin (macOS), and Windows.\n\n\nWho uses it?\n============\n\n- `MXCuBE <https://mxcube.github.io/mxcube/>`_ (Macromolecular Xtallography Customized Beamline Environment)\n- `AIT-Core <https://github.com/NASA-AMMOS/AIT-Core>`_ (AMMOS Instrument Toolkit, developed for a number of ISS missions)\n- `pyethapp <https://github.com/ethereum/pyethapp>`_\n- `disco <https://github.com/b1naryth1ef/disco>`_ (Discord Python library)\n- `bliss <https://bliss.gitlab-pages.esrf.fr/bliss/index.html>`_\n- `esdocs <https://github.com/jaddison/esdocs>`_\n- `Wishbone <https://wishbone.readthedocs.io>`_\n- `Quantopian\u2019s remote Python debugger <https://github.com/quantopian/qdb>`_\n- `Ajenti <http://ajenti.org/>`_\n- `HoneyBadgerBFT <https://github.com/initc3/HoneyBadgerBFT-Python>`_\n- `iDigBio <https://github.com/iDigBio/idb-backend>`_\n- `Chronology <http://chronology.github.io>`_\n- `GDriveFS <https://github.com/dsoprea/GDriveFS>`_\n- `NetCall <https://github.com/aglyzov/netcall>`_\n- `SiteScan <https://github.com/jasonsheh/SiteScan>`_\n- `PokeAlarm <https://github.com/PokeAlarm/PokeAlarm>`_\n- `gipcrpc <https://github.com/studio-ousia/gipcrpc>`_\n- `etcd-gevent <https://github.com/wjsi/etcd-gevent>`_\n\nAre you using gipc in your project? Please drop me a line!\n\n\nHow to run the tests?\n=====================\ngipc's tests are written for `pytest <http://pytest.org>`_. With the\nrepository's root directory being the current working directory you can run the\ntests like this::\n\n $ pip install -r requirements-tests.txt\n $ cd test && pytest -vv --cov-report term --cov-report html --cov gipc\n\n\nContact & help\n==============\nYour feedback and questions are highly appreciated. Please contact me via mail\nat jgehrcke@googlemail.com or use the `GitHub issue tracker\n<https://github.com/jgehrcke/gipc/issues>`_.\n\n\nAuthor & license\n================\ngipc is written and maintained by `Jan-Philip Gehrcke <https://gehrcke.de>`_.\nIt is licensed under the MIT license (see LICENSE file).\n\nI am thankful for all contributions (bug reports, code, great questions) from:\n\n- Guy Rozendorn\n- John Ricklefs\n- Heungsub Lee\n- Alex Besogonov\n- Jonathan Kamens\n- Akhil Acharya\n- John Porter\n- James Addison\n- Oliver Margetts\n- ... and others\n",
"bugtrack_url": null,
"license": null,
"summary": "gevent-cooperative child processes and inter-process communication.",
"version": "1.7.0",
"project_urls": {
"Homepage": "https://gehrcke.de/gipc"
},
"split_keywords": [
"gevent",
" multiprocessing",
" ipc",
" child processes"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "94602394e336a97e6e9e575800042e2f139ed67cd018e76037b15010a1927bd5",
"md5": "ea01c0e0fc1829371994b517e30ffadb",
"sha256": "4e8d20f320fb1e3b07bef511e8ea4774cbe12184e74b5446301c43990ac8dfde"
},
"downloads": -1,
"filename": "gipc-1.7.0.tar.gz",
"has_sig": false,
"md5_digest": "ea01c0e0fc1829371994b517e30ffadb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 34568,
"upload_time": "2024-11-08T08:59:31",
"upload_time_iso_8601": "2024-11-08T08:59:31.653543Z",
"url": "https://files.pythonhosted.org/packages/94/60/2394e336a97e6e9e575800042e2f139ed67cd018e76037b15010a1927bd5/gipc-1.7.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-08 08:59:31",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "gipc"
}