top | item 28264408

WinFsp – Windows File System Proxy

184 points| mkotowski | 4 years ago |github.com

53 comments

order
[+] hdjjhhvvhga|4 years ago|reply
In case anyone is wondering: if you want to use sshfs network drives as demoed on their Github page, WinFsp is not enough, you need to also install SSHFS-Win:

https://github.com/billziss-gh/sshfs-win/releases/tag/v3.5.2...

[+] juangacovas|4 years ago|reply
Haven't tried the latest versions of WinFsp + SSHFS-Win, glad to see a new GUI for the later and new versions. My experience is good but if you have an unstable connection, the mapped drive didn't reconnect by itself at all times. For a better experience I've always relied on RaiDrive (free with Ads) or SFTP Drive from N software (free for non-commercial)
[+] sam0x17|4 years ago|reply
Used this extensively when I was working on BitFort (abandoned project). It's really solid. If you're open source you can use the whole thing no problem. If you're closed source, a commercial license costs around $5k.
[+] chajath|4 years ago|reply
It's interesting to note that WSL uses 9p to mount the filesystem on Windows. Had MSFT taken a more FOSS-friendly approach, we could've had a burgeoning FUSE ecosystem built around 9p.
[+] WorldMaker|4 years ago|reply
The WSL team in their GitHub have teased experiments with allowing the 9p server to do more outside of WSL and be an open protocol for Windows moving forward. Given Windows' backwards compatibility mandates, you may be able to understand why they are taking a slow and deliberate exploration process to figure out how much that is something they want to support in Windows moving forward (especially if it escapes the realm of "developer tools" where they feel they have more freedom).
[+] BiteCode_dev|4 years ago|reply
Oh, it has a FUSE compat layer too, that's pretty damn cool.
[+] riedel|4 years ago|reply
You can even implement a fuse server in cygwin, so many fuse implementations will straight forward compile from my experience.
[+] _def|4 years ago|reply
Is it maybe possible to use ext3/ext4 rw on windows 10 with this?
[+] Rucadi|4 years ago|reply
You can already do that using WSL2 mount.

After mounting an ext3-4 drive, you can RW into it using the file explorer.

[+] Wicher|4 years ago|reply
Could one easily distribute software that bundles this and have it installed by novice end users? What kind of permission granting seances would they have to go through, if any?
[+] catwell|4 years ago|reply
You probably can and it won't be nearly as bad as what it is on MacOS. You only need a code signing certificate for drivers from Microsoft. You might not even need that if WinFSP provides signed binaries and you don't modify the driver part.

(Source: until 2 years ago I used to work at a company that did that using a proprietary driver - CBFS - and was looking at WinFSP to replace it.)

[+] mkotowski|4 years ago|reply
As for using it to create a new file system, the repository has a basic tutorial for that: https://github.com/billziss-gh/winfsp/blob/master/doc/WinFsp...

> What kind of permission granting seances would they have to go through, if any?

From personal experience of using this: WinFSP have ready .msi installer. After going through the standard process of installing it, then you need to install the file system implementation you want (for example SSHFS from http://www.secfs.net/winfsp/rel/).

The required permissions amount to the standard installation prompt, at least from my experience on Windows 10.

[+] oaiey|4 years ago|reply
And then it is GPL with exception for libre software or commercial license.

I hope they have reasonable commercial licensing.

[+] vlovich123|4 years ago|reply
In most of the benchmarks down it outperforms NTFS. What’s going on there?
[+] sam0x17|4 years ago|reply
It turns out it's actually very easy to outperform off-the-shelf file systems depending on what your metric is. I discovered this when I was developing BitFort (abandoned project) which made use of WinFsp on Windows and pure FUSE on Linux. In my case the secret was having all the paths available in a fast in-memory data structure. I was dealing with a remote cloud file system, yet I was able to open up folders and browse around the file system faster than NTFS can with LOCAL file systems because every path and the MIME type is already in memory. For some applications (i.e. if you have trillions of small files) this might be a memory hog but for most I imagine it would be just fine. Seems like something OSes should have a toggleable option for...
[+] jpeloquin|4 years ago|reply
According to the docs [0] it's in part due to an unequal comparison: "[WinFsp] outperforms NTFS in most scenarios (an unfair comparison as NTFS is a disk file system and WinFsp is tested with an in-memory file system)." I guess the point is just that WinFsp is fast enough for practical use.

[0] https://github.com/billziss-gh/winfsp/blob/master/doc/WinFsp...

[+] R0b0t1|4 years ago|reply
As mentioned in other comments it is an unequal comparison, but it's easy to outperform NTFS on Windows as the NTFS driver has some serious lock contention issues that make directory enumeration slow.
[+] andix|4 years ago|reply
Are there any ready to use file system implementations available?
[+] icegreentea2|4 years ago|reply
http://www.secfs.net/winfsp/doc/Known-File-Systems/

I've personally only used SSHFS (years ago). It was ok - slightly flakey for me. I can't remember what was wonky, but it was like 98% working, I couldn't figure out the last bit, so I just switched to straight up SMB/samba (I had pretty free control of the remote end, so that was a reasonable solution).

Maybe I'll give SSHFS another try again now...

[+] DerekBickerton|4 years ago|reply
This might be handy for passing files to a virtual machine if you don't want to use Virtualbox's 'guest additions' software
[+] riedel|4 years ago|reply
Actually WSL2 might be a better target as it would enable some tweaking of the mapping. Did anyone have success implementing virtio communication through hyperv and mount e.g. a custom p9fs. E.g. to support ownership and attributes. What would be the best p9fs server to start with? I had limited success with p9fs on winfsp from cygwin some time ago due to the problems of mapping effective access rights correctly.
[+] jabiko|4 years ago|reply
Why wouldn't you want to use the VirtualBox guest additions? It's GPLv2 licensed and brings additional features that make using the VM easier.
[+] pjmlp|4 years ago|reply
Windows already has similar native APIs, why bother with this?
[+] shadowfox|4 years ago|reply
Out of curiosity: what sort of apis are we talking about?
[+] AkshitGarg|4 years ago|reply
It also has a FUSE compat layer which maybe useful when porting existing *nix software
[+] MichaelGroves|4 years ago|reply
> It outperforms NTFS in most scenarios (an unfair comparison as NTFS is a disk file system and WinFsp is tested with an in-memory file system)

Oh good grief! Let me guess, they first benchmarked it against a ram disk, but the resulting graphs didn't look so impressive so they scrapped that and decided to benchmark it against a disk, which they admit was unfair, just to get the impressive looking graphics.

[+] solarkraft|4 years ago|reply
Cool, the third version of FUSE for Windows …