TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: Can you recommend a modern, accessible P2P framework/library?

78 点作者 rayvy超过 6 年前
I&#x27;m interested in building p2p applications.<p>I&#x27;ve checked into IPFS, GNUnet, Freenet, libp2p, and a few more.<p>My main tools are Rust and Python.<p>I haven&#x27;t found anything (I could be reading things wrong of course) that I can directly build GUI applications on top of, with great documentation, and minimal head banging.<p>Does anyone have experience building p2p apps? Can you recommend&#x2F;suggest a route to take?<p>Definitely don&#x27;t want to have to implement my own thing.<p>Thanks

21 条评论

rklaehn超过 6 年前
Not sure what exactly you are looking for, but I find IPFS &#x2F; libp2p pretty easy to use once you know the basic concepts.<p>For a simple web based GUI app you can use the js version of IPFS or interact with a locally running go-IPFS node using a pretty simple REST api.<p>Once you got your feet wet, or if you have a more demanding use case, you can use libp2p directly, from js, go or rust.<p>Since you mentioned rust: <a href="https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;rust-libp2p" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;rust-libp2p</a><p>libp2p could be described as an attempt to implement a common networking stack for the distributed web. IPFS builds on libp2p, as does filecoin.<p>I work for a company <a href="https:&#x2F;&#x2F;www.actyx.io&#x2F;en" rel="nofollow">https:&#x2F;&#x2F;www.actyx.io&#x2F;en</a> that does industrial applications based on IPFS &#x2F; libp2p, so I use IPFS every day. Obviously it is bleeding edge technology with a lot of rough edges. But I find the current state and the rate of improvement quite promising.
评论 #18518168 未加载
rolleiflex超过 6 年前
When I was building Aether [1] I had to build mine from scratch in Go. It all depends on your needs.<p>Generally speaking, P2P is not a concept that you can abstract into a library. you have to make your app very deeply integrate with it, because it will present you challenges, limitations (and opportunities) that you have to respond to. There is no such thing as taking a regular app and porting it to P2P.<p>[1] <a href="https:&#x2F;&#x2F;getaether.net" rel="nofollow">https:&#x2F;&#x2F;getaether.net</a>
评论 #18516902 未加载
notrhodey超过 6 年前
There is definitely plenty of things to play around with an experiment in the Dat ecosystem, however their Rust platform is still early stages.<p><a href="http:&#x2F;&#x2F;datproject.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;datproject.org&#x2F;</a> <a href="https:&#x2F;&#x2F;github.com&#x2F;datrs" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;datrs</a><p>I&#x27;m working on a P2P app built atop Dat right now myself, archiving of police radio using software-defined radio and Dat Hypercores. Maybe the codebase can give you some ideas &#x2F; inspiration, this is developer-preview level for sure:<p><a href="https:&#x2F;&#x2F;radiowitness.hashbase.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;radiowitness.hashbase.io&#x2F;</a>
joefourier超过 6 年前
If you want real-time data-transmission (for chat, audio or video), what about WebRTC? It&#x27;s primarily intended to be used in browsers, but there&#x27;s nothing theoretically preventing you from just using a Python library (e.g. <a href="https:&#x2F;&#x2F;github.com&#x2F;jlaine&#x2F;aiortc" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jlaine&#x2F;aiortc</a> ) that implements the protocols if you wanted.
评论 #18514960 未加载
评论 #18530801 未加载
nielsbjerg超过 6 年前
This guy mad a lot of easy to use libraries <a href="https:&#x2F;&#x2F;github.com&#x2F;mafintosh" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;mafintosh</a> in nodejs, so don&#x27;t know if they are useful to you
评论 #18513143 未加载
Strom超过 6 年前
Peer-to-peer is such a wide term that can mean pretty much anything, e.g. micro loans of money to people in need. It can be viewed just as a way of doing things. So in that sense, all you need is a socket connection to get going.<p>What are you looking to build more specifically? News sharing? Video chat? File sharing?<p>If you&#x27;re looking for file sharing, then a decent solution might be to use BitTorrent via the libtorrent library. <a href="https:&#x2F;&#x2F;www.libtorrent.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.libtorrent.org&#x2F;</a>
评论 #18512744 未加载
jwhitlark超过 6 年前
P2P isn&#x27;t a single thing. But if you know more about what you want to do, you can usually find libraries to do it with.<p>I recommend Indy&#x27;s courses for getting the map of the territory: <a href="https:&#x2F;&#x2F;www.coursera.org&#x2F;instructor&#x2F;indygupta" rel="nofollow">https:&#x2F;&#x2F;www.coursera.org&#x2F;instructor&#x2F;indygupta</a>
评论 #18512933 未加载
usgroup超过 6 年前
If you’re not familiar with the principals of p2p generally and the kind of problems you get into I’d start with building a simple DHT based solution using something like the Chord protocol:<p><a href="https:&#x2F;&#x2F;en.m.wikipedia.org&#x2F;wiki&#x2F;Chord_(peer-to-peer)" rel="nofollow">https:&#x2F;&#x2F;en.m.wikipedia.org&#x2F;wiki&#x2F;Chord_(peer-to-peer)</a><p>This will teach you all about adhoc networking, routing, the limitations of different architectures and so on. You could also tackle a real use case like distributed key value storage as a learning device.<p>What you’ll need ultimately will strongly depend on what you intend to build with it.
nikhilsaraf9超过 6 年前
I recently learned about Holochain which is a P2P framework for building scalable distributed apps. You may find it useful: <a href="https:&#x2F;&#x2F;holochain.org" rel="nofollow">https:&#x2F;&#x2F;holochain.org</a>
zxcmx超过 6 年前
Left-field option; embed zerotier SDK. They do a better job selling it than I could: <a href="https:&#x2F;&#x2F;www.zerotier.com&#x2F;blog&#x2F;zerotier-sdk.shtml" rel="nofollow">https:&#x2F;&#x2F;www.zerotier.com&#x2F;blog&#x2F;zerotier-sdk.shtml</a><p>Probably some head-banging required to get it to link&#x2F;load&#x2F;run (I see there&#x27;s an open ticket for Python). Would likely need to do a little bit of c&#x2F;c++ to get that working properly. Benefit is, you would then never need to touch the p2p layer again and you could just be doing web development if that&#x27;s your thing.
mempko超过 6 年前
I built one called Firestr. Check <a href="http:&#x2F;&#x2F;firestr.com" rel="nofollow">http:&#x2F;&#x2F;firestr.com</a><p>I didn&#x27;t use a framework and built it from scratch. Maybe there is some code there that can help you understand how this stuff works.<p>The whole app is an environment to make p2p apps in Lua with a built in editor. Not sure there is anything easier than firestr to build p2p apps. Check out the Lua code for some examples here <a href="https:&#x2F;&#x2F;github.com&#x2F;mempko&#x2F;firestr&#x2F;tree&#x2F;master&#x2F;example_apps" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;mempko&#x2F;firestr&#x2F;tree&#x2F;master&#x2F;example_apps</a>
max_超过 6 年前
Hi there Ethereum has a suit of P2P platform like Swarm (<a href="https:&#x2F;&#x2F;medium.com&#x2F;coinmonks&#x2F;setting-up-a-multi-node-private-ethereum-swarm-network-without-a-blockchain-e3fd55873887" rel="nofollow">https:&#x2F;&#x2F;medium.com&#x2F;coinmonks&#x2F;setting-up-a-multi-node-private...</a>) , an alternative to IPFS &amp; Wisper for messaging they call Web3<p>As a rust dev I would recommend Rust-Web3<p><a href="https:&#x2F;&#x2F;github.com&#x2F;tomusdrw&#x2F;rust-web3" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;tomusdrw&#x2F;rust-web3</a>
morphle超过 6 年前
I would suggest <a href="https:&#x2F;&#x2F;www.tribler.org&#x2F;IPv8&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.tribler.org&#x2F;IPv8&#x2F;</a> has most features you need.
really3452超过 6 年前
If you are interested in building p2p applications on top of block chains checkout <a href="http:&#x2F;&#x2F;github.com&#x2F;geo-gs&#x2F;sawwit" rel="nofollow">http:&#x2F;&#x2F;github.com&#x2F;geo-gs&#x2F;sawwit</a><p>*Disclaimer: Sawwit is one of my hobby projects
sprucely超过 6 年前
Several have been mentioned already, but I&#x27;ll add one more rust library to the mix: <a href="https:&#x2F;&#x2F;github.com&#x2F;maidsafe&#x2F;crust" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;maidsafe&#x2F;crust</a>
评论 #18514694 未加载
j88439h84超过 6 年前
Not quite finished, but by glyph <a href="https:&#x2F;&#x2F;github.com&#x2F;twisted&#x2F;vertex" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;twisted&#x2F;vertex</a>
rotund_ursine超过 6 年前
DAT and IPFS
villgax超过 6 年前
Checkout WebRTC!
kc1116超过 6 年前
Check out ZeroMQ
kc1116超过 6 年前
0MQ
gammateam超过 6 年前
Orbit-Db for IPFS<p>Its just Node.js<p>You won&#x27;t be bottlenecked by the language if you are using P2P services. If you want threads, spin up another compute instance, and your provider will do that for you.