是否有任何用于在 Python 中编写 P2P 应用程序的库或框架?
我知道最初的 Bittorrent 客户端是用 Python 编写的。我正在寻找类似于JXTA的东西,但适用于 Python。
是否有任何用于在 Python 中编写 P2P 应用程序的库或框架?
我知道最初的 Bittorrent 客户端是用 Python 编写的。我正在寻找类似于JXTA的东西,但适用于 Python。
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 系统。
当然,我能想到的最佳选择是使用twisted。
旧版本的 BitTorrent就是用它构建的。该链接指向使用扭曲的最后一个已知版本。您可以将其作为起点进行研究。
还有顶点。它是一个使用 twisted 并允许 p2p 绕过防火墙的库。
自从提出这个问题并随后得到了回答,ZeroMQ就出现了,我真的很喜欢它。Python 模块称为 pyzmq。它使构建 TCP 套接字的过程变得不那么笨重,尤其是在处理请求>响应以外的消息模式时,尽管它也这样做。它非常适合基本服务器、p2p 应用程序、消息传递、分布式处理,应有尽有。
我不知道这样的事情是否存在,但我可以提供以下替代方案:
我引用了日期为 2002 年 12 月的 Sun JXTA 页面,
“JXTA 项目有一个 Java 参考实现,可从 download.jxta.org 获得,目前正在努力添加其他常用语言的参考实现,包括 C、Objective C、Perl、Ruby 和 Python。虽然 Java 实现是最完整的在 JXTA 协议的实现中,C 实现(适用于 Win32 和 Linux)正在快速接近相同的完整性水平。”
您好(来自 JXTA for Java 2.6 和 2.7 最后两个版本的负责人),
Python 中没有已知的 JXTA 实现。
如果有人想解决这个问题,首先应该了解 JXTA 2.0 协议。可在 Scribd 在线阅读的实用 JXTA II 书籍应该有助于理解该技术。
欢呼!
Stackless Python可能会引起您的兴趣。