We are trying to make peer-to-peer networking easy. Right now there are very few libraries which allow multiple languages to use the same distributed network.

We’re aiming to fix that by providing several network models, which you can use simply by creating an object. These objects will have the simplest API possible to do the job, as well as some features under the hood which you can hook into.

Serialization is the most important part for working with other languages. While there are several such schemes which work in most places, we made the decision to avoid these in general. We wanted something very lightweight, which could handle binary data, and operated as quickly as possible. This meant that “universal” serializers like JSON were out the window.

You can see more information about our serialization scheme in the protocol documentation . We currently have a working parser in Python, Java, Javascript, C++, and Golang.

This is an extension of the above network. It inherits all of the message sending properties, while also syncronizing a local dictionary-like object.

The only limitation is that it can only have string-like keys and values. There is also an optional “leasing” system, which is enabled by default. This means that a user can own a particular key for a period of time.

Currently there is an implementation in Python and Javascript. More tractable documentation can be found in their tutorial sections. Protocol specifications are in progress.

The idea is that you can use this as a dictionary-like object. The only caveat is that all keys and values must be strings. It uses five separate hash tables for hash collision avoidance and data backup in case a node unexpectedly exits.

Currently there is only an implementation in Python and it is highly experimental. This section will be updated when it’s ready for more general use.