Pekel is a protocol for encoding simple objects like strings, integers, and tuples in an efficient binary format. The protocol is similar to Python's pickle. Pekel has the following design goals:
1. Consistency: If you encode an object, you should get the same
serialized string out, regardless of what language and language version
you are using.
2. Portability: Pekel should work reliably and consistently across all
supported languages and language versions.
3. Efficiency: It should be fast to serialize and deserialize data, and
serialized data should be space-efficient.
Pekel is the Dutch word for "pickle", evoking the protocol's similarity to the Python pickle format.
The Python interface is similar to that of the pickle module and exposes
dumps
, dump
, loads
, and load
functions.
The following data types are supported:
1. Binary strings
2. Text strings
3. Arbitrary-sized, signed integers
4. Booleans
5. None/NULL
6. Heterogeneous tuples of any other types
7. Homogeneous lists of any other types
Other data types, including sets, dictionaries, and floats, may be added later.
Pekel is mostly a subset of pickle protocol 2.
Run python3.6 -m tox
in a checkout of this repo.