Projfs for windows mounts

I was wondering about using projfs for windows mounting? What would be the pros and cons vs the current implementation that uses WinFsp. I was able to get a proof of concept using projfs so i know it works but not sure what issues might arise from using it.

hi,

you created a rclone mount command that use projfs?


that would great but not seeing how that would get integrated into rclone.

as you might know already:

  • for mounting, rclone uses a cross-platform FUSE. which works on windows, linux, and macos
    so all rclone has to do is support FUSE
  • projs most likely does not support the go language, requiring unpleasant usage of CGO

Yes i have it working. I just like the thought of not having to install a third party tool to be able to mount. Sure its a windows feature but i feel that lowers the bar of entry for it.

that sounds nice.
tho, i cannot remember a topic where the issue was winfsp refusing to install or work?


what is the killer feature offered by profs that rclone cannot emulate?

I just know at my work there would be zero chance of getting winscp installed but they would probably enable the projfs windows feature if asked. rclone is on the approved software list :stuck_out_tongue:

one way around the FUSE versus projfs is to use neither.
instead os native os mount support.

on windows, net use can mount webdav servers
with rclone, rclone serve webdav

Interesting!

Is your mount implementation more or less complete, so you have been able to run with it for some time and test it properly? Does it seem to work well?

I noticed that this depends on an optional Windows feature "Windows Projected File System", which provides the native library. And then, as mentioned, rclone must be built with CGO (I assume you built with MinGW GCC available?).

Unfortunately, my impression is that the CGO requirement is a blocker for getting it into rclone. I may be mistaken, but I have some vague memory of a discussion regarding adding something like an extensions feature to rclone. Not something that manifested into anything, and was probably specifically for supporting additional backends, not additional mount implementations. I guess something like that would be needed, unless there are big enough advantages with this (probably not) or something else to justify the added complexity of building with CGO again.

So… Sort of embarrassed to say this but welcome to the future. i’ll be upfront that i vibe coded this after i went to a conference that they were talking about projfs. I only tested it a handful of time to see if it works. Hell i still have winfsp installed so i don’t even know if there are some other shenanigans going on but i can test on a computer without just to verify. As for as CGO i have no idea. Claude is telling me it didn’t use it but i have zero idea how to know. I do have the modified files if your interested in seeing them.