I recently came across a feature in Resilio Anywhere that I think would be a valuable addition to Syncthing: file caching.
Here’s how it works: If you have two file storages, A and B, you can set up a job using Sync caching. Storage A serves as the primary host, holding all the actual files, while Storage B shows all folders and files as placeholders—without transferring the data itself. When someone needs a file on B, it’s automatically fetched from A, making it available as needed.
This setup allows Storage B to display the entire 20TB content from A without transferring everything at once—ideal for syncing large storage without occupying massive disk space. For example, Storage B could have just 2TB of capacity, yet appear to mirror the full 20TB from A. Additionally, there’s an option to set disk usage limits: when these limits are reached, older files on B are purged to make space.
This kind of dynamic caching makes managing large datasets much more efficient. Would something like this be possible for Syncthing?
I wouldn’t count on such a feature being implemented into Syncthing in the near future (if ever). It requires very deep integration into the filesystem, and Syncthing supports such a wide spectrum of different operating systems that doing so on all of them is likely impossible. This is both about the amount of work required and each specific operating system’s restrictions and limitations, which in some cases will simply not allow such integration.
This is not easy as it sounds, basicly you create a virtual view of the remote file+ directory tree on the receiver side. This is would better be called “download on demand from remote” instead of caching. It could be implemented as a virtual filesystem and when the file needs to be accessed it does the sync. But there are many technical and logic things to be addressed then.
Its not the same as I understand your feature “request” which is in Resilio but selective sync is also not implemented in Syncthing (for probably good reasons). If a tool does to much those spinning things will break eventually when all those features must co-exist. So the KISS/UNIX principle can be dusted of in my opinion.