What is it?
===========

dedup is a deduplicating backup program.

Getting started
===============

To use dedup you have to first initialize a repository:

    dup-init repo

dup-init(1) will create a storage file and an archive directory inside
the repository.  The storage file contains all the unique blocks of
the repository.  The archive directory contains all snapshots.

dedup only handles a single file at a time, so using tar is advised.
To deduplicate a directory tree invoke dup-pack(1) as follows:

    tar -cf - ~/dir | dup-pack -r repo foo

This will create a new snapshot called foo under repo/archive/.

To extract the snapshot:

    dup-unpack -r repo foo | tar -xf -

Encrypting a dedup repository
=============================

First a secret key has to be generated using dup-keygen(1).  This is a
256-bit symmetric key.

    dup-keygen keyfile

Initialize the repo and select XChaCha20-Poly1305 as the encryption
algorithm:

    dup-init -k keyfile -E XChaCha20-Poly1305 repo

To create a snapshot named foo:

    tar -cf - ~/dir | dup-pack -k keyfile -r repo foo

To extract the snapshot:

    dup-unpack -k keyfile -r repo foo | tar -xf -

All tools require the -k option when operating on an encrypted dedup
repository.

Portability
===========

dedup works on Linux, *BSD, macOS and possibly other UNIX-like systems.

Dependencies
============

  - snappy
  - liblz4
  - libsodium

Contact
=======

You can reach us through irc.2f30.org/6697 at #2f30 or
irc.freenode.net/6697 at #bitreich-en.
