A high-performance encrypted backup tool built in Koder Lang. Deduplicate, compress, and encrypt your data with client-side encryption and push it to any storage backend — local, S3, SFTP, or Koder Cloud. Restore any file from any point in time in seconds.
require "koder-backup" def main repo = Repo.open("s3://my-backups/server1") # Back up a directory repo.backup( paths: ["/home", "/etc", "/var/lib/postgres"], exclude: ["*.tmp", ".cache"], tags: ["daily"], ) # Restore a single file from yesterday repo.restore("/home/user/doc.txt", { snapshot: "latest-1" }) end
Everything you need, built from the ground up.
Only store unique data chunks. Back up 1 TB of data that's 95% unchanged and transfer just 50 MB. Saves storage and bandwidth dramatically.
Data is encrypted with AES-256-GCM before it leaves your machine. Your backup provider never sees your plaintext data — not even metadata.
Browse and restore any file from any snapshot instantly. No need to download the entire backup — mount it as a virtual filesystem and access individual files.
Store backups on local disk, S3, B2, GCS, Azure Blob, SFTP, Restic-compatible repos, or any combination. Mirror to multiple backends for redundancy.
Every backup is incremental at the block level, but every snapshot is a full restore point. No more worrying about full vs. incremental backup chains.
Built in Koder Lang with zero GC pauses. Backs up 100 GB in under 2 minutes on modern hardware with parallel chunking and compression.
Automatically prune old snapshots while keeping the ones that matter.
policy = RetentionPolicy {
keep_last: 7,
keep_daily: 30,
keep_weekly: 12,
keep_monthly: 24,
keep_yearly: 5,
end
repo.prune(policy)
Consistent backups for databases with pre/post hooks and streaming.
db_backup = DatabaseBackup.new( type: "postgresql", connection: "postgres://localhost/mydb", method: "streaming", # No table locks ) repo.backup_database(db_backup)
See how Koder Backup stacks up against the competition.
| Feature | Koder Backup | Restic | BorgBackup | Duplicati | Veeam |
|---|---|---|---|---|---|
| Content-addressable deduplication | ✓ | ✓ | ✓ | ✓ | ✓ |
| Client-side encryption by default | ✓ | ✓ | ✓ | ✓ | — |
| Mount snapshots as virtual filesystem | ✓ | ✓ | ✓ | — | — |
| Parallel multi-core compression | ✓ | — | Partial | — | ✓ |
| Multi-backend mirroring | ✓ | — | — | — | ✓ |
| Database-aware backups | ✓ | — | — | — | ✓ |
| Single binary, zero dependencies | ✓ | ✓ | — | — | — |
| Sub-2-minute backup for 100 GB | ✓ | — | — | — | Partial |
Koder Backup uses the same content-addressable deduplication approach as Restic but adds parallel multi-core compression, database-aware backups, multi-backend mirroring, and significantly faster backup and restore speeds.
Yes. Koder Backup supports streaming backups for PostgreSQL, MySQL, MongoDB, and Redis — taking consistent snapshots without locking tables or stopping services.
Anywhere — local disk, S3-compatible storage (AWS, MinIO, Backblaze B2), Google Cloud Storage, Azure Blob, SFTP servers, or Koder Cloud. You can mirror to multiple backends simultaneously.
Yes. Mount any snapshot as a virtual filesystem (FUSE) and browse individual files. Or use the restore command with a path filter to download just what you need.
Koder Backup uses AES-256-GCM for data encryption and Argon2id for key derivation. All encryption happens client-side before data leaves your machine. Your storage provider never sees plaintext data.
Encrypted, deduplicated backups in seconds