JelleZijlstra / pekel

A portable serialization protocol

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

# pekel

## About

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](https://docs.python.org/3/library/pickle.html). 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.

## Name

Pekel is the Dutch word for "pickle", evoking the protocol's similarity to the
Python pickle format.

## Interface

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.

## Protocol details

Pekel is mostly a subset of pickle protocol 2.

## Testing

Run ``python3.6 -m tox`` in a checkout of this repo.

About

A portable serialization protocol


Languages

Language:Python 100.0%