This is fantastic! Really nice work :)<p>The nice thing about WebRTC is this works (pretty much) everywhere! Someone could throw up Python/Android/iOS/Go/Web/C++ Clients really easily. That is really exciting.<p>Also just a HUGE fan of NAT Traversal/P2P in general. The less dependence we can have on others for sharing our data the better.
What makes this really interesting to me is that it uses a golang implementation of WebRTC on the server side. When I was playing with multiplayer networking in the browser ~1.5yr ago, there really didn't seem to be a lot of options for WebRTC servers. Great to see some progress here.<p>Also, it sounds like it's using streaming rather than loading the entire file, which would give it an advantage over <a href="https://file.pizza" rel="nofollow">https://file.pizza</a>, which is what I usually recommend for p2p transfers.<p>If you like these types of tools, but don't require p2p (or can't use it because of NAT), I'll also plug my own <a href="https://patchbay.pub" rel="nofollow">https://patchbay.pub</a>, which will let you do streamed transfers with nothing but curl.
It's 2020, and people are elated to discover that it is possible to transfer a file directly between two systems on the Internet.<p>True story: I was giving a guest lecture on network virtualization at UCI and demoing ZeroTier. One student came up afterwords and asked me how traffic could flow between systems without "a cloud." Evidently the idea that data could just go directly from point A to point B was utterly, completely foreign to the point that they weren't aware that the Internet could be used this way.
WebRTC is problematic if you're using a VPN service, with the VPN client running on the local machine. Quoting BrowserLeaks:[0]<p>> IP address detection using JavaScript. Starting work on WebRTC API, the web browser communicates with the STUN server and shares information about local and public IP addresses even if you are behind NAT and use a VPN or Proxy. This tool will show if your real public IP is leaking out.<p>However, if you run the VPN client on the router, there's no problem, because the local machine has no public IP address, just LAN and VPN interface addresses.<p>0) <a href="https://browserleaks.com/" rel="nofollow">https://browserleaks.com/</a>
i like the approach of encrypting locally, uploading to the cloud and sending the decryption key via a link.<p>that's the way firefox send does it<p><a href="https://send.firefox.com" rel="nofollow">https://send.firefox.com</a><p>it's open source so you could run an instance of it if you wanted to.
Interesting note that this guy's choice of PAKE, Cpace, was chosen about a week ago by the CFRG for use in IETF protocols. Cpace is new, but that's a big vote of confidence for it.
Nice, I made one of these a few years ago <a href="http://passfiles.com" rel="nofollow">http://passfiles.com</a><p>Yours is a bit more polished than mine though.
I didn't use QR codes either just good old fashioned urls.
I'm not as familiar with WebRTCPeerConnection as I'd like to be. Does it use the STUN server to get it's real IP and after that we can establish a completely peer to peer connection and now the webserver has no interaction with WebRTCPeer stream?<p>If any of that is wrong, please enlighten me, I didn't realize peer to peer connections could be as simple as this.
Neat, looks like a different backend and frontend implementation of the very similiar magic-wormhole[0]<p>Now I wonder if anyone has made a web frontend of the original.<p>[0] <a href="https://github.com/warner/magic-wormhole" rel="nofollow">https://github.com/warner/magic-wormhole</a>
> <i>...it uses WebRTC to make the direct peer connections. This allows us to make use of WebRTC's NAT traversal tricks, as well as the fact that it can be used in browsers.</i><p>But I'm assuming it can't break through all NAT routers, right? A good portion of people still won't be able to use this?<p>A service usable by everyone would require STUN and TURN servers to be set up, no?<p>Or has WebRTC made advances I'm unaware of?
I'm curious how this compares with the DAT project <a href="https://docs.dat.foundation/docs/intro" rel="nofollow">https://docs.dat.foundation/docs/intro</a> I've had issues using that with networks throwing NAT errors, but need a secure P2P file solution for large data transfers. Wondering if this wil do the trick.
Anyone else get something like this? <a href="https://github.com/saljam/webwormhole/issues/27" rel="nofollow">https://github.com/saljam/webwormhole/issues/27</a> I was running `ww send ~/Downloads/myfile.bin` and my friend went to recv it from browser.
This makes me ridiculously happy. Magic wormhole is one of those tools that works so well that you want to use it even when you don't need to. So happy to see something like this so I don't have to install wormhole on my wife or my son's computers to send them stuff.
It is annoying that it removes the ID from the URL. It would be nice to bookmark my own code and I can just open it on multiple devices whenever I want to transfer a file. However I need to do a bit of gymnastics with the QR code to grab the URL.
This is nice and all but is it possible to make a few kilobytes single-file static HTML instead of 2.7MB <a href="https://webwormhole.io/util.wasm" rel="nofollow">https://webwormhole.io/util.wasm</a> ?<p>I want to host it on my router.
I've just used it. It's absolutely fantastic. Saved me from sending a 500MB file through a sharing service or having to create S3 temporary buckets or whatever other complicated method. Simple, works, perfect. Thank you!