multiprocess
better multiprocessing and multithreading in Python
Decision gist · record as of 2026-08-14
Yes. Multiprocess is actively maintained, has no known vulnerabilities, low install friction, and a permissive license. Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects. If standard multiprocessing works for your use case, there is no need to add a dependency.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python >=3.9 and dill >=0.4.1.
- On Python 2 (if using an older version), a C compiler was needed; Python 3 binary installs do not require compilation.
- Low friction—pure Python wheels available for Python 3.9 through 3.14.
License · maintenance · safety
BSD-3-Clause (permissive) — BSD-3-Clause permissive license means you can use, modify, and distribute the package freely in both open-source and proprietary projects with minimal restrictions.
last release 2026-01-19 (207 days) · last repo commit 2026-08-09 · 701 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 202,659,401 downloads/mo, #202 on PyPI
Alternatives
Verify before relying
from multiprocess import Process, Queue
def worker(q):
q.put('hello')
if __name__ == '__main__':
q = Queue()
p = Process(target=worker, args=[q])
p.start()
print(q.get())
p.join()- Whether dill's serialization overhead is acceptable for your workload compared to standard multiprocessing
- Performance characteristics when handling very large or deeply nested object graphs
- Compatibility with specific multiprocessing backends (spawn, fork, forkserver) on different platforms
What it is and what it does
Multiprocess is a drop-in enhancement of Python's standard multiprocessing library that replaces the default pickle serializer with dill, enabling you to pass lambdas, nested functions, and other complex objects between processes. It provides the same API as multiprocessing—Process, Queue, Pool, Manager, and synchronization primitives like locks and conditions—but with broader object support thanks to dill's more permissive serialization.
The package is part of the pathos framework for heterogeneous computing and is actively maintained. It supports modern Python versions (3.9 through 3.14) and works with both CPython and PyPy. Use it when you need to parallelize work across multiple processes but find that standard multiprocessing's pickle-based serialization is too restrictive for your object types.
Use it for
- Parallelize CPU-bound tasks using a Pool when you need to pass lambda functions or closures to worker processes
- Share complex Python objects (nested functions, custom classes) between processes without manual serialization workarounds
- Build a task queue system where workers receive and execute dynamically defined functions
- Offload long-running computations to a process pool while maintaining the familiar threading.Thread-like API
- Implement inter-process communication for scientific computing workflows that need to exchange non-trivial Python objects
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Multiprocess is actively maintained, has no known vulnerabilities, low install friction, and a permissive license. Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects. If standard multiprocessing works for your use case, there is no need to add a dependency.
Install
multiprocess on PyPI
Before you install
Low friction—pure Python wheels available for Python 3.9 through 3.14. Single runtime dependency on dill. Actively maintained with a recent commit on 2026-08-09.
Requires Python >=3.9 and dill >=0.4.1. On Python 2 (if using an older version), a C compiler was needed; Python 3 binary installs do not require compilation.
License in practice
BSD-3-Clause permissive license means you can use, modify, and distribute the package freely in both open-source and proprietary projects with minimal restrictions.
Quickstart
from multiprocess import Process, Queue
def worker(q):
q.put('hello')
if __name__ == '__main__':
q = Queue()
p = Process(target=worker, args=[q])
p.start()
print(q.get())
p.join()
Verify before relying
- Whether dill's serialization overhead is acceptable for your workload compared to standard multiprocessing
- Performance characteristics when handling very large or deeply nested object graphs
- Compatibility with specific multiprocessing backends (spawn, fork, forkserver) on different platforms
Package facts
| License | BSD-3-Clause permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagedill |
| Maintenance | Actively maintained 207 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 202,659,401 / month, #202 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: Science/ResearchLicense :: OSI Approved :: BSD LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Scientific/EngineeringTopic :: Software Development |
Evidence: multiprocess-0.70.19-py310-none-any.whl; multiprocess-0.70.19-py311-none-any.whl; multiprocess-0.70.19-py312-none-any.whl; multiprocess-0.70.19-py313-none-any.whl; multiprocess-0.70.19-py314-none-any.whl; multiprocess-0.70.19-py39-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “multiprocessing with better serialization”
- multiprocessMultiprocess is an enhanced fork of Python's standard multiprocessing…
- tblibSerializes exceptions and tracebacks to pickle format or plain dicts,…
- billiardbilliard is a fork of Python's multiprocessing module with bug fixes…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also billiard · mpire · ppft · pypeln · dill · multiprocessing-logging · pyfunceble-process-manager · execnet · aiomultiprocess · loky