126.96.36.1990 / December 16, 2019 (2019-12-16)
|Platform||IA-32, x64, Cygwin, MinGW|
|Type||Virtual file system, Fuse|
|License||LGPL and MIT|
Dokan (Japanese: ドカン [土管?], "earthen pipe") is a software interface for 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.
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 J. and Maxime C. The drivers are now code signed by this company.
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 ram disk or show remote data like FTP, SSH, Samba, and databases as local storage that can be listed, read, written and deleted.
- 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.