Skip to content
yinzhenyu-suPublic

About

qrypt is a cloud disk aggregation mounting tool that supports end-to-end encryption, content rapid upload, and unifies S3, WebDAV, and other types of storage into a local file system.

Topics

Resources

Stars

112 stars

Watchers

0 watching

Forks

Latest commit

 

History

599 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

中文版

qrypt

CI Contract Tests Nightly Quality Gates Go License Release Platforms

qrypt turns your cloud drives into one encrypted local folder — mount it, open it, use it like any other drive.

Encryption comparison

Features

  • FUSE mount — mounts all configured drives as subdirectories under one local directory
  • rclone-compatible encryption — filename obfuscation and content encryption compatible with rclone crypt
  • Pluggable cloud drive backends — see supported drivers for the full list
  • Local read cache — caches remote file data locally for fast repeated access
  • Staged writes — new files and modifications are written locally first, then uploaded asynchronously with configurable debounce, concurrency, and retry
  • Platform-native FUSE — macOS (macFUSE), Linux (libfuse), Windows (WinFsp)
  • macOS friendly — suppresses Apple Double metadata files and extended attributes clutter in Finder
  • Diagnostics — debug socket with structured JSON reports, health tracking per mount, consistency checks, and staging inspection
  • Bandwidth control — per-direction download and upload rate limiting
  • Config auto-discovery — searches ./qrypt.toml, ~/.qrypt/qrypt.toml, then $XDG_CONFIG_HOME/qrypt/qrypt.toml on Unix or %AppData%\qrypt\qrypt.toml on Windows

Requirements

Dependency macOS Linux Windows
FUSE macFUSE none (libfuse3 statically linked) WinFsp
Go (source build only) 1.27+ 1.27+ 1.27+

The fs commands (list, cat, get, put) do not require FUSE — only mount does. Config files are discovered automatically; you can skip --config when the file is at one of the standard paths (see CLI Reference).

Quick Start

  1. Download the latest release for your platform.
  2. Create qrypt.toml:
mount_point = "~/Qrypt"

[[mounts]]
name = "local"
type = "localfs"

[mounts.params]
root_path = "/tmp/qrypt-data"

[mounts.encryption]
password = "my-password"
filename_encryption = "standard"
filename_encoding = "base32"
# content_dedup = false  # true improves instant upload/dedup but leaks content equality

3.1 Run without mounting:

mkdir -p /tmp/qrypt-data
./qrypt fs list /
echo "hello qrypt" > /tmp/hello.txt
./qrypt fs put /tmp/hello.txt /local/hello.txt
./qrypt fs cat /local/hello.txt

Check the backend storage — filenames are obfuscated:

ls /tmp/qrypt-data

Output similar to:

b4l6gr1s6t1q0tas6dl0q0mb0s62kbj0

Both the original filename and content are encrypted.

3.2 Mount and use like a local folder:

./qrypt mount

Open ~/Qrypt in your file manager — drag, drop, open files as if they were local. Everything is encrypted on the backend.

Extended walkthrough → docs/for-user/quickstart.md.

User Documentation

Developer Documentation

Building from Source

Requires Go 1.27+ and FUSE headers (libfuse3-dev on Linux, macFUSE on macOS). Linux builds use FUSE3 by default; mounting also requires the fuse3 runtime and /dev/fuse. Legacy FUSE2 builds can be produced with -tags fuse2.

git clone https://github.com/yinzhenyu-su/qrypt.git
cd qrypt
go build ./cmd/qrypt

License

MIT

About

qrypt is a cloud disk aggregation mounting tool that supports end-to-end encryption, content rapid upload, and unifies S3, WebDAV, and other types of storage into a local file system.

Topics

Resources

Stars

112 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages