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 be secure against erroneously or
maliciously constructed data. It is left to the user to decide whether the data
they unpickle is from a trustworthy source.
dill is part of pathos, a Python framework for heterogeneous computing.