---
layout: post
title: Datpy, the punk-to-punk protocol in Python
description: A new Python implementation of the Dat protocol is cooking at Autonomic
image: 2020-04-23-dat-protocol.png
category: technology, peer-to-peer, dat-protocol
date: 2020-04-23
---

# 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](https://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].

[scuttlebutt]: https://scuttlebutt.nz/
[cabal]: https://cabal.chat/
[mapeo]: https://www.digital-democracy.org/mapeo/
[beaker browser]: https://beakerbrowser.com/
[dat protocol]: https://dat.foundation/
[dat foundation]: https://dat.foundation/about/foundation/
[philosophy of modularity]: https://mafinto.sh/blog/pragmatic-modularity.html
[dat rust]: https://github.com/datrs/
[c++ dat]: https://datcxx.github.io/
[datpy]: https://datpy.decentral1.se/
[git.autonomic.zone/datpy]: https://git.autonomic.zone/datpy/
