Skip to content

jgehrcke/gipc

Repository files navigation

Changelog | gipc @ PyPI | gipc @ GitHub

Overview

gipc enables reliable child process management and non-blocking inter-process communication in software that uses gevent.

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 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. 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.8 through 3.12. 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 jgehrcke@googlemail.com 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

About

gevent-cooperative child processes and inter-process communication

Resources

License

Stars

Watchers

Forks