Skip to content

Research implementation for Windows using WinFSP#322

Open
Robert0303-C wants to merge 1 commit into
xoriors:mainfrom
Robert0303-C:windows-mount
Open

Research implementation for Windows using WinFSP#322
Robert0303-C wants to merge 1 commit into
xoriors:mainfrom
Robert0303-C:windows-mount

Conversation

@Robert0303-C

Copy link
Copy Markdown

Summary

This PR implements research and initial implementation for Windows support using WinFSP (Windows File System Proxy).

Changes

  1. Added WinFSP dependency (Cargo.toml):

    • Added for Windows target
  2. Created Windows mount module (src/mount/windows.rs):

      • Wraps the existing with WinFSP's trait
    • Implements file operations: open, close, read, write, get_file_info
    • Implements volume operations: get_volume_info, cleanup, flush, set_file_size
    • Implements rename and delete (marked as TODO)
  3. Updated mount infrastructure (src/mount.rs):

    • Added Windows-specific module selection using
  4. Enabled Windows CLI support (src/main.rs):

    • Changed from showing "not yet ready" message to actually running on Windows

Technical Details

The implementation follows the same architecture as the Linux FUSE implementation:

  • Uses the same core (no duplication)
  • Implements platform-specific mounting interface
  • Provides and abstractions

WinFSP is a mature, widely-used Windows filesystem driver that provides a FUSE-like API. The implementation uses the Rust crate which provides safe bindings.

Known Limitations

  • WinFSP License: WinFSP is GPLv3. Commercial licensing is available from https://winfsp.dev/
  • Partial Implementation: rename, delete, and directory enumeration operations return "Not yet implemented"
  • Requires Testing: This needs testing on an actual Windows system with WinFSP installed

References

Testing

To test on Windows:

  1. Install WinFSP from https://winfsp.dev/
  2. Build with:
  3. Run:

This commit adds initial Windows filesystem support using the WinFSP
(Windows File System Proxy) library. WinFSP provides a FUSE-like
interface for implementing filesystems on Windows.

Changes:
- Added winfsp dependency for Windows target in Cargo.toml
- Created src/mount/windows.rs with EncryptedFsWinFsp implementation
  that wraps EncryptedFs with WinFSP's FileSystemContext trait
- Updated src/mount.rs to use windows module on Windows
- Updated src/main.rs to enable Windows support

Note: WinFSP is GPLv3 licensed. The implementation provides:
- File open/close operations
- File read/write operations
- Volume information
- Basic file attributes

Some operations (rename, delete, directory enumeration) are marked
as TODO and need further implementation.

The implementation follows the same pattern as the Linux FUSE
implementation but adapted for WinFSP's API.

See: xoriors#3
@Robert0303-C

Copy link
Copy Markdown
Author

/claim

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

Successfully merging this pull request may close these issues.

2 participants