winfsp / cgofuse

Cross-platform FUSE library for Go - Works on Windows, macOS, Linux, FreeBSD, NetBSD, OpenBSD
https://winfsp.dev
MIT License
511 stars 82 forks source link

Mirrorfs? #80

Open lonnietc opened 1 year ago

lonnietc commented 1 year ago

Hello,

I am experimenting with cgofuse and actually need to find something like a mirrorfs.

Do you have any suggestions? Thanks

billziss-gh commented 1 year ago

What is mirrorfs? Perhaps you means something like the passthrough file system?

lonnietc commented 1 year ago

Hi,

In Dokany (http://dokan-dev.github.io/) they have a few C++ examples but have no Golang bindings.

One of those samples is a Mirror (https://github.com/dokan-dev/dokany/wiki/Use-Mirror-example)

" Mirror is a simple command-line software that consumes the Dokan C API. It simply mirrors an existing folder in a dokan virtual drive by forwarding every IO call received by the virtual driver to the filesystem driver serving the existing folder. "

https://github.com/dokan-dev/dokany/tree/master/samples

I am working on the Windows 10 (x64) platform initially and will eventually do cross-platform for Linux and Mac as well.

From what I have read, it does not seem like your Passthrough which also does not run on Windows.

Right now I am also looking through the Hubfs (https://github.com/winfsp/hubfs) to see if there might be something in there that would help but wanted to see if you had any ideas or suggestions.

What I am going to need to develop is a mirrorfs that will combine remote file listing from a type of P2P filesystem which is sort of a torrent (but not) using a unionfs. This will allow combining to see remote and local files as though they are all in the virtual disk drive.

In some ways, it has similarities to your hubfs, but not exactly and also I am building everything under MIT/BSD licensing which the other P2P components are that will be linked to hubfs is AGPL so that does not work for me in this case also.

Probably will have to write this part from scratch if I am going to use cgofuse and WinFSP. Thanks again