marchellodev / sharik

Sharik is an open-source, cross-platform solution for sharing files via Wi-Fi or Mobile Hotspot
MIT License
1.15k stars 103 forks source link

Using uProtocol #29

Open mubashir-rehman opened 3 years ago

mubashir-rehman commented 3 years ago

Background: Sharik is a promising project and I hope it gets the recognition it deserves. I have been a FOSS lover since I started using FOSS apps and try my best to help in any possible way. I have been using @trebleshot since 2018 when I found it while searching for FOSS alternative to ShareIt to share files with my laptop and friends. It has been working very well for me as of now. However, a person told me about Sharik in trebleshot's help group on Telegram. I thought it would be great to check it out. It seems to be an epic initiative. Main topic: However, I think it would be great if @velitasali (developer of trebleshot) and you might find some time to talk about what can be done better. Veli is working on @uprotocol, a peer to peer file sharing protocol. It has been successful so far and being used in trebleshot. Using it might bring more opportunities for both projects and overall FOSS community.

marchellodev commented 3 years ago

Wow, thank you soo much! I would love to cooperate.

I have actually thought of adding p2p feature to enable direct file sharing between devices that are not on the same network. However, I did not find any cross-platform tools to bypass NAT and using relay servers (like ngrok or fatedier/frp) is kinda expensive.

velitasali commented 3 years ago

Uprotocol is a protocol for local content exchange.

It uses CoolSocket, a socket layer that I created for the same purpose. It supports encryption & authentication and it should be secure. I am designing it with compatibility in mind so old implementations won't lose support.

I have reached an alpha stage and was testing with a dummy Android application.

If you are interested, I can provide you with documentation to implement in your language of choice :)

The only part that might cause trouble is the generation of the self-signed certificates.

opusforlife2 commented 2 years ago

@marchellodev A few weeks ago, a stable version of Trebleshot was released which uses uprotocol. Just a status update in case it helps.

mubashir-rehman commented 2 years ago

@opusforlife2 He knows about it.

marchellodev commented 2 years ago

I plan to re-write Sharik's backend in Rust for better performance and an adequate cli version. @velitasali Said a few weeks ago that he could create an implementation of uProtocol in Rust. I will integrate this implementation into Sharik's backend then :)

Btw, @velitasali if you need any help with implementing uProtocol in Rust, let me know!