Iknow this feature has already been discussed here and that syncthing is opensource community effort without resources of these two conpanies… so I dont want to imply any pressure…
Clarifying what this actually is about, it looks to me like on demand download of files when they are opened/read (of course coupled with cloud storage, it being Dropbox).
SyncthingFUSE allows you to see all of the files in shared Syncthing folders, but only stores a fixed amount of data locally.
When you open a file, the contents are served from a local cache, if possible. If the contents are not in the cache, then SyncthingFUSE asks peers for the contents and adds them to the cache. If no peers are currently available for the file, then opening the file will fail.
We just suck at doing press releases for cool stuff people create.
Unfortunately, there is no PC nor mobile support right now. It’s Linux and OS X for the moment.
Windows support appears possible via Dokan, but I don’t have any Windows machines, so just developing it would be exceedingly difficult. SyncthingFUSE has the currently closed issue #7 for this.
Could you change SyncthingFUSE so that there’s a Rest API to access files, and the whole FUSE runs outside of Syncthing? Then we could just use that same API on Android.
Edit: And it could also be integrated into eg Synctrayzor for Windows support.
We could probably integrate that into Syncthing as well. Consider a folder that by default doesn’t sync or scan. A rest call could tell Syncthing to “activate” a given file, which it would then start treating as usual (downloading updates for and scanning for local changes). Something similar to remove and unregister a file from the local device.
Presenting the fuse or android api layer could then happen outside.
If we’d add a “External File Storage” mode (similar to the “External File Versioning”) mode, we could also do cool stuff (on Android and on Linux).
Make it so, that the first argument is the desired operation (e.g. list, write, read, delete) and content of the file to be modified can be read via stdin / stdout and exit codes.
This would be a “virtual filesystem” via scripts / external processes. A very easy filesystem could even be implemented in bash then.