diff --git a/pkgs/tools/backup/diskrsync/default.nix b/pkgs/tools/backup/diskrsync/default.nix
new file mode 100644
index 000000000000..b04a1dab40f5
--- /dev/null
+++ b/pkgs/tools/backup/diskrsync/default.nix
@@ -0,0 +1,27 @@
+{ buildGoPackage, fetchFromGitHub, stdenv }:
+
+buildGoPackage rec {
+
+  name = "${pname}-${version}";
+  pname = "diskrsync";
+  version = "unstable-2018-02-03";
+
+  src = fetchFromGitHub {
+    owner = "dop251";
+    repo = pname;
+    rev = "2f36bd6e5084ce16c12a2ee216ebb2939a7d5730";
+    sha256 = "1rpfk7ds4lpff30aq4d8rw7g9j4bl2hd1bvcwd1pfxalp222zkxn";
+  };
+
+  goPackagePath = "github.com/dop251/diskrsync";
+  goDeps = ./deps.nix;
+
+  meta = with stdenv.lib; {
+    description = "Rsync for block devices and disk images";
+    homepage = https://github.com/dop251/diskrsync;
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ jluttine ];
+  };
+
+}
diff --git a/pkgs/tools/backup/diskrsync/deps.nix b/pkgs/tools/backup/diskrsync/deps.nix
new file mode 100644
index 000000000000..684100968e88
--- /dev/null
+++ b/pkgs/tools/backup/diskrsync/deps.nix
@@ -0,0 +1,21 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+  {
+    goPackagePath = "github.com/dop251/spgz";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dop251/spgz";
+      rev = "d50e5e978e08044da0cf9babc6b42b55ec8fe0d5";
+      sha256 = "11h8z6cwxw272rn5zc4y3w9d6py113iaimy681v6xxv26d30m8bx";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev = "1875d0a70c90e57f11972aefd42276df65e895b9";
+      sha256 = "1kprrdzr4i4biqn7r9gfxzsmijya06i9838skprvincdb1pm0q2q";
+    };
+  }
+]
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 908d1a8f7bbd..22ce05089f85 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1811,6 +1811,8 @@ with pkgs;
 
   dev86 = callPackage ../development/compilers/dev86 { };
 
+  diskrsync = callPackage ../tools/backup/diskrsync { };
+
   djbdns = callPackage ../tools/networking/djbdns { };
 
   dnscrypt-proxy = callPackage ../tools/networking/dnscrypt-proxy { };