winfsp/doc/Home.md
2018-01-11 17:25:17 -08:00

2.1 KiB

WinFsp - Windows File System Proxy

WinFsp-Icon.png

Developing file systems is a challenging proposition. Developing file systems for Windows is an order of magnitude more difficult. WinFsp eases the task of writing a new file system for Windows. WinFsp file systems are user mode programs and they can be written in a variety of languages and frameworks.

The documentation available here discusses various aspects of WinFsp.

Programming

  • The Tutorial describes how to create a simple, but complete file system in C/C++.
  • The API Reference describes the native WinFsp API. This external link may be easier to browse for some people.
  • There is also a FUSE compatibility layer for native Windows and Cygwin. See fuse.h in the source repository.
  • This document discusses the need for both a native API and FUSE and gives some pointers on which one to choose.

Design

  • The Design document describes the high-level design of WinFsp.
  • The IPC document offers insights into the WinFsp Inter-Process Communication mechanism.
  • The Queued Events document discusses a low-level synchronization primitive that is largely responsible for the excellent performance of the WinFsp IPC mechanism.
  • The Service Architecture document discusses how to intergrate a file system into Windows as a service and the reasons to do so.
  • The SSHFS Port Case Study document chronicles the creation of the WinFsp-FUSE compatibility layer and the decisions that led to its design.

Testing

  • The Testing document discusses the WinFsp testing strategy and how WinFsp achieves correctness and stability.
  • The Performance document compares WinFsp performance against other file systems.

Compatibility

  • The Compatibility document discusses current WinFsp compatibility with NTFS.

WinFsp is available under the GPLv3 license with a special exception for Free/Libre and Open Source Software.