All Projects → dpc → Rdedup

dpc / Rdedup

Data deduplication engine, supporting optional compression and public key encryption.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Rdedup

Kopia
Cross-platform backup tool for Windows, macOS & Linux with fast, incremental backups, client-side end-to-end encryption, compression and data deduplication. CLI and GUI included.
Stars: ✭ 507 (-26.52%)
Mutual labels:  deduplication, backup, encryption
Photos
[DEPRECATED] Encrypted, secure, decentralized personal data wallet -- technology behind textile.photos
Stars: ✭ 236 (-65.8%)
Mutual labels:  backup, encryption
Agent
The best way to backup and restore your database
Stars: ✭ 80 (-88.41%)
Mutual labels:  backup, encryption
dedupsqlfs
Deduplicating filesystem via Python3, FUSE and SQLite
Stars: ✭ 24 (-96.52%)
Mutual labels:  backup, deduplication
Borgmatic
Simple, configuration-driven backup software for servers and workstations
Stars: ✭ 902 (+30.72%)
Mutual labels:  deduplication, backup
Bash Snippets
A collection of small bash scripts for heavy terminal users
Stars: ✭ 8,558 (+1140.29%)
Mutual labels:  backup, encryption
Restic
Fast, secure, efficient backup program
Stars: ✭ 15,105 (+2089.13%)
Mutual labels:  deduplication, backup
Duplicati
Store securely encrypted backups in the cloud!
Stars: ✭ 6,915 (+902.17%)
Mutual labels:  backup, encryption
zpaqfranz
Deduplicating archiver with encryption and paranoid-level tests. Swiss army knife for the serious backup and disaster recovery manager. Ransomware neutralizer. Win/Linux/Unix
Stars: ✭ 86 (-87.54%)
Mutual labels:  backup, deduplication
paperback
Paper backup generator suitable for long-term storage.
Stars: ✭ 517 (-25.07%)
Mutual labels:  backup, encryption
Nfreezer
nFreezer is an encrypted-at-rest backup tool.
Stars: ✭ 259 (-62.46%)
Mutual labels:  backup, encryption
Frost
A backup program that does deduplication, compression, encryption
Stars: ✭ 25 (-96.38%)
Mutual labels:  backup, deduplication
Signal Back
Decrypt Signal encrypted backups outside the app
Stars: ✭ 468 (-32.17%)
Mutual labels:  backup, encryption
Backup
Easy full stack backup operations on UNIX-like systems.
Stars: ✭ 4,682 (+578.55%)
Mutual labels:  backup, encryption
Secured Preference Store
A cryptography library and a SharedPreferences wrapper for Android that encrypts the content with 256 bit AES encryption. The Encryption key is securely stored in device's KeyStore.
Stars: ✭ 562 (-18.55%)
Mutual labels:  encryption
Android Goldfinger
Android library to simplify Biometric authentication implementation.
Stars: ✭ 608 (-11.88%)
Mutual labels:  encryption
Fingerprintmanager
A small library to handle Android fingerprint API.
Stars: ✭ 560 (-18.84%)
Mutual labels:  encryption
Velero
Backup and migrate Kubernetes applications and their persistent volumes
Stars: ✭ 5,864 (+749.86%)
Mutual labels:  backup
Bareos
Main repository with the code for the libraries and daemons
Stars: ✭ 651 (-5.65%)
Mutual labels:  backup
Darkwire.io
End-to-end encrypted instant web chat
Stars: ✭ 594 (-13.91%)
Mutual labels:  encryption

Travis CI Build Status crates.io Gitter Chat

rdedup

rdedup is a data deduplication engine and a backup software. See current project status and original use case description wiki pages.

rdedup is generally similar to existing software like duplicacy, restic, attic, duplicity, zbackup, etc., with a skew towards asymmetric encryption and synchronization friendly data model. Thanks to Rust and solid architecture, rdedup is also exteremely performant and very reliable (no data-loss bugs ever reported).

rdedup is written in Rust and provides both command line tool and library API (rdedup-lib). The library can be used to embed the core engine into other applications, or building custom frontends and tools.

Features

  • simple but solid cryptography:
    • libsodium based
    • public-key encryption mode (the only tool like that I'm aware of, and primary reason rdedup was created)
  • flat-file synchronization friendly (Dropbox/syncthing, rsync, rclone)
  • immutable data-conflict-free data store
  • cloud backends are WIP
  • incremental, scalable garbage collection
  • variety of supported algorithms:
    • chunking: fastcdc, gear, bup
    • hashing: blake2b, sha256
    • compression: zstd, deflate, xz2, bzip2, none
    • encryption: curve25519, none
    • very easy to add new ones
    • check rdedup init --help output for up-to-date list
  • extreme performance and parallelism - see Rust fearless concurrency in rdedup
  • reliability focus (eg. rdedup is using fsync + rename to avoid data corruption even in case of a hardware crash)
  • built-in time/performance profiler

Strong parts

It's written in Rust. It's a modern language, that is actually really nice to use. Rust makes it easy to have a very robust and fast software.

The author is a nice person, welcomes contributions, and helps users. Or at least he's trying... :)

Shortcomings and missing features:

rdedup currently does not implement own backup/restore functionality (own directory traversal), and because of that it's typically paired with tar or rdup tools. Built-in directory traversal could improve deduplication ratio for workloads with many small, frequently changing files.

Cloud storage integrations are missing. The architecture to support it is mostly implemented, but the actual backends are not.

Installation

If you have cargo installed:

cargo install rdedup

If not, I highly recommend installing rustup (think pip, npm but for Rust)

If you're interested in running rdedup with maximum possible performance, try:

RUSTFLAGS="-C target-cpu=native" cargo install rdedup --vers ...

In case of troubles, check rdedup building issues or report a new one (sorry)!

Usage

See rdedup -h for help.

Rdedup always operates on a repo, that you provide as an argument (eg. --dir <DIR>), or via environment variable (eg. RDEDUP_DIR).

Supported commands:

  • rdedup init - create a new repo.
    • rdedup init --help for repository configuration options.
  • rdedup store <name> - store data from standard input under a given name.
  • rdedup load <name> - load data stored under given name and write it to standard output.
  • rdedup rm <name> - remove the given name.
  • rdedup ls - list all stored names.
  • rdedup gc - remove any no longer reachable data.

In combination with rdup this can be used to store and restore your backup like this:

rdup -x /dev/null "$HOME" | rdedup store home
rdedup load home | rdup-up "$HOME.restored"

rdedup is data agnostic, so formats like tar, cpio and other will work, but to get benefits of deduplication, archive format should not be compressed or encrypted already.

RDEDUP_PASSPHRASE environment variable

If RDEDUP_PASSPHRASE is defined, it will be used instead of interactively asking user for password.

License

rdedup is licensed under: MPL-2.0

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].