Awesome Open Source
Awesome Open Source

WinFsp ยท Windows File System Proxy


Quick Links
Benefits | Wiki | Questions | Author's Twitter

Check out my new kernel driver project WinSpd.

WinFsp is a set of software components for Windows computers that allows the creation of user mode file systems. In this sense it is similar to FUSE (Filesystem in Userspace), which provides the same functionality on UNIX-like computers.



WinFsp is very stable. There are no known kernel mode crashes and it does not suffer from resource leaks or similar problems. WinFsp owes this stability to its Design and its rigorous Testing Regime.


WinFsp outperforms its competition and in many scenarios performs as well as NTFS. Read more about its Performance.


WinFsp strives for compatibility with NTFS and file system correctness. For the full details see the Compatibility document.

Easy to Use

WinFsp has an easy to use but comprehensive API.

  • This simple Tutorial explains how to build a file system.
  • Consult the API Reference for native development.
  • Includes .NET layer for managed development. See src/dotnet.
  • Includes FUSE 2.8 compatibility layer: fuse/fuse.h
  • Includes FUSE 3.2 compatibility layer: fuse3/fuse.h

Other Benefits

  • Signed drivers provided on every release.
  • Available under the GPLv3 license with a special exception for Free/Libre and Open Source Software.

To learn more about WinFsp, please visit its website:

Project Organization

The project source code is organized as follows:

  • ๐Ÿ“ build/VStudio: WinFsp solution and project files.
  • ๐Ÿ“ doc: The WinFsp design documents and additional documentation can be found here.
  • ๐Ÿ“ ext: External dependencies.
    • ๐Ÿ“ ext/tlib: A small test library originally from the secfs (Secure Cloud File System) project.
    • ๐Ÿ“ ext/test: Submodule pointing to the secfs.test project, which contains a number of tools for testing Windows and POSIX file systems.
  • ๐Ÿ“ inc: Public headers.
    • ๐Ÿ“ inc/fuse: Public headers for the FUSE compatibility layer.
    • ๐Ÿ“ inc/fuse3: Public headers for the FUSE3 compatibility layer.
    • ๐Ÿ“ inc/winfsp: Public headers for the WinFsp API.
  • ๐Ÿ“ src: WinFsp source code.
    • ๐Ÿ“ src/dll: Source code to the WinFsp DLL.
    • ๐Ÿ“ src/dll/fuse: Source code to the FUSE compatibility layer.
    • ๐Ÿ“ src/dll/fuse3: Source code to the FUSE3 compatibility layer.
    • ๐Ÿ“ src/dotnet: Source code to the .NET layer.
    • ๐Ÿ“ src/fsptool: Source code to fsptool command line utility.
    • ๐Ÿ“ src/ku: Source code that can be used from kernel or user mode.
    • ๐Ÿ“ src/launcher: Source code to the launcher service and the launchctl utility.
    • ๐Ÿ“ src/sys: Source code to the WinFsp FSD.
  • ๐Ÿ“ opt/cygfuse: Source code to the FUSE for Cygwin package.
  • ๐Ÿ“ tst: Source code to example file systems and test suites.
  • ๐Ÿ“ tools: Various tools for building and testing WinFsp.

Building and Running

In order to build WinFsp you will need the following:

  • Visual Studio 2015 - 2019
  • Windows Driver Kit (WDK) 10
    • NOTE: When using the latest WDK (Windows 10.0.18362.1) with Visual Studio 2015 you may get an error about a missing task ValidateNTTargetVersion. The fix is to edit the file \Program Files (x86)\Windows Kits\10\build\WindowsDriver.Common.targets and modify the UsingTask line for ValidateNTTargetVersion as follows:
      <UsingTask TaskName="ValidateNTTargetVersion" AssemblyFile="$(WDKContentRoot)build\bin\Microsoft.DriverKit.Build.Tasks.16.0.dll"/>
  • Wix toolset

To fully build WinFsp (including the installer) you must use tools\build.bat. By default it builds a Release build, but you can choose either the Debug or Release configuration by using the syntax:

tools\build.bat CONFIGURATION

If you build the driver yourself it will not be signed and Windows will refuse to load it unless you enable "testsigning". You can enable "testsigning" using the command bcdedit.exe -set testsigning on. For more information see this document.

