Skip to content
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
Cannot retrieve contributors at this time

|GitHub license| |Language: Go| |Twitter| |Donate via Patreon| |Donate via GitHub Sponsors| |Donate via Liberapay| |Donate via PayPal| |Matrix|

zrepl - ZFS replication

zrepl is a one-stop, integrated solution for ZFS replication.

  Job: prod_to_backups
  Type: push
      Attempt #1
      Status: fan-out-filesystems
      Progress: [=========================\----] 246.7 MiB / 264.7 MiB @ 11.5 MiB/s
        zroot              STEPPING (step 1/2, 624 B/1.2 KiB) next: @a => @b
        zroot/ROOT         DONE (step 2/2, 1.2 KiB/1.2 KiB)
      * zroot/ROOT/default STEPPING (step 1/2, 123.4 MiB/129.3 MiB) next: @a => @b
        zroot/tmp          STEPPING (step 1/2, 29.9 KiB/44.2 KiB) next: @a => @b
        zroot/usr          STEPPING (step 1/2, 624 B/1.2 KiB) next: @a => @b
      * zroot/usr/home     STEPPING (step 1/2, 123.3 MiB/135.3 MiB) next: @a => @b
        zroot/var          STEPPING (step 1/2, 624 B/1.2 KiB) next: @a => @b
        zroot/var/audit    DONE (step 2/2, 1.2 KiB/1.2 KiB)
        zroot/var/crash    DONE (step 2/2, 1.2 KiB/1.2 KiB)
        zroot/var/log      STEPPING (step 1/2, 22.0 KiB/29.2 KiB) next: @a => @b
        zroot/var/mail     STEPPING (step 1/2, 624 B/1.2 KiB) next: @a => @b
  Pruning Sender:
  Pruning Receiver:

Getting started

The :ref:`10 minute quick-start guides <quickstart-toc>` give you a first impression.

Main Features

  • Filesystem replication
    • [x] Pull & Push mode
    • [x] Multiple :ref:`transport modes <transport>`: TCP, TCP + TLS client auth, SSH
    • Advanced replication features
      • [x] Automatic retries for temporary network errors
      • [x] Automatic resumable send & receive
      • [x] Automatic ZFS holds during send & receive
      • [x] Automatic bookmark & hold management for guaranteed incremental send & recv
      • [x] Encrypted raw send & receive to untrusted receivers (OpenZFS native encryption)
      • [x] Properties send & receive
      • [x] Compressed send & receive
      • [x] Large blocks send & receive
      • [x] Embedded data send & receive
      • [x] Resume state send & receive
      • [x] Bandwidth limiting
  • Automatic snapshot management
  • Sophisticated Monitoring & Logging
  • Maintainable implementation in Go
    • [x] Cross platform
    • [x] Dynamic feature checking
    • [x] Type safe & testable code


zrepl as well as this documentation is still under active development. There is no stability guarantee on the RPC protocol or configuration format, but we do our best to document breaking changes in the :ref:`changelog`.


We are happy about any help we can get!

  • :ref:`Financial Support <supporters>`
  • Explore the codebase
    • These docs live in the docs/ subdirectory
  • Document any non-obvious / confusing / plain broken behavior you encounter when setting up zrepl for the first time
  • Check the Issues and Projects sections for things to do. The good first issues and docs are suitable starting points.

Development Workflow

The GitHub repository is where all development happens. Make sure to read the Developer Documentation section and open new issues or pull requests there.

Table of Contents

.. toctree::
   :maxdepth: 2
   :caption: Contents:

   GitHub Repository & Issue Tracker <>
   Chat: Matrix <>