SyncthingFUSE first release candidate

I’ve got the first release candidate for SyncthingFUSE!

SyncthingFUSE allows you to see all of the files in shared Syncthing folders, but only stores a fixed (lesser) amount of data locally. Some additional information is available on the project homepage.

SyncthingFUSE is supported on OS X and Linux. (Supporting Windows may be possible, but is not on my road map. Mobile clients are even less likely to be supported because of technical challenges, but a similar feature could be implemented for mobile clients using a different approach.)

I have been using SyncthingFUSE successfully myself. I haven’t tested it in a wide array of situations and platforms, though, which is why I’m considering this a release candidate. I will do my best to provide support for SyncthingFUSE on Github and here, assuming the community welcomes it. I am interested to hear how it works or doesn’t work from users! If things are going well, private messages are probably best to avoid cluttering the forum.

Development is currently driven by my own interests. The next interesting thing for me is pinning certain files to always be available on a device. Contributions are welcome.

11 Likes

Sounds interesting. There is a couple of things I can’t figure out though.

  1. Which file format is the syncthingfuse-darwin-amd64? After downloading I am not able to unpack, tried .tar.gz and .zip, and it does not seem to be a binary either. No luck getting any further.

  2. Is there a readme or other source of info worth knowing? Ex. how to run, configure, …

  1. I changed the files attached to the release to zip files. You should be able to download them, uncompress then run the files. (They were binaries, but didn’t have the execute bits set. The zip files help with that.)

  2. There’s a Getting Started section of the README.md. The primary configuration method is through the Web UI when the app is running.

Would you please describe use cases when SyncthingFUSE shines? Is it use case with really huge storage? Or - what?

SyncthingFUSE is particularly useful if you have a Syncthing device with a lot of data that you want access to, but don’t have room for all of on another device.

For example, you may have a large collection of photos on a desktop running Syncthing at home. Your laptop’s hard drive may not be large enough to hold all of the photos. Running SyncthingFUSE on the laptop, you will see all of your photos. As you view the photos on your laptop, they’ll be read from the local cache or pulled from home. The local cache will not grow larger than a fixed size, though.

Thanks for the clarification. Very interesting feature. Unfortunately at the moment I have not got yet an appropriate use case to try, but I’ll keep in mind would such opportunity will appear.

Seems like a great use case for mobile devices. Looking forward to when their is a mobile client. This kinda reminds me a bit of a Ceph-like use case where you have a distributed fault tolerant object store (ST on multiple computers in this case) and you use a client without ST to access and read-write data to it.

And of course way easier to install than Ceph for the normal user. :wink:

This should be integrated in Syncthing… Giving you an easy “Sync” or “Stream” choice for every folder. :vulcan:

There are lots of discussion on selective sync functionality on GitHub.

As always, if you’re willing to contribute the work, please go ahead :smile:

Why? It’s already easy, you either use one, or the other.

Wouldn’t it make packaging etc easier? And I think the overlap of users of the two is huge… So why split the userbase if most people use both or would use both if they knew about SyncthingFUSE?

It doesn’t make much sense to use both, what’s the point of that? You’d use one or the other.

You’d sync folders you need often and offline (music on a smartphone, keepass database,…) and you’d stream big folders you need seldom (movies on a tablet or a family photo collection,…).

I agree that it makes sense to merge this directly into Syncthing somehow.

That would also make it possible to support normal and “on-demand” folders from the same app.

1 Like

Well this whole thing does not work outside of Linux, so how do you suggest we do that?

1 Like

It’s possible to merge this as a Linux- (and Mac) only feature. But the merging needs to be pushed by @burkemw3, it needs to fit in cleanly, and it needs to make sense. :slight_smile:

2 Likes

Cries about the feature not existing on Windows in 3, 2, 1.

1 Like

This might be a stupid suggestion, but what if instead of integrating FUSE access into synthing (AKA syncthingFUSE) one would integrate a webdav server into syncthing - one could interface that with windows, fuse, whatever is needed…

On the other hand, I kinda like the minimal approach of syncthing, allowing it to run on weaker hardware. This is not really a feature request, but more like an idea to give syncthingFUSE’s functionality in a cross plattform way…

That would sort of work, apart from webdav quirks of not supporting files larger than 50MB on Windows without registry hacks.

I think it would be enough if Syncthing provided a Rest API to access files, and other people can write platform-specific wrappers for that API (or extend existing wrappers).

There’s already GET /rest/db/browse, so we just need something like GET /rest/db/file for readonly on-demand functionality.

Edit: This approach would actually be preferable for Android, because we could include Syncthing directly in the system file browser.

3 Likes