winfsp 0.5.2+winfsp-1.11

Rust bindings to WinFSP
Documentation

winfsp-rs

Latest Version Docs License

Safe Rust bindings to WinFSP with examples.

⚠️ Use at your own risk ⚠️

A best effort has been made to keep Rust's aliasing rules in mind, and provide a safe and sound wrapper over WinFSP. However, FFI with WinFSP involves a lot of pointers that end up as references and the nature of FFI makes it difficult to test with miri. While ntptfs is used to test the correctness of the bindings and passes winfsp-tests-x64.exe --case-insensitive-cmp -volpath_mount_test, there is still a chance these bindings are unsound.

Please file a bug report if you encounter unsoundness when using the safe APIs of these bindings.

Usage

By default, winfsp-rs builds against an included import library. To build against the installed WinFSP libraries, enable the system feature. The path will automatically be determined via the Registry.

[dependencies.winfsp]
version = "0.5"
features = ["system"]

Delay-loading

To enable delay-loading of WinFSP, add winfsp to build-dependencies and call winfsp::build::winfsp_link_delayload() in the build script.

Cargo.toml

[build-dependencies]
winfsp = "0.5"

build.rs

fn main() { 
    winfsp::build::winfsp_link_delayload();
}

Debugging

Debug output can be enabled with the debug feature. Debug output will be written to standard output, and redirection of output is not configurable at this time.

[dependencies.winfsp]
features = ["debug"]

Legal

winfsp-rs is licensed under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.

Attribution

WinFsp - Windows File System Proxy,

Copyright (C) Bill Zissimopoulos
https://github.com/winfsp/winfsp