A Go tool that mounts multiple cloud drives and S3/WebDAV-style storage as one local folder, with rclone-compatible end-to-end encryption.
rfjakob/gocryptfs
An encrypted overlay filesystem in Go that mounts a folder of ciphertext as a readable plaintext view via FUSE.
Open-source alternative to:Cryptomator
VeraCrypt
- Stars
- 4,652
- Forks
- 303
- Open issues
- 67
- Last commit
- 20 days ago
What is it?
gocryptfs keeps your files encrypted on disk and presents them as normal, decrypted files through a mount point. You create an encrypted directory with a single init command, then mount it to a second directory; anything written to the mount is encrypted into the backing folder, and the backing folder can be synced or backed up without exposing plaintext.
It is built on the go-fuse FUSE library and was designed as a successor to EncFS that addresses its security weaknesses. Content is encrypted with AES-GCM by default, with XChaCha20-Poly1305 available as an option for CPUs without AES acceleration, and a reverse mode exposes an encrypted view of a plaintext directory. The project includes fsck, password-change, and a stable CLI ABI for scripting.
Linux is the primary platform, macOS support is described as beta, and Windows users are pointed to a separate C++ reimplementation.
Key features
- 01Transparently encrypts file contents and file names in a backing directory.
- 02Mounts through FUSE so existing applications can read and write normally.
- 03Offers AES-GCM and XChaCha20-Poly1305 content encryption.
- 04Provides a reverse mode that exposes an encrypted view of a plaintext folder.
- 05Includes fsck, password change, and a stable CLI interface for scripts.
Use cases
- Encrypting a local folder that is synced to cloud storage or a NAS.
- Keeping sensitive documents encrypted at rest on a Linux laptop.
- Creating encrypted backups that can be copied without exposing plaintext.
- Calling gocryptfs from scripts or GUI front-ends such as SiriKali.
Quick start
- 1
Install from your distribution's package manager (Debian/Ubuntu)
apt install gocryptfs - 2
Create cipher and plain folders
mkdir cipher plain - 3
Initialize the encrypted folder
./gocryptfs -init cipher - 4
Mount the encrypted folder as a plaintext view
./gocryptfs cipher plain
Things to know
- Native platform is Linux; macOS support is beta and Windows needs a separate project.
- The FUSE package from your distribution must be installed for mounting to work.
Topics
FAQ
- What is gocryptfs?
- An encrypted overlay filesystem in Go that mounts a folder of ciphertext as a readable plaintext view via FUSE. gocryptfs keeps your files encrypted on disk and presents them as normal, decrypted files through a mount point. You create an encrypted directory with a single init command, then mount it to a second directory; anything written to the mount is encrypted into the backing folder, and the backing folder can be synced or backed up without exposing plaintext.
- Is gocryptfs free to use? What license does it have?
- gocryptfs is open source under the MIT license. Check the license terms before using it in commercial products.
- Is gocryptfs still maintained?
- Actively maintained. The last commit to gocryptfs was on Oct 1, 2026.
- What can I use gocryptfs for?
- Encrypting a local folder that is synced to cloud storage or a NAS. Keeping sensitive documents encrypted at rest on a Linux laptop. Creating encrypted backups that can be copied without exposing plaintext. Calling gocryptfs from scripts or GUI front-ends such as SiriKali.
- How do I install gocryptfs?
- Install from your distribution's package manager (Debian/Ubuntu): apt install gocryptfs Create cipher and plain folders: mkdir cipher plain Initialize the encrypted folder: ./gocryptfs -init cipher Mount the encrypted folder as a plaintext view: ./gocryptfs cipher plain
- Where can I get gocryptfs?
- The source code and installation instructions are on GitHub: https://github.com/rfjakob/gocryptfs
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Open-source software for managing, storing, and distributing secrets, certificates, and keys, forked from HashiCorp Vault's open-source lineage.
Command-line tool to sync, copy and mount files across more than 70 cloud storage providers and local storage, described as rsync for the cloud.
Free open-source backup client that stores encrypted, incremental, compressed backups on cloud storage and remote file servers.
Deduplicating backup program with optional compression and authenticated encryption, storing only changed chunks of data.
Open-source tool for securely storing, accessing, and auditing secrets such as API keys, passwords, and certificates, with encryption as a service.