Overview¶
Direct usage of Python’s multiprocessing package in the context of a gevent-powered application is error-prone and may break the application in various subtle ways (see Challenges).
With gipc, multiprocessing.Process
-based child processes can safely be
created anywhere within your gevent-powered application. The API of
multiprocessing.Process
objects is provided in a gevent-cooperative fashion.
Also, gipc provides a pipe-based transport layer for gevent-cooperative
inter-greenlet and inter-process communication. gipc is lightweight and easy to
integrate (see code
examples, API reference).
gipc is used by, among others, Quantopian’s remote Python debugger, Ajenti, Chronology, gipcrpc, NetCall, PokeAlarm, Wishbone, and GDriveFS. Are you successfully applying gipc in your project? That is always great to hear: please drop me a line!
Platform support¶
The current version of gipc works on CPython 2.7/3.4/3.5/3.6/3.7. It requires gevent 1.2 or 1.3 and supports both, Unix-like systems as well as Windows. On Unix-like systems, gipc also works with PyPy2.7 and PyPy3. gipc’s test suite is automatically executed on Linux, Darwin (macOS), and Windows.
Download & installation¶
The latest gipc release from PyPI can be downloaded and installed via pip:
$ pip install gipc
pip can also install the current development version of gipc:
$ pip install git+https://github.com/jgehrcke/gipc
Versioning¶
gipc obeys semantic versioning.