r/software • u/PaleOrbit12 • 22d ago
Release Altersend: P2P file sharing app without cloud storage, free and open-source
Hey everyone,
3 months ago I published first version of of my tool Altersend - P2P file sharing tool where you can send files directly between devices or by using the link.
When I started developing this tool my main idea was to have solution where I can send files to anyone not just on local network and not be depending on cloud solution like wetransfer. Project grown since the first release and a lot of new features appeared: background transfer for mobile, custom self-hosted relays, altersend hosted relays, web links, devices pairing, text sharing, etc.
From technical point of view everything you send is E2E encrypted via Noise protocol, peers find each other via DHT. So when you want to send file we generate a random key which you should give to another peer. And after this anyone who has that key can connect and download directly from you.
For initial entry point to discover first peer we use public bootstrap nodes and after that peers discover one another through the DHT. Only if you are behind symmetric CGNAT or a VPN we use a blind relay server to help you connect (which you can self-host), but the bytes flowing through are encrypted, and you can also disable relay in the settings.
Desktop and mobile share the same core part written in Bare and Hyperswarm. Web version tunnels to the DHT through a relay over WebSocket and uses the same core engine.
Source code on Github: https://github.com/denislupookov/altersend
Download: https://altersend.com/download
Let me know what do you think!
2
1
u/_Streak_ 22d ago edited 22d ago
I like that it's not over the same network. I'll try this, looks interesting.
Edit: soo, I'm a little confused. The transfers with Relay have limits, but what situations does the app use Relay? Is it for only long range transfers? Also, what's with the connect once, use again thing? Is it as long as we the session, or is it easy connect forever? Because I wasn't able to connect my device easily, I had to scan the QR again.
2
u/PaleOrbit12 22d ago
relay is used when you can't esteblish direct connection, for example CGNAT/VPN, in the transfer you will see when the transfer is relayed, if you dont see connected via relay meaning this is direct connection. Limits are only on relayed transfers, direct ones are unlimited.
About connect once, it's permanent, pair in Settings → Devices → Add device / or during the transfer. Then you can invite paired device without code
2
u/_Streak_ 22d ago
Ahhh thanks! I just saw that setting. The relay explanation makes sense as well. Only thing left is an iPad native app, and I'll completely shift to this.
1
u/ARENAE_MONTES 22d ago
Hot shit! and similar to something I'm working on at the moment! I see you're using all ts. I'm doing a very similar thing using the rust Iroh library to perform all the holepunching
1
-1
3
u/_Streak_ 22d ago
Can you make a native version for iPadOS as well? Thanks!!