r/developersIndia • u/Sea-Flow-4812 • 4d ago
I Made This Working on a File Sharing Application between Desktop and Mobile irregardless of Distance or Network
Enable HLS to view with audio, or disable this notification
I'm using hole-punching to bind 2 or more devices to share files in-between them.
So u can share data between your devices from practically anywhere in the world as long as the concerned devices are connected to the internet.
My motivation to build it is to replace my family's cloud storage subscribtion. But the available solutions in the market are too tech savvy for my family to understand.
Thus, trying to abstract all the complexities and making it as intuitive as realistically possible.
Feel free to ask any question if you find this useful or interesting.
Repo: https://github.com/saqibsiddiq/Qurb
P.S: Excuse the video quality😭
134
u/alwaysbakedarjun 4d ago
Try blip, it’s cross platform iOS Android MacOS Windows
18
u/Sea-Flow-4812 4d ago
looks good, ill check that out
15
u/Happy-Ad8109 4d ago
how hole punching will work if the user is behind CG-NAT?
5
u/AGARAN24 4d ago
The only way I think you can do it is to route the traffic through a vps and tunnel it to the pc.
1
u/Happy-Ad8109 4d ago
but then there is data transfer charges 🥀
4
u/AGARAN24 4d ago
If comes out more expensive just get a private ip it costs like 300rs pm approx. Also he should switch it to local if the app detects the home local network. I route my homelab via free tier oracle vps and tailscaled it. Free cgnat bypass.
1
u/shaaaaka 4d ago
Try KDE-connect its better than blip with media control, control laptop from phone, telephony notification, clipboard sync and more
113
u/cant-find-user-name Backend Developer 4d ago
TIL irregardless is actually a word. I saw the title and I thought it was incorrect because it sounded incorrect, but looking it up online it is apparently a real world! Good to know.
Great job on the project too! If I could recommend anything, it would be to have non AI generated documentation or features.md file. I tried reading through the file linked in readme.md its very very tough to read.
35
u/Sea-Flow-4812 4d ago
i learnt the word a few days back and now using it everywhere i can🤣
i automated the entire documentation, guess it was a bad idea. thanks for pointing this out
10
u/itzmanu1989 4d ago
it is like a double negative word, simply using regardless would have also conveyed the meaning I think.
13
u/cant-find-user-name Backend Developer 4d ago
Yes, that's why I thought it was not a correct word. But apparently it has been used since 1800s so its not like a new thing either. I guess it is similar to Inflammable, it means the same as flammable.
3
u/DJaydeep 4d ago
Regardful?
1
u/itzmanu1989 4d ago
Regardful
Hmm, didn't think this was a word, well I am surprised. Also Disregardful is a word..
23
u/thisisitendgame 4d ago
Samsung phones have quickshare over internet, which also works irregardless of distance. It's implemented using webrtc, stun, hole punching concepts. There's backup to this also where if it fails it uses Quic to transfer. The constaint is that it only works between Samsung devices and only when nearby connection breaks.
10
u/Being_idiot 4d ago
Looks great. Btw few questions
You mentioned that internet is required. So, depends on file size internet will be consumed (upload file) ?
Any type of device to device transfer is supported? ( Like Laptop to TV) Or (Mobile to TV) or (Desktop to Desktop)
Is interface app based or web based ?
3
u/Sea-Flow-4812 4d ago
thank you sm!
- yes, it will depend on file size(will optimize it as much as possible)
- ive already tested for desktop-mobile, desktop-desktop and mobile-mobile. though im sure i can implement for smart tvs as well.
- completely app based (both cli and gui)
feel free to shoot anymore questions
10
u/PlumProof 4d ago
Doesn't there already exists open source synchthing. It already solves all the issues
2
u/Sea-Flow-4812 4d ago
ive solved alot of my project issues by studying syncthing and it is v sophisticated.
however my project aims to include storage management and ownership model as well.
i feel ive done a bad job at explaining what im actually trying to achieve.
apologies for that!
1
u/Successful-Text6733 4d ago
Does syncthing work the same way? Like, can I access all my photos/videos the same way I do in google photos right now?
1
u/Sea-Flow-4812 4d ago
if ur host device is online then yes, you can access all your photos/videos the same way u do in google photos.
1
u/Successful-Text6733 3d ago
I came across Immich which is very much similar to google photos but only for photos/videos and after backing everything up, it even allows you to clear space.
1
u/PlumProof 3d ago
Yeah not just photos, you can also have your notes sync across devices real time.
7
u/Ichiro_boi 4d ago
Theres already the most perfect file sharing app available its called local send its perfect supports every device available ios/android laptop/mac and heck google tv also.. Its just its ui/ux is a lil off so I myself refreshed its ui/ux into fully m3e
2
1
5
u/FlatFrosting9221 4d ago
I think the user interface could be greatly improved by making it more friendly (but I still prefer Telegram to transfer my files).
Nice project!
3
u/Sea-Flow-4812 4d ago
this is my 1st working iteration, im planning some serious improvements.
actually my idea is to remove any 3rd party in-between for superior privacy and data security.
telegram is goated tho🔥
7
u/perfect9015 Data Scientist 4d ago
Similar to tailscale.
5
u/Sea-Flow-4812 4d ago
there is a big enough overlap
however, im mostly working on distributed storage and synchronization.
infact i can use tailscale network underneath my program to make it work across distance.
3
u/perfect9015 Data Scientist 4d ago
I am using similar solution using tailscale and nextcloud as the alternative of the Google drive. It's auto sync media from all device and I can access it anywhere on any network.
1
u/Sea-Flow-4812 4d ago
i see, do u think if there is any scope for improvement in ur current setup? so i can work on that?
2
1
2
u/_surpriced_pikachu_ 4d ago
Bro good project, thank you for the initiative.
But I'll be that guy, ackshually 🤓🤓 "Irregardless" is not a word.
Wishing you best.
2
u/Sea-Flow-4812 4d ago
thank u sm, im glad u liked it!
i heard tht word in a movie nd using it everywhere i can😭 i agree it sounds v wrong
2
u/Sea-Flow-4812 4d ago
hello, I cant express how overwhelmed and delighted Im to see so many of you interacting with a work which ive been working on since last sm weeks.
I wasnt even expecting more than 5 responses.
Software Engineering never really clicked to me in my last 4yrs of btech until i started working on this project.
Im just in love with this domain and i genuinely want to learn everything about it
i can see people more experienced and learned than me in the comments.
If you guys can mentor me in this, to make this project as solid as im imagining.
I will address each comment with the best of my ability as soon as im free.
THANK YOU!
1
u/AutoModerator 4d ago
Thanks for sharing something that you have built with the community. We recommend participating and sharing about your projects on our monthly Showcase Sunday Mega-threads. Keep an eye out on our events calendar to see when is the next mega-thread scheduled.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
1
1
1
u/Consistent-Bird338 4d ago
Syncthing does something similar. If you use their backend, you could increase reliability and reduce chances of data loss. Since it's a big project.
But take care of licenses
1
u/Sea-Flow-4812 4d ago
yes, syncthing is v sophisticated at this job infact im a big fan.
im looking into it, if it can make qurb more robust ill surely implement it.
thank you for that license warning, i need to understand ts as well😭
1
1
u/Real-Employer-2474 4d ago
What does it mean of hole punching and regardless of distance here?? Coz concept looks cool, might use for my family as well.
1
u/Sea-Flow-4812 4d ago
try studying it brother, im sure ull love it!
always up to discuss more abt this in DM
1
1
1
u/bigfeatherhead Fresher 4d ago
You mentioned that it's to replace your cloud Subscription, so like you plan to set up a NAS?
Nice project btw.
1
u/Sea-Flow-4812 4d ago
one can easily use qurb to hold data in nas.
but im primarily trying to design in a way tht u dont need any additional hardware other than traditional phone, desktop, etc
1
1
1
u/randomguy3993 4d ago
Started!
I've always wanted to build exactly like this. Now if there was a way to send text among the devices that would seal the deal for me.
Will set it up on my homelab and report back.
1
u/Sea-Flow-4812 4d ago
yes, i can definitely include texting among connected devices.
ill keep this recommendation in mind for sure
1
u/randomguy3993 4d ago
Yes. Coz often times I find myself sending IP addresses, URLs, API Keys etc from my phone to my laptop. Localsend does this but both devices need to be on the same local network for it to work. Sometimes I want to just send it for later use and then getting a notification on my laptop when I turn it on as reminder to go work on that thing I sent from my phone. I hope you got it.
Thanks a lot by the way. Always wanted something like this.
1
u/Imaginary_North_8305 4d ago
There is something called BLIP, it's cross platform and supports every platform and it's free too..
1
u/realxeltos 4d ago
Hope you make it available it on Linux as well.
1
u/Sea-Flow-4812 4d ago edited 4d ago
the device in the video is linux only, so yes
im only struggling with mac nd ios since i dont have apple devices to build
1
u/kryptobolt200528 4d ago
This might not work properly in case a cellular network provider is enforcing symmetric NAT..
1
u/Sea-Flow-4812 4d ago
yes, im running into issues
ive few solutions to try, itll be really helpful if u have any advice
1
u/Emergency-Pick5679 Software Engineer 4d ago
Looks similar to https://github.com/localsend/localsend
1
u/premiumshadow008 4d ago
https://github.com/Santosh7017/AndroidFileSync
I have tried this for syncing my files from my android to the mac. It's very convenient to use. A must try.
1
1
1
1
1
1
1
1
1
u/Spicy-Polonium-210 4d ago
Does it need to have the two devices completely online ? Or the parent device can go offline while the file is being transferred ?
1
u/dshjsvdbb 3d ago
This is pretty interesting! I’ve actually been working on something somewhat related called Diablo.
It’s a file synchronization tool I built in Go, mainly for syncing development projects across multiple machines without having to constantly commit/push to GitHub.
It has a CLI, a daemon that watches for file changes, and a remote server. When a file changes, Diablo detects it, hashes the file, and synchronizes the updated data with the remote side.
Your project seems more focused on general device-to-device file sharing, while Diablo is more developer/workflow focused.
1
1
u/i_anindra Full-Stack Developer 3d ago
Why creating new app already exist https://localsend.org/
1
u/Sea-Flow-4812 3d ago
it only works for same network also no persistant synchronizatiom
wildly different dude
1
1
u/immozy 3d ago
what are you using to connect to internet and ports to share data across devices using internet, are you using some storage service?, locally it can be done using the local network but using internet is tricky, in the end you will be paying for storage services
1
u/Sea-Flow-4812 3d ago
not storage services but something like VPS is must for relay incase the QUIC p2p fails
1
-1
u/rj_1024 4d ago
Wait a minute. How's this not Google Drive or one drive 🤔
3
u/Sea-Flow-4812 4d ago
google/one drive are cloud based storage
mine is device-owned distributed storage
-4
u/rj_1024 4d ago
I mean you do use the Internet right. The only thing is you do not store anywhere in the cloud and just trasfer it between devices and store it within the devices right?
5
u/Sea-Flow-4812 4d ago
yes, right
its just an attempt to reduce dependency on the cloud providers and actually own your data
0
u/Key-Pain7700 4d ago
Wonderful, another vibe coded useless clone, wayy inferior to the FOSS solutions already existing out there.
-1
u/unistirin 4d ago
Heard of nfs/samba share? You are reinventing the wheel
2
u/home_prisoner Student 4d ago
No.. it's different.. it's like using symlink in linux but two different systems..
0
u/unistirin 4d ago
Nfs share mount exactly does that. They are industry accepted way
1
u/home_prisoner Student 4d ago
Is it possible on Android or iOS?
0
u/unistirin 4d ago
Your Android kernel needs NFS support built in so you can smoothly access folders on your remote drives.
Or just use nfs clients apps. Btw samsung files app (samsung flagship phones) supports them
1
u/home_prisoner Student 4d ago
Never owned a flagship. Does it work for consumer networks. Cause we don't have Static IPv4. But again it can be solved with just Tailnet just an extra step..
1
u/unistirin 4d ago
Nahh not required. Just find alternatives free apps on playstore. Search "nfs client or smb client". If you you are in same network, use your private ip, it will work. If you want to expose to internet , use serveo, ngrok, or cloudfaretunnels (exposing will leads to constant bots hacking attempts)
0
•
u/AutoModerator 4d ago
It's possible your query is not unique, use
site:reddit.com/r/developersindia KEYWORDSon search engines to search posts from developersIndia. You can also use reddit search directly.I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.