13

是否有任何用于在 Python 中编写 P2P 应用程序的库或框架?

我知道最初的 Bittorrent 客户端是用 Python 编写的。我正在寻找类似于JXTA的东西,但适用于 Python。

4

7 回答 7

19

Twisted 几乎是 Python 中任何与网络相关的问题的答案,但你真的必须接受 Twisted 的做事方式。它本质上不是一个 P2P 堆栈,它是一个事件循环、回调系统和网络框架。

Divmod Vertex 目前没有得到维护,几年前我尝试使用它时仍然很粗糙。

CSpace可能与您正在寻找的最接近:“一个通过互联网进行安全、去中心化、用户对用户通信的平台。” 它将 P2P 和 NAT 遍历抽象出来,因此您的应用程序可以正常运行,而不是“P2P 应用程序”。

同样,几年前在澳大利亚有一个名为“The Circle”的旧 P2P 系统,完全用 Python 编写,具有安全的 P2P 消息传递、聊天、文件共享和其他功能。0.41c 是最后一个版本: http ://savannah.nongnu.org/projects/circle/

同样来自我的书签:

http://entangled.sourceforge.net/是 Entangled,“基于 Kademlia 的分布式哈希表 (DHT),以及对等元组空间的实现”。

http://khashmir.sourceforge.net/是一个 Python 分布式哈希表,值得注意的是它使用 Airhook 协议进行联网,该协议非常容错(设计用于例如蜂窝网络)。

http://kenosis.sourceforge.net/是一个 Python P2P RPC 系统。

于 2009-06-08T04:37:13.217 回答
4

当然,我能想到的最佳选择是使用twisted

旧版本的 BitTorrent就是用它构建的。该链接指向使用扭曲的最后一个已知版本。您可以将其作为起点进行研究。

还有顶点。它是一个使用 twisted 并允许 p2p 绕过防火墙的库。

于 2009-06-08T04:01:08.120 回答
3

自从提出这个问题并随后得到了回答,ZeroMQ就出现了,我真的很喜欢它。Python 模块称为 pyzmq。它使构建 TCP 套接字的过程变得不那么笨重,尤其是在处理请求>响应以外的消息模式时,尽管它也这样做。它非常适合基本服务器、p2p 应用程序、消息传递、分布式处理,应有尽有。

于 2014-09-30T22:03:29.943 回答
2

我不知道这样的事情是否存在,但我可以提供以下替代方案:

于 2009-06-08T03:19:05.737 回答
0

我引用了日期为 2002 年 12 月的 Sun JXTA 页面

“JXTA 项目有一个 Java 参考实现,可从 download.jxta.org 获得,目前正在努力添加其他常用语言的参考实现,包括 C、Objective C、Perl、Ruby 和 Python。虽然 Java 实现是最完整的在 JXTA 协议的实现中,C 实现(适用于 Win32 和 Linux)正在快速接近相同的完整性水平。”

于 2009-06-08T03:21:17.433 回答
0

您好(来自 JXTA for Java 2.6 和 2.7 最后两个版本的负责人),

Python 中没有已知的 JXTA 实现。

如果有人想解决这个问题,首先应该了解 JXTA 2.0 协议。可在 Scribd 在线阅读的实用 JXTA II 书籍应该有助于理解该技术。

欢呼!

于 2011-02-10T03:50:27.743 回答
-3

Stackless Python可能会引起您的兴趣。

于 2009-06-08T03:30:49.927 回答