WinFsp is designed to run on Windows 7 and above. It has been tested on the following platforms:

  • Windows 7 Enterprise
  • Windows 8 Pro
  • Windows Server 2012
  • Windows 10 Pro
  • Windows Server 2016

How to Help

I am looking for help in the following areas:

  • If you have a file system that runs on FUSE please consider porting it to WinFsp. WinFsp has a native API, but it also has a FUSE (high-level) API.
  • If you are working with a language other than C/C++ (e.g. Delphi, Java, etc.) and you are interested in porting/wrapping WinFsp I would love to hear from you.
  • There are a number of outstanding issues listed in the GitHub repository. Many of these require knowledge of Windows kernel-mode and an understanding of the internals of WinFsp so they are not for the faint of heart.

In all cases I can provide ideas and/or support.

Where to Discuss

If you wish to discuss WinFsp there are now two options:


WinFsp is available under the GPLv3 license with a special exception for Free/Libre and Open Source Software. A commercial license is also available. Please contact Bill Zissimopoulos <billziss at> for more details.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
c (14,542)ย 
windows (1,376)ย 
kernel (233)ย 
filesystem (203)ย 
driver (188)ย 
fuse (73)ย 
gplv3 (44)ย 

Find Open Source By Browsing 7,000 Topics Across 59 Categories

Advertising ๐Ÿ“ฆย 10
All Projects
Application Programming Interfaces ๐Ÿ“ฆย 124
Applications ๐Ÿ“ฆย 192
Artificial Intelligence ๐Ÿ“ฆย 78
Blockchain ๐Ÿ“ฆย 73
Build Tools ๐Ÿ“ฆย 113
Cloud Computing ๐Ÿ“ฆย 80
Code Quality ๐Ÿ“ฆย 28
Collaboration ๐Ÿ“ฆย 32
Command Line Interface ๐Ÿ“ฆย 49
Community ๐Ÿ“ฆย 83
Companies ๐Ÿ“ฆย 60
Compilers ๐Ÿ“ฆย 63
Computer Science ๐Ÿ“ฆย 80
Configuration Management ๐Ÿ“ฆย 42
Content Management ๐Ÿ“ฆย 175
Control Flow ๐Ÿ“ฆย 213
Data Formats ๐Ÿ“ฆย 78
Data Processing ๐Ÿ“ฆย 276
Data Storage ๐Ÿ“ฆย 135
Economics ๐Ÿ“ฆย 64
Frameworks ๐Ÿ“ฆย 215
Games ๐Ÿ“ฆย 129
Graphics ๐Ÿ“ฆย 110
Hardware ๐Ÿ“ฆย 152
Integrated Development Environments ๐Ÿ“ฆย 49
Learning Resources ๐Ÿ“ฆย 166
Legal ๐Ÿ“ฆย 29
Libraries ๐Ÿ“ฆย 129
Lists Of Projects ๐Ÿ“ฆย 22
Machine Learning ๐Ÿ“ฆย 347
Mapping ๐Ÿ“ฆย 64
Marketing ๐Ÿ“ฆย 15
Mathematics ๐Ÿ“ฆย 55
Media ๐Ÿ“ฆย 239
Messaging ๐Ÿ“ฆย 98
Networking ๐Ÿ“ฆย 315
Operating Systems ๐Ÿ“ฆย 89
Operations ๐Ÿ“ฆย 121
Package Managers ๐Ÿ“ฆย 55
Programming Languages ๐Ÿ“ฆย 245
Runtime Environments ๐Ÿ“ฆย 100
Science ๐Ÿ“ฆย 42
Security ๐Ÿ“ฆย 396
Social Media ๐Ÿ“ฆย 27
Software Architecture ๐Ÿ“ฆย 72
Software Development ๐Ÿ“ฆย 72
Software Performance ๐Ÿ“ฆย 58
Software Quality ๐Ÿ“ฆย 133
Text Editors ๐Ÿ“ฆย 49
Text Processing ๐Ÿ“ฆย 136
User Interface ๐Ÿ“ฆย 330
User Interface Components ๐Ÿ“ฆย 514
Version Control ๐Ÿ“ฆย 30
Virtualization ๐Ÿ“ฆย 71
Web Browsers ๐Ÿ“ฆย 42
Web Servers ๐Ÿ“ฆย 26
Web User Interface ๐Ÿ“ฆย 210