Dokan ( ja, ドカン
��管?}, "earthen pipe") is a
software interface
In computing, an interface is a shared boundary across which two or more separate components of a computer system exchange information. The exchange can be between software, computer hardware, peripheral devices, humans, and combinations of thes ...
for
Microsoft Windows that lets programmers create
virtual file system
A virtual file system (VFS) or virtual filesystem switch is an abstract layer on top of a more concrete file system. The purpose of a VFS is to allow client applications to access different types of concrete file systems in a uniform way. A VFS ...
s without writing a kernel-level driver. This is achieved by running file system code in
user space
A modern computer operating system usually segregates virtual memory into user space and kernel space. Primarily, this separation serves to provide memory protection and hardware protection from malicious or errant software behaviour.
Kerne ...
while the Dokan kernel driver translates the request for
Windows Kernel. It offers compatibility with the
FUSE
Fuse or FUSE may refer to:
Devices
* Fuse (electrical), a device used in electrical systems to protect against excessive current
** Fuse (automotive), a class of fuses for vehicles
* Fuse (hydraulic), a device used in hydraulic systems to prote ...
file system by using a wrapper that can be built with
Cygwin
Cygwin ( ) is a POSIX-compatible programming and runtime environment that runs natively on Microsoft Windows. Under Cygwin, source code designed for Unix-like operating systems may be compiled with minimal modification and executed.
The Cygwin i ...
and
MinGW
MinGW ("Minimalist GNU for Windows"), formerly mingw32, is a free and open source software development environment to create Microsoft Windows applications.
MinGW includes a port of the GNU Compiler Collection (GCC), GNU Binutils for Windows ...
.
Dokan is
free software
Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, ...
released under the terms of the
LGPL and
MIT License
The MIT License is a permissive free software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts only very limited restriction on reuse and has, therefore, high license co ...
.
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
Google Developers (previously Google Code) , application programming interfaces (APIs), and technical resources. The site contains documentation on using Google developer tools and APIs—including discussion groups and blogs for developers usi ...
. Asakawa was supported by a 2006 grant from the Japanese on a related subject.
Since then it was maintained by the community on a
fork
In cutlery or kitchenware, a fork (from la, furca ' pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tines with which one can spear foods ...
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.
Uses
Dokan is particularly useful for writing to a
Virtual File System
A virtual file system (VFS) or virtual filesystem switch is an abstract layer on top of a more concrete file system. The purpose of a VFS is to allow client applications to access different types of concrete file systems in a uniform way. A VFS ...
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 develope
CBFS Connectlibrary. It can be absolutely virtual using memory like a
ramdisk or show remote data like
FTP
The File Transfer Protocol (FTP) is a standard communication protocol used for the transfer of computer files from a server to a client on a computer network. FTP is built on a client–server model architecture using separate control and data ...
,
SSH
The Secure Shell Protocol (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network. Its most notable applications are remote login and command-line execution.
SSH applications are based on a ...
,
Samba
Samba (), also known as samba urbano carioca (''urban Carioca samba'') or simply samba carioca (''Carioca samba''), is a Brazilian music genre that originated in the Afro-Brazilian communities of Rio de Janeiro in the early 20th century. Havi ...
, and
databases
In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases spa ...
as local storage that can be listed, read, written, and deleted.
Dokan is written in
C. It provides bindings in
.NET,
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
,
Ruby
A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum (aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sapp ...
,
Delphi
Delphi (; ), in legend previously called Pytho (Πυθώ), in ancient times was a sacred precinct that served as the seat of Pythia, the major oracle who was consulted about important decisions throughout the ancient classical world. The oracl ...
, and
Rust
Rust is an iron oxide, a usually reddish-brown oxide formed by the reaction of iron and oxygen in the catalytic presence of water or air moisture. Rust consists of hydrous iron(III) oxides (Fe2O3·nH2O) and iron(III) oxide-hydroxide (FeO(OH), ...
.
References
External links
*
*
The now-defunct Dokan Google Forum
Example uses
DokanCloudFS Access to different
cloud storage service
A file-hosting service, cloud-storage service, online file-storage provider, or cyberlocker is an internet hosting service specifically designed to host user files. It allows users to upload files that could be accessed over the internet afte ...
s 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
{{Webarchive, url=https://web.archive.org/web/20110704045259/http://members.ferrara.linux.it/freddy77/encfs.html , date=2011-07-04 : 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.
Free software programmed in C
Userspace file systems