Dokan Library

Dokan (ドカン [土管?], "earthen pipe") is a software interface for Microsoft Windows that lets programmers create virtual file systems without writing a kernel-level driver. This is achieved by running file system code in user space while the Dokan kernel driver translates the request for Windows Kernel. It offers compatibility with the FUSE file system by using a wrapper that can be built with Cygwin and MinGW.

Dokan is free software released under the terms of the LGPL and MIT License.

History
The Dokan project was originally created and maintained by Hiroki Asakawa from 2007 to 2011, up to version 0.6.0. It was hosted on Google Code. Asakawa was supported by a 2006 grant from the Japanese Information-technology Promotion Agency on a related subject.

Since then it was maintained by the community on a fork called DokanX.

As the development of DokanX slowed in 2014, the French company ISLOG took over with its own fork called Dokany, actively maintained by Adrien Jund (aka "Liryna Stark") and formerly used to be co-maintained by Maxime Chamley. The drivers are now code signed by this company.

Uses
Dokan is particularly useful for writing to a Virtual File System without requiring Windows Kernel knowledge. It gives one the ability to mount a virtual hard drive that contains whatever the developer wants to show, making it an alternative to the professionally developed CBFS Connect library. It can be absolutely virtual using memory like a ramdisk or show remote data like FTP, SSH, Samba, and databases as local storage that can be listed, read, written, and deleted.

Dokan is written in C. It provides bindings in .NET, Java, Ruby, Delphi, and Rust.

Example uses

 * DokanCloudFS: Access to different cloud storage services as virtual driver (OneDrive, Google Drive, MEGA, ...).
 * Dokan SSHFS: SSH File System
 * MLVFS: Magic Lantern Video File System
 * Win-SSHFS: SSH with SSH.NET File System
 * encfs4win : Encryption File System
 * Opendedup CDFS: Deduplication Based File System
 * Dokan NFC: RFID / NFC File System
 * vramfs on Windows: VRAMFS on Windows - Create a file system in VRAM
 * kbfs: Keybase Filesystem (KBFS), a distributed filesystem with end-to-end encryption and a global namespace.