radumarias / rencfs

An encrypted file system written in Rust that is mounted with FUSE on Linux. It can be used to create encrypted directories
Apache License 2.0
108 stars 24 forks source link

`FUSE` (or similar) support on `Windows` #3

Open radumarias opened 6 months ago

radumarias commented 6 months ago

see #9

A very basic working and tested implementation is needed

They don't really have examples and the docs are very scarce, but seems it's very used https://github.com/winfsp/winfsp/wiki/Known-File-Systems so it could be good for us too. Maybe you can find some examples in C or other langs if any of the dependants frm wiki are OSS.

There's these too https://github.com/billziss-gh/winfuse but I didn't found any bindings. WinFSP seems the most used, recommended and stable.

swnck commented 2 months ago

Can you explain the Issue more?

radumarias commented 2 months ago

@swnck check it now. Let me know if you want to work on it so I add you to the project and to slack.

radumarias commented 2 months ago

@swnck is this this clearer now? let me know if more explanation is needed. Btw, how are you with this? Managed to investigate if the suggested solution could work for us?

dmikushin commented 1 month ago

The two most well-known FUSE-based FS are SSHFS and OverlayFS. I agree that winfsp - a FUSE-like backend for Windows - appears to be promising. The sshfs-win implementation is based upon it. Perhaps, some Rust fan should create bindings for winfsp, so that it could be evaluated as a technical solution for your task setting.

radumarias commented 1 month ago

@dmikushin thanks a lot, would you be interested to contribute to this?

dmikushin commented 1 month ago

@radumarias , I think the key prerequisite for this task is to provide a native Windows build of rencfs in principle. Currently, you support Windows via WSL. But in order to have the filesystem integration with Windows, the rencfs backend must compile in Windows natively. This aspect is a hidden complexity, which does not belong to this task and should be split out as a prerequisite.

radumarias commented 1 month ago

@dmikushin build on windows should work, it will have a dummy implementation for FUSE that does nothing. can you give it a try and built it and let me know if there are some issues

dmikushin commented 1 month ago

Please note: wincfp is GPLv3, which is not compatible with Apache-licensed rencfs. IANAL, but to move ahead from PoC you may need to re-license rencfs as GPLv3, or collaborate with winfsp on commercial basis.

radumarias commented 1 month ago

https://winfsp.dev/ you talk about this?

dmikushin commented 1 month ago

Yes, it's the same software you've mentioned in the first post here.