Quite recently Dragit, the local file sharing app written in Rust, GTK and libp2p, was positively reviewed and joined Flathub. On that occasion let's see what is Dragit and why it can be a useful tool.
What is Dragit and why one would use it
If you ever tried to send a file from one computer to another, perhaps you've noticed that this task is more difficult than it seems. There are different (simple or sophisticated) ways of sharing files and you might have tried sending the file through the:
- pendrive (where is it? Can I delete those old files?)
- email (will work only for small files and what is my password again?)
- file sharing website (maybe I don't want to send my private data there)
- network sharing tools like Samba (too difficult to setup)
- ssh (mostly for tech-people from Linux world)
- Dropbox and cloud alternatives (again setup and privacy concerns)
I didn't like any of those solutions and I concluded that the main two reasons were:
- complicated usage including configuration and setup
- issue about privacy of the data
Dragit is a file sharing app that was developed to address those problems. The philosophy behind it was grounded on the idea that usage of the tool or a program should be easy, intuitive, design privacy oriented and decentralized. If you want to move files at your home, there's no need to upload the files to some external servers, even more if files are big or should not be publicly accessible.
How does the app work
Having those principles in mind, here's how you use Dragit:
- Get the app for your operating system on both computers. App currently supports Linux and Windows. Check the installation instructions here
- Run the app on both computers
- Apps should discover each other, showing you the computer name and address
- Open a file browser, grab a file and drop on the Dragit window in a frame with your computer name
- On the other device, you'll be asked if you want to accept the file; please answer "Yes" if you're ok
- File will be transfered and you'll get notification with the file location
Apart from downloading the app, there is zero setup and there is no action required to locate the other computer in the network. As long both machines are connected to the same home network, they will be able to locate each other automatically.
Why Dragit is privacy oriented
What Dragit is doing to guarantee that files sent by user are not readable to other people?
- There is no central server, because Dragit is based on p2p technology. Host discovery happens only in your local network, so your data doesn't leave your home.
- Data is encrypted during the transfer (public/private key cryptography using NOISE protocol framework).
- File is verified before and after sending, so you know that you received the same file you've sent.
- The project is fully open-source; there are no black-box components that could not be verified by reading the source code.
Where to learn more
If you're interested, please check the:
All feedback is welcome, so if you have question or idea how the app should work, please leave a comment here. Or even better, open an Github issue or PR and I'll do my best to address it.