All Projects → dokan-dev → Dokany

dokan-dev / Dokany

User mode file system library for windows with FUSE Wrapper

Programming Languages

c
50402 projects - #5 most used programming language
SourcePawn
201 projects
C++
36643 projects - #6 most used programming language
NASL
115 projects
SWIG
194 projects
powershell
5483 projects

Projects that are alternatives of or similar to Dokany

Winfsp
Windows File System Proxy - FUSE for Windows
Stars: ✭ 4,071 (+0.39%)
Mutual labels:  fuse, driver, filesystem
Exfat
Free exFAT file system implementation
Stars: ✭ 528 (-86.98%)
Mutual labels:  fuse, driver, filesystem
Driver.NET
Lightweight and flexible library to load and communicate with kernel drivers on Windows.
Stars: ✭ 59 (-98.55%)
Mutual labels:  driver, drivers
ratarmount
Random Access Read-Only Tar Mount
Stars: ✭ 217 (-94.65%)
Mutual labels:  fuse, filesystem
Goofys
a high-performance, POSIX-ish Amazon S3 file system written in Go
Stars: ✭ 3,932 (-3.03%)
Mutual labels:  fuse, filesystem
webfuse
websocket filesystem based on libfuse
Stars: ✭ 23 (-99.43%)
Mutual labels:  fuse, filesystem
fuse xattrs
add xattrs support using sidecar files.
Stars: ✭ 28 (-99.31%)
Mutual labels:  fuse, filesystem
ext2py
The slowest ext2fs driver ever! (in Python)
Stars: ✭ 14 (-99.65%)
Mutual labels:  fuse, filesystem
fuse-nfs-crossbuild-scripts
fuse-nfs for windows using dokany
Stars: ✭ 35 (-99.14%)
Mutual labels:  fuse, filesystem
Flydrive
☁️ Flexible and Fluent framework-agnostic driver based system to manage storage in Node.js
Stars: ✭ 275 (-93.22%)
Mutual labels:  driver, filesystem
Jnr Fuse
FUSE implementation in Java using Java Native Runtime (JNR)
Stars: ✭ 266 (-93.44%)
Mutual labels:  fuse, filesystem
Btfs
A bittorrent filesystem based on FUSE.
Stars: ✭ 2,984 (-26.41%)
Mutual labels:  fuse, filesystem
loggedfs-python
Filesystem monitoring with Fuse and Python
Stars: ✭ 21 (-99.48%)
Mutual labels:  fuse, filesystem
vk-music-fs
FUSE file system for VK audios
Stars: ✭ 34 (-99.16%)
Mutual labels:  fuse, filesystem
acid-store
A library for secure, deduplicated, transactional, and verifiable data storage
Stars: ✭ 48 (-98.82%)
Mutual labels:  fuse, filesystem
DuckOS
Such OS; Very Duck!
Stars: ✭ 16 (-99.61%)
Mutual labels:  userland, sys
rtl88x2BU WiFi linux v5.2.4.1 22719 COEX20170518-4444.20170613
rtl88x2bu driver updated for modern kernels.
Stars: ✭ 26 (-99.36%)
Mutual labels:  driver, drivers
book linuxkernel blockdrv
Learn how multi-queue block device in Linux kernel v4.4 works
Stars: ✭ 69 (-98.3%)
Mutual labels:  driver, device-driver
dokan-delphi
Dokan Delphi Wrapper
Stars: ✭ 48 (-98.82%)
Mutual labels:  driver, dokan-library
redis-fs
Mount a Redis database as a filesystem using fuse.
Stars: ✭ 76 (-98.13%)
Mutual labels:  fuse, filesystem

Dokany

Github All Releases Build status Quality Gate Status Codacy Badge CII Best Practices FOSSA Status | Bounty | Average time to resolve an issue Percentage of issues still open

Dokan Demo

What is Dokan

When you want to create a new file system on Windows, other than FAT or NTFS, you need to develop a file system driver. Developing a device driver that works in kernel mode on windows is extremely technical. By using Dokan, you can create your own file systems very easily without writing device drivers. Dokan is similar to FUSE (Linux file system in user space) but works on Windows. Moreover, dokany includes a FUSE wrapper that helps you to port your FUSE filesystems without changes.

What is Dokany

Dokany is a fork of Dokan 0.6.0 with bug fixes, clean change history and updated to build with latest tools.

Because the original Dokan Legacy (< 0.6.0) project is no longer maintained.

Since version 0.8.0, dokany broke compatibility with the dokan API. See Choose a version for more information.

Signed x86 / x64 / ARM / ARM64 drivers are provided at each release.

Licensing

Dokan contains LGPL and MIT licensed programs.

  • user-mode library (dokan1.dll) LGPL
  • driver (dokan1.sys) LGPL
  • network library (dokannp1.dll) LGPL
  • fuse library (dokanfuse1.dll) LGPL
  • installer (DokanSetup.exe) LGPL
  • control program (dokanctl.exe) MIT
  • samples (mirror.exe / memfs.exe) MIT

For details, please check the license files.

  • LGPL license.lgpl.txt
  • MIT license.mit.txt

You can obtain source files from https://dokan-dev.github.io

Environment

Dokan works on

  • Windows Server 2019 / 2016 / 2012 (R2) / 2008 R2 SP1
  • Windows 10 / 8.1 / 8 / 7 SP1

Platform

  • x86
  • x64
  • ARM
  • ARM64

How it works

Dokan library contains a user mode DLL (dokan1.dll) and a kernel mode file system driver (dokan1.sys). Once the Dokan file system driver is installed, you can create file systems which can be seen as normal file systems in Windows. The application that creates file systems using Dokan library is called File system application.

File operation requests from user programs (e.g., CreateFile, ReadFile, WriteFile, ...) will be sent to the Windows I/O subsystem (runs in kernel mode) which will subsequently forward the requests to the Dokan file system driver (dokan1.sys). By using functions provided by the Dokan user mode library (dokan1.dll), file system applications are able to register callback functions to the file system driver. The file system driver will invoke these callback routines in order to respond to the requests it received. The results of the callback routines will be sent back to the user program.

For example, when Windows Explorer requests to open a directory, the CreateFile with Direction option request will be sent to Dokan file system driver and the driver will invoke the CreateFile callback provided by the file system application. The results of this routine are sent back to Windows Explorer as the response to the CreateFile request. Therefore, the Dokan file system driver acts as a proxy between user programs and file system applications. The advantage of this approach is that it allows programmers to develop file systems in user mode which is safe and easy to debug.

To learn more about Dokan file system development, see the API documentation and the samples, especially dokan_memfs.

Build

In short, download and install the Visual Studio 2019, select Windows 10 SDK component during the install or from the Tools menu & install the WDK 10

For details, see the build page.

Installation

For manual installation, see the installation page.

Contribute

You want Dokan to get better? Contribute!

Learn the code and suggest your changes on GitHub repository.

Detect defects and report them on GitHub issue tracker.

Ask and answer questions on Github Discussions or Google discussion group.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].