All Projects → jgehrcke → gipc

jgehrcke / gipc

Licence: MIT license
gevent-cooperative child processes and inter-process communication

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Changelog | gipc @ PyPI | gipc @ GitHub

Overview

gipc (pronunciation as in “gipsy”) enables reliable child process management and non-blocking inter-process communication in gevent-driven software projects.

Using Python's multiprocessing package in the context of a codebase that also uses gevent is error-prone and may break the application in various subtle ways. 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 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. Since then development has continued on GitHub.

Code examples

Individual example programs can be found in the 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.6 through 3.10. 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?

Are you using gipc in your project? Please drop me a line!

How to run the tests?

gipc's tests are written for pytest. 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 [email protected] or use the GitHub issue tracker.

Author & license

gipc is written and maintained by Jan-Philip Gehrcke. 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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].