This is a project that spun from my frustrations of using LocalSend and DashBeam to transfer stuff between devices, and with the extra goal of being fast, trying out the Slint framework and, most importantly, establishing a communication channel with trusted external people that can be left always on.
I wish someone would revisit the idea of a single, global, P2P file search mesh like Gnutella/Gnutella2 but using a modern P2P stack (or WebRTC) instead of raw TCP/UDP like the old days.
Interesting project, towards a decentralized Internet!
The heavy lifting is done in this function, pairing. You link your personal devices together, solid idea [0].
This Flipflop project relies on the Iroh library for NAT/Firewall puncturing, external address discovery and overlay networking. Connecting two 5G devices, without a coordinating central server is possible, but very hard. Iroh simply relies on a server which you could self-host. Cool stuff, we stress tested it a while ago and it somewhat worked.
NAT connectivity is unsolved. My university lab conducted one of the bigger puncturing studies a decade ago [1]. Recently, we also bought 40+ or something 4G and 5G SIM cards in Europe for puncturing [2]. My master student traveled Europe by bus to get these local SIM cards. He worked day-and-night to connect these weird symmetric 5G NAT filter boxes and got it working. Simple sync collision and birthday paradox brute force... It all works sometimes, but insufficiently reliable for mass-adoption. You can't build a decentralized social media ecosystem on top. Like Iroh, best to use a central server. So then you have legal liability for your users. Unless an AI agent buys the server fully autonomously using Bitcoin, next years students got that working[3] :-)
[0] https://github.com/andunieee/flipflop/blob/62bb498520aacb60e...
[1] UDP NAT and Firewall Puncturing in the Wild, https://inria.hal.science/hal-01597969v1/document
[2] Mass Adoption of NATs: Survey and experiments on carrier-grade NATs, https://arxiv.org/html/2311.04658v2
[3] Self-replicating seedbox servers using programmable money, https://arxiv.org/abs/2609.05431
Loosely related list of browser based and CLI tools to send files p2p https://gist.github.com/SMUsamaShah/fd6e275e44009b72f64d0570...
How do you get 50 contributors on a project with 116 stars that's 3 months old? There are no PR's? Only one issue?
This actually looks good and uses the established Iroh.
Nice idea with the browser link to share with devices that dont have flipflop on the same LAN. This would be a killer if this would also work via internet! Not sure if Iroh can run in the browser though.
Doesn’t Iroh rely on relays? If so, is it possible to run my own?
Keeping the tunnel available between sends is the nice part. Once it's set up with someone, you can just use it.
cool project. slint looks nice
> filesharing for the meatspace era
serious question: what does this mean lol
Cool! I'll have to look deeper to see if I could use it as a base for porting https://github.com/akavel/catation to Rust+Iroh! (EDIT: related, do you maybe have plans to merge flipflop with https://github.com/andunieee/my-beloved-rubble ?)
May I ask, was it vibed/LLM-assisted to some extent, or is it purely human-made?
Can you talk a bit about the performance characteristics? What's the max throughput? How does that change with latency and jitter?
Is it better/different than https://tailscale.com/docs/features/taildrop ?
Nice idea, but for personal sharing between my devices, I have a syncthing folder that's synced between my laptop, phone and media center/NAS, and I've been finding that most of my day to day files have been migrating into it, and I hardly ever use things outside of it.
I'm working on something similar, could you please turn on discussions so we can chat directly?
Why native code?
I would think this could be done completely in the browser using WebRTC?
Looks very interesting, I have been building few things on top of iroh past few weeks and I love it, from the ability to run it on some iot all the way to be rf agnostic (almost, can’t use LoRa with iroh due to its datagram limit), and best part, MoQ runs natively on iroh where on wireguard you will need to encrypt twice so more cpu, but i found kernel wireguard performs better at bulk throughput, and layer 3 isn’t by default unless you have TUN like added.
A list of iroh based tools are also found here https://github.com/n0-computer/awesome-iroh
[flagged]
[flagged]
[dead]
[dead]
"Because Microsoft hates the world, they will show a "Windows protected your PC" warning when you try.
Because Apple hates the world even more, I can't publish it for iOS."
Gold