WinFSP mounting

Is something like mounting Kubo using Fuse under Linux implemented with WinFSP under Windows?

You might want to check out GitHub - djdv/go-filesystem-utils @djdv. Releases should be in Releases · djdv/go-filesystem-utils · GitHub and you can ask questions in the discussions/issues there.

If you’re a dev submitting some PRs or do some testing would probably be helpful.

Chiming in to say the implementation I have there does use WinFSP on Windows and should generally work.
But obviously the published documentation is lacking right now. (This was originally just for some people I know that wanted this too.)
The commands each support a -help flag which might help a little. There’s still lots of placeholder text, but the flags are typically described right.
fs -help, fs mount fuse -help, etc.

If you want to run this, you can call fs mount fuse pinfs I:
Later you can do fs unmount I: or fs unmount -all to get rid of it.
You can also provide fs mount fuse pinfs -ipfs $someMultiaddr I: to mount a remote IPFS node. And can have as many active mounts as the system will handle.
Any valid WinFSP target should be supported, so you can request a drive letter (I:), a folder path (C:\ipfs), or even a UNC path (\\localhost\ipfs).
On Linux and macOS I think only directory paths are valid.

Note that this spawns a background fs daemon process which will go away on its own when there’s no active mountpoint. You can spawn this process in the foreground yourself with fs daemon -verbose to see what it’s doing. And fs shutdown -level immediate should tell it to unmount everything and go away if it misbehaves.

I think the Go compiler changed so this isn’t necessary anymore, but you can use the included build program to easily build this yourself on Windows, go run .\cmd\build. This will check for a C compiler and include the WinFSP headers if you have them, or fall back to dynamic linking otherwise.
The master branch is old though, so you likely want to build from the prerelease tag, or one of the active development branches.

I’m in the middle of a refactor, but will make an effort to clean up some of the command helptext and add notes like this to the repo’s wiki when I can.
Likewise a new prerelease should follow which helps with performance a little bit.

1 Like