Skip to content

Introduction

DittoFS is a modular virtual filesystem written entirely in Go. It decouples file access protocols from storage backends, so you can serve the same files over NFSv3, NFSv4, NFSv4.1, and SMB2/3 from pluggable metadata and block stores. It runs entirely in userspace, with no FUSE and no kernel modules, and ships as a single binary.

  • Protocol adapters — NFS and SMB can run at the same time on one server.
  • Control plane — central management of users, groups, shares, and configuration through a REST API.
  • Shares — the export points clients mount, each referencing specific stores.
  • Named store registry — reusable store instances shared across exports.
  • Pluggable storage — mix metadata stores (memory, BadgerDB, PostgreSQL) and block stores (filesystem, S3) per share.