Python Library/Framework for writing P2P applications

Manuel Ceron picture Manuel Ceron · Jun 8, 2009 · Viewed 18.8k times · Source

Is there any library or framework for writing P2P applications in Python ?

I know the initial Bittorrent client was written in Python. I'm looking something like JXTA but for Python.

Answer

Vitorio picture Vitorio · Jun 8, 2009

Twisted is pretty much the answer to anything seriously network-related in Python, but you really have to buy into the Twisted way of doing things. It's not intrinsically a P2P stack, it's an event loop, callback system and networking framework.

Divmod Vertex is not currently being maintained, and was still pretty rough when I tried using it a few years ago.

CSpace might be the closest to what you're looking for: "a platform for secure, decentralized, user-to-user communication over the internet." It abstracts the P2P and NAT traversal out so your app can act normally and not be "a P2P app."

Similarly, there was an old P2P system out of Australia called "The Circle" a few years ago, written entirely in Python, which had secure P2P messaging, chat, file sharing and other features. 0.41c was the last version: http://savannah.nongnu.org/projects/circle/

Also from my bookmarks:

http://entangled.sourceforge.net/ is Entangled, "a distributed hash table (DHT) based on Kademlia, as well as a peer-to-peer tuple space implementation."

http://khashmir.sourceforge.net/ is a Python distributed hash table, notable because it networks using the Airhook protocol, which is very fault-tolerant (designed for use e.g. over cellular networks).

http://kenosis.sourceforge.net/ is a Python P2P RPC system.