Autonomic

Datpy, the punk-to-punk protocol in Python

A new Python implementation of the Dat protocol is cooking at Autonomic

April 23, 2020

Datpy, the punk-to-punk protocol in Python

We’re quite excited by the new wave of community-developed peer-to-peer technology. Scuttlebutt, Cabal, Mapeo and Beaker browser are inspiring examples of software which show that technology can be built to operate without running on centralised commercially-owned infrastructure (e.g. WhatsApp).

One of the underlying innovations for technologies such as Cabal is the Dat protocol, which is a way of describing how two computers can send information to each other directly. The protocol is supported by the Dat Foundation and developed as a community-based standard.

Today, the reference implementation for the Dat protocol is written in Javascript. The Javascript ecosystem has proved to be remarkably flexible for advancing this next generation of tools. Simple methods of publishing (npm publish), well-established distribution channels (the browser) and a philosophy of modularity have enabled so many to get started with building peer-to-peer technology.

However, there is a great need for other languages and ecosystems to benefit from the tools and concepts that are being developed based on the reference implementation. People from all walks of life need a working implementation in their preferred language of choice. In response to this, we are seeing projects like Dat Rust and C++ Dat emerge.

Alongside these efforts, a member of Autonomic has begun to work on Datpy, a Python-based implementation of the Dat protocol. The project proposes a roadmap but offers no deadlines and receives no funding at current status. However slowly, things are moving along. Further progress updates will be posted on this blog as they come in.

You can find out more information on datpy.decentral1.se and please feel more than welcome to join in and participate in the project if you have the time and energy for it.

All development is taking place on git.autonomic.zone/datpy.