Skip to main content

High-performance multiprocessing primitives for Python, written in Rust core.

Project description

ZooParallel Logo

High-Performance Multiprocessing Primitives for Python, written in Rust

ZooParallel provides robust, crash-safe, and zero-copy synchronization primitives backed by Shared Memory (POSIX shm) and Linux Futexes.

📖 User Guide

🚀 Usage Examples

Install

pip install zooparallelmp

or with uv:

uv add zooparallelmp

Process Pool

from zooparallel import ZooPool

# 8x faster than ProcessPoolExecutor for small tasks
with ZooPool(num_workers=4) as pool:
    # Processing data in parallel with zero IPC overhead
    results = pool.map(lambda x: x*x, range(100))

Lock (Crash-Safe)

from zooparallel import ZooLock, LockRecovered

# If a process kills -9 while holding this, the next one recovers it!
lock = ZooLock("my_db_lock")

try:
    with lock:
        # Critical Section
        pass
except LockRecovered:
    print("Previous owner died! State recovered.")

Zero-Copy Queue

from zooparallel import ZooQueue

# Ring Buffer in Shared Memory
q = ZooQueue("video_stream", size_mb=100)

# Producer
q.put_bytes(b"frame_data")

# Consumer (Zero-Copy View)
view, cursor = q.recv_view()
# process 'view' directly without copying...
q.commit_read(cursor)

💡 When to use ZooParallel?

✅ Use ZooParallel when... ❌ Stick to multiprocessing when...
You need high throughput (GB/s) between processes. You are sending small, infrequent messages.
You are working with large data like Video Frames or Numpy Arrays. You need to support Windows.
You require latency < 1ms for IPC. You prefer pure Python standard libraries without binary extensions.
You need crash-safety (if a worker dies, the lock is released). You need dynamic buffer resizing (ZooQueue is fixed-size).

📚 Documentation

Guides

  • User Guide: Getting started and common patterns.
  • Adapters: Integration with Numpy, PyArrow, and Protobuf.

Features

📊 Benchmarks

Results from a MacBook Pro M1 8GB RAM (2020):

Benchmark multiprocessing ZooParallel Speedup
Lock Contention 281k ops/s 1.22M ops/s 4.3x
Queue Throughput 4.1 GB/s 32.6 GB/s 7.9x
Pool Overhead 14k tasks/s 114k tasks/s 8.1x

Architecture (ADRs)

Compatibility

[!WARNING] macOS/Windows: Crash recovery (resiliency against dead processes) relies on Robust Mutexes, which are only supported on Linux. On macOS, if a worker process crashes while holding a lock, the system will deadlock. Use with caution in production on non-Linux platforms. Note that ZooPool monitors and restarts crashed workers, but this cannot recover a deadlocked synchronization primitive.

