Comments (5)
I personally use Syncthing and their entire syncing and discovery protocol is very well designed & documented. We are definitely aware of them and might potentially integrate some of their protocols if it makes sense for our use case.
Our discovery system (https://docs.syncthing.net/specs/globaldisco-v3.html) is likely to work very similarly although it will most likely be incompatible due to our different product requirements.
from spacedrive.
My understanding of the current plan (feel free to correct me @jamiepine) is that the P2P system by default will only work over your local network.
For syncing over the internet the "easy-way" will be to pay for a Spacedrive account which will automatically, with zero configuration allow syncing over the internet to work through the use of a central Spacedrive server.
There will be the option to port forward a machine on your local network (or set up a dedicated Spacedrive server) if you would like to sync over the internet without paying for the service. The exact system for IP discovery that would be required by this feature is yet to be determined but I'm currently thinking about a system similar to the well-documented approach Syncthing take with a central discovery service.
In terms of security, it will be using public/private key for everything. We haven't built this out yet so I can say any specific details but I think we will use JWT in the auth layer and potentially some form of mutual TLS for the syncing layer.
from spacedrive.
I plan for p2p connections to be a priority, but fall back to proxied connections through a hosted network when remote, with e2e of course.
When accessing files remotely users should be able to use our network, others' networks or their own deployment.
The QR code is exactly the plan, or a numerical code.
I'm very glad you see potential in the project, happy to answer further questions.
from spacedrive.
I plan for p2p connections to be a priority, but fall back to proxied connections through a hosted network when remote, with e2e of course.
When accessing files remotely users should be able to use our network, others' networks or their own deployment.
Well, as long as the process of adding a new device out of local network would be as easy or easier than with Syncthing, I'll be totally happy. Some people just want to browse and transfer stuff between their devices without getting forced to use cloud storage. By now, there is and used to be a lot of implementations that aimed to tackle local file transfer efficiently, but they often failed by the assumption of being in local network that permits communication. WiFi Direct and so on. Ironically, transferring stuff over the internet became awfully easy, and bandwidth many people have access to contributes a lot to people going as far as to upload a file to random file hosting just to download it on another device, because it's convenient and always works. I think that such an always works solution deserves to exist as a multi platform program, solving the issue once and for all. When thinking of what could be done in total, I find this article (and the company) inspiring: https://tailscale.com/blog/how-nat-traversal-works/
from spacedrive.
@jamiepine Have you guys played with Syncthing (https://syncthing.net/)? It can handle distributed file sync between devices pretty decently, is there any chance spacedrive will integrate it in some way?
from spacedrive.
Related Issues (20)
- [ENG-855] Albums
- [ENG-1018] Favourite locations HOT 1
- [ENG-1393] Keyboard file navigation
- [ENG-1716] Pinned/Favourite folders
- [ENG-831] Tree view in list view
- Has no file HOT 3
- Re-name location makes it re-index
- Formatting dates with i18n HOT 5
- Fix potential github action smells
- Use a less bright white HOT 2
- [docs]: links to changelog are broken HOT 1
- [ENG-1765] Use a less bright white
- Tags: no explicit way to update a tag color/name HOT 7
- [ENG-1767] Select all (CTRL+A)
- Toggling the Inspector in Media View doesn't consistently resize the thumbnail grid. HOT 2
- Quick Preview Causes Incorrect UI Layout
- Watcher panicked after editing file HOT 1
- spacedrop() is missing error handling
- Missing error handling for Tunnel methods
- Missing error types for QuicTransport methods
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spacedrive.