posix-ipc
POSIX IPC primitives (semaphores, shared memory and message queues) for Python
What it is and what it does
posix_ipc is a C-based Python module that wraps POSIX Realtime Extensions (POSIX 1003.1b-1993) inter-process communication primitives. It lets you create and manage semaphores, shared memory segments, and message queues for coordinating work across multiple processes on Unix-like systems. The module has no runtime dependencies and exposes these low-level IPC mechanisms directly to Python, making it suitable for applications that need efficient, kernel-level process synchronization without higher-level abstractions.
The package is production-stable (Development Status 5), actively maintained, and has been in use since its first release with no reported bugs in the core code for seven years. Pre-built wheels are available for common platforms, though building from source requires a C compiler. The permissive BSD-3-Clause license makes it suitable for both open-source and commercial projects.
Use it for:
- Coordinate multiple worker processes in a daemon or service that needs kernel-level synchronization without external dependencies.
- Implement fast inter-process message passing for real-time or low-latency applications where socket-based IPC adds overhead.
- Build process pools or job queues that use POSIX semaphores for mutual exclusion and shared memory for efficient data exchange.
- Create named semaphores for inter-process locking in multi-process Python applications running on the same machine.
- Implement producer-consumer patterns using POSIX message queues for decoupled process communication.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
posix_ipc provides Python bindings to POSIX inter-process communication primitives—semaphores, shared memory, and message queues—for synchronization and data exchange between processes on Unix-like systems and Windows with Cygwin.
Yes, if you need low-level POSIX IPC primitives for multi-process coordination on Unix-like systems. The package is stable, actively maintained, has no known vulnerabilities, and carries a permissive license. Install friction is moderate due to C compilation, but pre-built wheels cover common platforms. Not suitable if you need Windows support without Cygwin or if you prefer higher-level abstractions like multiprocessing or queue modules.
Install
posix-ipc on PyPI
pip
pip install posix-ipcuv
uv add posix-ipcpoetry
poetry add posix-ipcInstalling posix-ipc
Before you install
Medium install friction due to C extension compilation required across multiple platforms. Pre-built wheels are available for common Python versions and architectures, reducing friction for standard setups. Maintenance is active with recent releases.
License in practice
BSD-3-Clause permissive license allows use in both open-source and proprietary projects with minimal restrictions; you must include the license text and acknowledge the authors.
Quickstart
pip install posix-ipc
import posix_ipc
# Create a semaphore
sem = posix_ipc.Semaphore('/my_sem', flags=posix_ipc.O_CREX)
sem.acquire()
sem.release()
Requires a POSIX-compliant system (Unix, Linux, macOS, or Windows with Cygwin ≥ 1.7); C compiler needed if building from source rather than using pre-built wheels.
Verify before relying
- Whether the package works with Python versions older than those with pre-built wheels (description mentions Python 3 compatibility but requires_python is unspecified).
- Current state of Windows + Cygwin support and whether pre-built wheels are available for that platform.
- Exact Python version range supported beyond the wheel evidence.
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | not specified |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 295 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 448,256/month — #6,603 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: posix_ipc-1.3.2-cp310-cp310-macosx_10_9_x86_64.whl; posix_ipc-1.3.2-cp310-cp310-macosx_11_0_arm64.whl; posix_ipc-1.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; posix_ipc-1.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl; posix_ipc-1.3.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl; posix_ipc-1.3.2-cp310-cp310-musllinux_1_2_aarch64.whl; posix_ipc-1.3.2-cp310-cp310-musllinux_1_2_i686.whl; posix_ipc-1.3.2-cp310-cp310-musllinux_1_2_x86_64.whl; posix_ipc-1.3.2-cp311-cp311-macosx_10_9_x86_64.whl; posix_ipc-1.3.2-cp311-cp311-macosx_11_0_arm64.whl; posix_ipc-1.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; posix_ipc-1.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl; posix_ipc-1.3.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl; posix_ipc-1.3.2-cp311-cp311-musllinux_1_2_aarch64.whl; posix_ipc-1.3.2-cp311-cp311-musllinux_1_2_i686.whl; posix_ipc-1.3.2-cp311-cp311-musllinux_1_2_x86_64.whl; posix_ipc-1.3.2-cp312-cp312-macosx_10_13_x86_64.whl; posix_ipc-1.3.2-cp312-cp312-macosx_11_0_arm64.whl; posix_ipc-1.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; posix_ipc-1.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
sysv-ipcProvides Python access to System V IPC…
permissive · top 15,000 on PyPI
jeepneyJeepney is a pure Python implementation of…
permissive · top 1,000 on PyPI
locketLocket provides file-based locks for…
permissive · top 1,000 on PyPI
zc.lockfileProvides portable inter-process locks…
unclear · top 5,000 on PyPI
fifolockFifolock provides a low-level building block…
permissive · top 15,000 on PyPI
atomic_dictAtomic-Dict provides a lock-free, shared 64-bit…
permissive · top 15,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
libucxx-cu12Provides Python bindings for UCX (Unified…
permissive · top 15,000 on PyPI
dbus-pythonProvides Python bindings to libdbus, allowing…
permissive · top 15,000 on PyPI
janusProvides a thread-safe queue with both…
permissive · top 5,000 on PyPI