OS Lock Queue Pool Crash Recovery
Linux
macOS
Windows

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zooparallel-2026.2.2.tar.gz (42.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

zooparallel-2026.2.2-cp313-cp313-manylinux_2_28_x86_64.whl (223.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

zooparallel-2026.2.2-cp313-cp313-manylinux_2_28_aarch64.whl (216.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

zooparallel-2026.2.2-cp313-cp313-macosx_11_0_arm64.whl (199.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

zooparallel-2026.2.2-cp313-cp313-macosx_10_12_x86_64.whl (210.5 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

zooparallel-2026.2.2-cp312-cp312-manylinux_2_28_x86_64.whl (224.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

zooparallel-2026.2.2-cp312-cp312-manylinux_2_28_aarch64.whl (216.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

zooparallel-2026.2.2-cp312-cp312-macosx_11_0_arm64.whl (199.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

zooparallel-2026.2.2-cp312-cp312-macosx_10_12_x86_64.whl (210.5 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

zooparallel-2026.2.2-cp311-cp311-manylinux_2_28_x86_64.whl (224.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

zooparallel-2026.2.2-cp311-cp311-manylinux_2_28_aarch64.whl (217.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

zooparallel-2026.2.2-cp311-cp311-macosx_11_0_arm64.whl (198.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

zooparallel-2026.2.2-cp311-cp311-macosx_10_12_x86_64.whl (210.1 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

zooparallel-2026.2.2-cp310-cp310-manylinux_2_28_x86_64.whl (224.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

zooparallel-2026.2.2-cp310-cp310-manylinux_2_28_aarch64.whl (217.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

zooparallel-2026.2.2-cp310-cp310-macosx_11_0_arm64.whl (199.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

zooparallel-2026.2.2-cp310-cp310-macosx_10_12_x86_64.whl (210.4 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file zooparallel-2026.2.2.tar.gz.

File metadata

  • Download URL: zooparallel-2026.2.2.tar.gz
  • Upload date:
  • Size: 42.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for zooparallel-2026.2.2.tar.gz
Algorithm Hash digest
SHA256 e3bc8ada4a83cfe771ed86022800d3248a67fdef7ed3261a8320e00774f13603
MD5 44010522e27ab432cdba1b35c62bc1b3
BLAKE2b-256 740e699ca9bbb3bb2c76c17b3ed947114cf4a537e0a21c1d02ac02195897456d

See more details on using hashes here.

Provenance

The following attestation bundles were made for zooparallel-2026.2.2.tar.gz:

Publisher: release.yml on albertobadia/zooparallel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zooparallel-2026.2.2-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zooparallel-2026.2.2-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 72ab7a7c27b41bd519309e56865ba0267bcdaedabd9591157f7574bc45b84cbc
MD5 63ca2188ccb3e50bdd284e689b227273
BLAKE2b-256 cba3d045ee967abfc921618396bf7fc088a5c14e9c8d1eb762b70472eac9549b

See more details on using hashes here.

Provenance

The following attestation bundles were made for zooparallel-2026.2.2-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: release.yml on albertobadia/zooparallel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zooparallel-2026.2.2-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zooparallel-2026.2.2-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f971031b2e367a563dde69d434607fd2142511d2d6ec8c4955a305b6c494776b
MD5 aac3c305e8161e30587c1e9b4983b10f
BLAKE2b-256 4d6ec22d56094e420d70b55d0c36887f21efad9ad06cbad74ee9c4918ad76336

See more details on using hashes here.

Provenance

The following attestation bundles were made for zooparallel-2026.2.2-cp313-cp313-manylinux_2_28_aarch64.whl:

Publisher: release.yml on albertobadia/zooparallel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zooparallel-2026.2.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zooparallel-2026.2.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cb9da09ad9f829b27324049b264d2c1ce17d3cd99fda564abb4fd82b748d6123
MD5 05636bdb1aac4354a78559f2d9267943
BLAKE2b-256 19aac54035c849a35d84b3be3b79dc0847076fb7044ee87a2abf133d7836f84b

See more details on using hashes here.

Provenance

The following attestation bundles were made for zooparallel-2026.2.2-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on albertobadia/zooparallel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zooparallel-2026.2.2-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for zooparallel-2026.2.2-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ceedbd7ff8f79fd21e780ed0c8e80d1dc50c7ed46e9076be544c71c216838875
MD5 c279bb954eaf00ef1781b0957e8db43e
BLAKE2b-256 22f1fce1e74840bc232e51573a5df8874bca9fcf90f08fd74f9b7f9d7b7e1fb6

See more details on using hashes here.

Provenance

The following attestation bundles were made for zooparallel-2026.2.2-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: release.yml on albertobadia/zooparallel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zooparallel-2026.2.2-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zooparallel-2026.2.2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 27265fb02c649e5c34a3f3274b04c583d6978190b166ead515b95025498a4c58
MD5 6bf9c1ccdee2b9ee503056d572da0634
BLAKE2b-256 62507bf14c02ce73a495159214805b12a66c043142973dc37a4e6e8de0ef0715

See more details on using hashes here.

Provenance

The following attestation bundles were made for zooparallel-2026.2.2-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: release.yml on albertobadia/zooparallel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zooparallel-2026.2.2-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zooparallel-2026.2.2-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c7dd9561c3823509956e46aa603f79260a1fc21c3512c7bfeb6b46eb65c3211d
MD5 9b678b8f65934435907e77261c1a2f58
BLAKE2b-256 1d559606deecf0556a4ad454b70ca1a1083a5bae5f19a2d5694fe599bc2754fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for zooparallel-2026.2.2-cp312-cp312-manylinux_2_28_aarch64.whl:

Publisher: release.yml on albertobadia/zooparallel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zooparallel-2026.2.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zooparallel-2026.2.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5a4e60f2e6931d4c4bf51d63288303177d1612bf430f18d9bc9ea5a506e4f686
MD5 21b98a0f8b00189f5cc14ec3e257d3f6
BLAKE2b-256 e7977686c543eb5d87862ecc954bb2fc05c78c83579940e942cd33ba357c4f2d

See more details on using hashes here.

Provenance

The following attestation bundles were made for zooparallel-2026.2.2-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on albertobadia/zooparallel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zooparallel-2026.2.2-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for zooparallel-2026.2.2-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f2395980366168b651d559e4d3f57596710e41c1678c94269ad4839667489523
MD5 697acd53a9d738385ab90b535e584cc6
BLAKE2b-256 cefe9823e561cafd0f52503fcbda22f23e20302e3de6cdebaaafffc0e4940d86

See more details on using hashes here.

Provenance

The following attestation bundles were made for zooparallel-2026.2.2-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: release.yml on albertobadia/zooparallel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zooparallel-2026.2.2-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zooparallel-2026.2.2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7049d885ea64f23bc33d49adcb97284b88f555ca05ff17c28979f0654c6f8cff
MD5 321b9cb5e74cbdc29e487ebae84b8eef
BLAKE2b-256 5d315bedeedf799c2b7aa893792648dfb09971a844c3ce6dafbe660d6748ea2b

See more details on using hashes here.

Provenance

The following attestation bundles were made for zooparallel-2026.2.2-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: release.yml on albertobadia/zooparallel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zooparallel-2026.2.2-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zooparallel-2026.2.2-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 853f0f5d9ee36272b6d44935f11232a33a2a146b3a254b1f0801d51d3689226d
MD5 48071adff08f33fa975f0c39f4ac7804
BLAKE2b-256 f2ca4c1fd8f2000266babb711b2a58cac7435e9858ea1250173f1299e41fc2ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for zooparallel-2026.2.2-cp311-cp311-manylinux_2_28_aarch64.whl:

Publisher: release.yml on albertobadia/zooparallel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zooparallel-2026.2.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zooparallel-2026.2.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 37ece87233c270c2d06bb7c1f18d0de5b1815f10972f0f8ce39fe8cf76c594ef
MD5 6fb2803ce9654f54ee5c31c86ab47fe4
BLAKE2b-256 9551309089b3b5c8ad9613e35caee98355043a99fc57cff7c82404c60f051c61

See more details on using hashes here.

Provenance

The following attestation bundles were made for zooparallel-2026.2.2-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on albertobadia/zooparallel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zooparallel-2026.2.2-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for zooparallel-2026.2.2-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 bbb891f6201a654d897448d366ad8318c48a4a23e98c610d412d57acefbb25db
MD5 bdd001c035acc9348aa62a1ff9f63732
BLAKE2b-256 7600accd4f742565dc620bf50afe013ebaebd9f0e18207f6d15f01c5aca32dd7

See more details on using hashes here.

Provenance

The following attestation bundles were made for zooparallel-2026.2.2-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: release.yml on albertobadia/zooparallel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zooparallel-2026.2.2-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zooparallel-2026.2.2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fd6fa8a6ae9a0f85910b21f0fb1ae666c89bfb281add5f16b8b4a4ee627bd488
MD5 785e9238c74cb6b2f08e6674d324641d
BLAKE2b-256 4c66fab60c4fb3a43cbc02c9c6ff76f99df6cc3024435fda17d460acbc9ef4c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for zooparallel-2026.2.2-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: release.yml on albertobadia/zooparallel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zooparallel-2026.2.2-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zooparallel-2026.2.2-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 752d17ccb0855818a4d94ed057dd0fcb6b16249056c2f1ec390d852d8978e67e
MD5 6c5db74b3724263804e556d24c95a815
BLAKE2b-256 e33011b14778bff761a2dca79b3ea282a5b5e5e1cce88a94381d9918116fec1a

See more details on using hashes here.

Provenance

The following attestation bundles were made for zooparallel-2026.2.2-cp310-cp310-manylinux_2_28_aarch64.whl:

Publisher: release.yml on albertobadia/zooparallel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zooparallel-2026.2.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zooparallel-2026.2.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 599848735518441d253793bc24fa33f5a302b7fc32aa11da85d1bfa5be72c3ba
MD5 dccf92704145479d7312961a4df8031b
BLAKE2b-256 1a4749a2432a8a2301cf98555d770c08fd8ce5f79ff375bd77ec7bb542dcc1b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for zooparallel-2026.2.2-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on albertobadia/zooparallel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zooparallel-2026.2.2-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for zooparallel-2026.2.2-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c836470ddda3f956b4a04434b62c2633a5e1ecf2a0e05b5d8459c9f247739052
MD5 fc3642c13fd00d285081f88a06b2e8e3
BLAKE2b-256 723f5c7073cba5aa0bd649cb0c01980e8d8fd74885685f9bcbbd42d723a15d4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for zooparallel-2026.2.2-cp310-cp310-macosx_10_12_x86_64.whl:

Publisher: release.yml on albertobadia/zooparallel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page