dill
serialize all of Python
Install
dill on PyPI
pip
pip install dilluv
uv add dillpoetry
poetry add dillPackage facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 206 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: dill-0.4.1-py3-none-any.whl
About dill
from the package's own PyPI description — quoted content, verbatim
dill: serialize all of Python
About Dill
dill extends Python's pickle module for serializing and de-serializing
Python objects to the majority of the built-in Python types. Serialization
is the process of converting an object to a byte stream, and the inverse
of which is converting a byte stream back to a Python object hierarchy.
dill provides the user the same interface as the pickle module, and
also includes some additional features. In addition to pickling Python
objects, dill provides the ability to save the state of an interpreter
session in a single command. Hence, it would be feasible to save an
interpreter session, close the interpreter, ship the pickled file to
another computer, open a new interpreter, unpickle the session and
thus continue from the 'saved' state of the original interpreter
session.
dill can be used to store Python objects to a file, but the primary
usage is to send Python objects across the network as a byte stream.
dill is quite flexible, and allows arbitrary user defined classes
and functions to be serialized. Thus dill is not intended to...
Read as markdown · JSON record · Source repository · Homepage · Docs
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
dill extends Python's pickle module to serialize and deserialize a broader range of Python objects, including functions, lambdas, classes, and interpreter sessions, enabling object persistence and network transmission.
Low friction: pure Python wheel with no runtime dependencies. Active maintenance (206 days since last release, last commit 2026-07-17) and broad Python support (3.9–3.14, CPython and PyPy).
BSD-3-Clause (permissive): you may use, modify, and distribute dill freely in commercial and private projects, provided you retain the license notice.
Usage
pip install dill
from dill import dumps, loads
squared = lambda x: x**2
result = loads(dumps(squared))(3) # returns 9
Requires Python >=3.9
Verdict: dill is a mature, actively maintained serialization library with no known vulnerabilities, zero runtime dependencies, and permissive licensing. It is well-suited for projects needing to pickle functions, lambdas, and complex Python objects beyond pickle's standard scope.
Needs verification
- Whether the optional diagnostic extras (objgraph, gprof2dot, pyreadline) are commonly needed in practice
- Performance characteristics compared to pickle for large or deeply nested object graphs
Similar packages
permissive · top 1,000 on PyPI
multiprocesspermissive · top 1,000 on PyPI
tblibpermissive · top 1,000 on PyPI
partdpermissive · top 1,000 on PyPI
shapelypermissive · top 1,000 on PyPI
Flask-Loginpermissive · top 1,000 on PyPI
sphinxcontrib-serializinghtmlpermissive · top 1,000 on PyPI
aws-requests-authpermissive · top 1,000 on PyPI
orjsoncopyleft · top 1,000 on PyPI
simplejsonpermissive · top 1,000 on PyPI