Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows Support Possible? #3

Open
roobscoob opened this issue Jan 5, 2020 · 8 comments
Open

Windows Support Possible? #3

roobscoob opened this issue Jan 5, 2020 · 8 comments

Comments

@roobscoob
Copy link

Hi, I'm wondering if Windows support is possible, with something like Dokany?

@andrewosh
Copy link
Contributor

Hey @roobscoob, Windows support is probably possible (using Dokany or winfsp), but we've chosen not to prioritize it immediately just due to time cost.

Assuming one of those libraries supports the multithreaded libfuse API we're using, there shouldn't be any blockers. If you want Windows support immediately and you don't care as much about multithreading, take a look at the fuse-bindings module, which is what we're building off of here.

@roobscoob
Copy link
Author

I already use (and love ❤️) the fuse-bindings module! I was looking forward to multithreading, but I'm not making any scale projects, just a hobbyist, so no worries about it. Thank you!

@131
Copy link

131 commented Jan 20, 2020

+1 for a winfsp fuse-friends driver ! I'm using a fuse-bindings fork backed on winfsp, working fine, but it's unsupported and performances are'nt there.

@raymond-h
Copy link
Contributor

raymond-h commented Jul 21, 2020

Hello. I started working on adding Windows support for this module. My fork can be found at https://github.com/raymond-h/fuse-native with another relevant fork and module found at https://github.com/raymond-h/fuse-shared-library and https://github.com/raymond-h/fuse-shared-library-win32 respectively.

The fork uses WinFsp and pthread4w (latter is prebuilt using vcpkg and bundled into the git repo of fuse-shared-library-win32). A few issues with it:

  1. I'm not sure about bundling WinFsp, because it seems the model is for users to manually install it themselves alongside whatever program they want to use (I imagine there may be issues with its kernel bits and pieces).
  2. WinFsp has a weird behavior of intercepting Ctrl-C for itself to trigger it to unmount everything, so example.js in this repo for example requires you to hit Ctrl-C twice to finally stop the program.
  3. While FUSE on MacOS and Linux requires the folder exists, WinFsp (even its FUSE compat) explicitly requires the folder does not exist. One solution would be to make sure all folders but the last one exist, possibly even deleting the last folder if it does exist.

Aside from these issues, I got all tests to pass (excluding the tests relying on the behavior mentioned in point 3 above) and example.js to work as expected.

@131
Copy link

131 commented Jul 23, 2020

This looks great ! Can this work be merged ?

@mafintosh
Copy link
Collaborator

@raymond-h uhh cool! are there any major hurdles/complexities/downsides with winfsp?

We could potentially add it to this org if you want, with you as the maintainer, if this is something you want to help maintain nearterm.

@d3lm
Copy link

d3lm commented Sep 14, 2020

I would love to see Windows support as well, that would be amazing! Great work @raymond-h. Have you had a chance to fix / solve the issues / points you mentioned?

@voxsoftware
Copy link

any update about this? I work with this module on Linux perfect. I want also available on windows

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants