gnu: Add pijul.

OpenSubmitted by John Soo.
Details
6 participants
  • Efraim Flashner
  • John Soo
  • Julien Lepiller
  • Ludovic Courtès
  • Nicolas Goaziou
  • zimoun
Owner
unassigned
Severity
normal
J
J
John Soo wrote on 11 Oct 2020 18:58
(address . guix-patches@gnu.org)
87lfgcog2g.fsf@asu.edu
Hi Guix,

I've had these patches for a while and debated whether they should be
merged. Pijul works but 2.0 is reportedly being worked on. I haven't
seen much news on version 2 so I think 1.0 should be made available to
try.

Kindly,

John
From 882b34866b574b229d3b3ceed252603dde3559cc Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 15:26:07 -0700
Subject: [PATCH 01/57] gnu: Add rust-termios-0.2.

* gnu/packages/crates-io.scm (rust-termios-0.2): New variable.
---
gnu/packages/crates-io.scm | 14 ++++++++++++++
1 file changed, 14 insertions(+)

Toggle diff (27 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index a614703541..bac099cbf7 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -25142,6 +25142,20 @@ bindings are a small wrapper around the raw C functions, which converts integer
 return values to @code{std::io::Result} to indicate success or failure.")
     (license license:expat)))
 
+(define-public rust-termios-0.2
+  (package
+    (inherit rust-termios-0.3)
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "termios" version))
+       (file-name
+        (string-append (package-name rust-termios-0.3) "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0fk8nl0rmk43jrh6hjz6c6d83ri7l6fikag6lh0ffz3di9cwznfm"))))))
+
 (define-public rust-termize-0.1
   (package
     (name "rust-termize")
-- 
2.28.0
From 0bb9a80460b4c4e74bfaf6df367709b6baac3f55 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Fri, 28 Aug 2020 09:47:18 -0700
Subject: [PATCH 2/2] Add lld to rust inputs.

---
gnu/packages/rust.scm | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)

Toggle diff (37 lines)
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 75853d66fc..d7933cc4bc 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -1355,6 +1355,9 @@ move around."
           "0ww4z2v3gxgn3zddqzwqya1gln04p91ykbrflnpdbmcd575n8bky")))
     (package
       (inherit base-rust)
+      (inputs
+       `(("lld" ,lld-9)
+         ,@(package-inputs base-rust)))
       (native-inputs
        `(("node" ,node)
          ,@(package-native-inputs base-rust)))
@@ -1362,7 +1365,6 @@ move around."
        (substitute-keyword-arguments (package-arguments base-rust)
          ((#:phases phases)
           `(modify-phases ,phases
-             (delete 'check)
              (add-after 'override-jemalloc 'enable-wasm32-unknown-unknown
                (lambda* (#:key inputs #:allow-other-keys)
                  (substitute* "config.toml"
@@ -1381,8 +1383,10 @@ move around."
           (inherit (package-source base-rust))
           (patches (search-patches "rust-1.45-linker-locale.patch"))))
       (inputs
-       (alist-replace "llvm" (list llvm-10)
-                      (package-inputs base-rust)))
+       (alist-replace
+        "lld" (list lld-9)
+        (alist-replace "llvm" (list llvm-10)
+                       (package-inputs base-rust))))
       (arguments
         (substitute-keyword-arguments (package-arguments base-rust)
           ((#:phases phases)
-- 
2.28.0
From 586e97a168220a3c6da2f3eaeb75ae29626c9703 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 15:27:39 -0700
Subject: [PATCH 02/57] gnu: Add rust-rust-base58-0.0.

* gnu/packages/crates-io.scm (rust-rust-base58-0.0): New variable.
---
gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index bac099cbf7..7e07db1b81 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -19807,6 +19807,33 @@ hashing function.")
 password hashing function.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-rust-base58-0.0
+  (package
+    (name "rust-rust-base58")
+    (version "0.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rust-base58" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0fa4y2jjjmg1a0cr3gz4z8rkic0hx2vx5nm23za9lwf6rlgvj4xk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-num" ,rust-num-0.1))
+       #:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.4))))
+    (home-page "https://github.com/nham/rust-base58")
+    (synopsis
+     "Simple library for converting to and from base-58 strings")
+    (description
+     "Convert to and from base-58 strings with a simple Rust api.
+ Currently the conversion uses the Bitcoin base58 alphabet.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-rust-hawktracer-0.7
   (package
     (name "rust-rust-hawktracer")
-- 
2.28.0
From 7037be603d16dbf56e10e680da332ea16f5c49e6 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 15:28:40 -0700
Subject: [PATCH 03/57] gnu: Add rust-base58-0.1.

* gnu/packages/crates-io.scm (rust-base58-0.1): New variable.
---
gnu/packages/crates-io.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 7e07db1b81..0dca0ab32d 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -1119,6 +1119,27 @@ trace (backtrace) at runtime in a Rust program.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-base58-0.1
+  (package
+    (name "rust-base58")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "base58" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "10xfw6v7jzn9i682mkw9nqybzafrvl3i2wawwgp5a8gh2n0fw92h"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/debris/base58")
+    (synopsis "Tiny and fast base58 encoding")
+    (description "Encode to base58 using only Rust. This package is based on
+@url{https://github.com/trezor/trezor-crypto/blob/master/base58.c} at commit
+c6e7d37.  However, this package works only up to 128 bytes.")
+    (license license:expat)))
+
 (define-public rust-base64-0.12
   (package
     (name "rust-base64")
-- 
2.28.0
From c3cb1f98ac25d2ecfb0af3d178b894e0dfd844b7 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 15:29:05 -0700
Subject: [PATCH 04/57] gnu: Add rust-bs58-0.2.

* gnu/packages/crates-io.scm (rust-bs58-0.2): New variable.
---
gnu/packages/crates-io.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 0dca0ab32d..cac2fdc2ed 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -2126,6 +2126,38 @@ extension of blocks.")
 Bresenham's line algorithm.")
     (license license:expat)))
 
+(define-public rust-bs58-0.2
+  (package
+    (name "rust-bs58")
+    (version "0.2.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bs58" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "125i962x0m0ggdif6ds51wfif2lypiicy469dj5j2l6rm6xycpn9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-sha2" ,rust-sha2-0.8))
+       #:cargo-development-inputs
+       (("rust-assert-matches" ,rust-assert-matches-1.3)
+        ("rust-base58" ,rust-base58-0.1)
+        ("rust-rust-base58" ,rust-rust-base58-0.0))))
+    (home-page
+     "https://github.com/mycorrhiza/bs58-rs")
+    (synopsis "Another Base58 codec implementation")
+    (description
+     "Another Base58 codec implementation.  Compared to the base58 crate this
+is significantly faster at decoding (about 2.4x as fast when decoding 32
+bytes), almost the same speed for encoding (about 3% slower when encoding 32
+bytes), doesn't have the 128 byte limitation and supports a configurable
+alphabet.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-bstr-0.2
   (package
     (name "rust-bstr")
-- 
2.28.0
From 2317a99e53cfc70adafb568f8f570fceaebed2d0 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 15:29:29 -0700
Subject: [PATCH 05/57] gnu: Add rust-cryptovec-0.4.

* gnu/packages/crates-io.scm (rust-cryptovec-0.4): New variable.
---
gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index cac2fdc2ed..46330f1874 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -4619,6 +4619,33 @@ Code} (MAC) algorithms.")
         ("rust-generic-array" ,rust-generic-array-0.12)
         ("rust-subtle" ,rust-subtle-1.0))))))
 
+(define-public rust-cryptovec-0.4
+  (package
+    (name "rust-cryptovec")
+    (version "0.4.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cryptovec" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1n88dmhfb2dxs48zllq1g1dya76zx4fajw482qy8jj4hgg1da4p4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-kernel32-sys" ,rust-kernel32-sys-0.2)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://pijul.org/cryptovec")
+    (synopsis
+     "A vector which zeroes its memory on clears and reallocations")
+    (description
+     "This package provides a vector which zeroes its memory on clears
+and reallocations.")
+    (license license:asl2.0)))
+
 (define-public rust-cssparser-0.27
   (package
     (name "rust-cssparser")
-- 
2.28.0
From 62c46f496534ec7c9ef7d665e3cda312cd2f9984 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 15:29:51 -0700
Subject: [PATCH 06/57] gnu: Add rust-getch-0.2.

* gnu/packages/crates-io.scm (rust-getch-0.2): New variable.
---
gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 46330f1874..600ccf55c6 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -8722,6 +8722,33 @@ API library @code{gdi32}.")
      "This package provides a package for generating 3D meshes/")
     (license license:asl2.0)))
 
+(define-public rust-getch-0.2
+  (package
+    (name "rust-getch")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "getch" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "00in8q95qi8a5q3zn2zcaqp5avj79f5myd2a4zfdy2m24ycvbc5v"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-termios" ,rust-termios-0.2))))
+    (home-page
+     "https://nest.pijul.com/pijul_org/getch")
+    (synopsis
+     "Portable implementation of getch")
+    (description
+     "This package provides a portable implementation of getch, using
+_getch on Windows, and termios on Unix.")
+    (license license:asl2.0)))
+
 (define-public rust-getopts-0.2
   (package
     (name "rust-getopts")
-- 
2.28.0
From 412bb60907da8484d869e19bd4d5ec70c38a11f4 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 15:37:16 -0700
Subject: [PATCH 07/57] gnu: Add rust-diffs-0.3.

* gnu/packages/crates-io.scm (rust-diffs-0.3): New variable.
---
gnu/packages/crates-io.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 600ccf55c6..11d4b9a668 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -5620,6 +5620,30 @@ structs and enums.")
        #:cargo-development-inputs
        (("rust-term" ,rust-term-0.2))))))
 
+(define-public rust-diffs-0.3
+  (package
+    (name "rust-diffs")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "diffs" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "036sqycmir4bbl4016jprsyjq4hicc31r68dyqadmc8ac9pk55d1"))))
+    (build-system cargo-build-system)
+    (home-page
+     "https://nest.pijul.com/pijul_org/pijul")
+    (synopsis
+     "A number of diff algorithms, also called longest common subsequence")
+    (description
+     "This package provides a number of diff algorithms, also called longest
+common subsequence.  The diff algorithms include Myer's diff and Patience
+diff.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-digest-0.9
   (package
     (name "rust-digest")
-- 
2.28.0
From 04f5b17a9033203da9d9f6acf4b77d3c8a2d2ca9 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 15:50:51 -0700
Subject: [PATCH 08/57] gnu: Add rust-sanakirja-0.10.

* gnu/packages/crates-io.scm (rust-sanakirja-0.10): New variable.
---
gnu/packages/crates-io.scm | 41 ++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)

Toggle diff (54 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 11d4b9a668..4a2ee14cff 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -21308,6 +21308,47 @@ paths point to the same file.")
        #:cargo-development-inputs
        (("rust-rand" ,rust-rand-0.3))))))
 
+(define-public rust-sanakirja-0.10
+  (package
+    (name "rust-sanakirja")
+    (version "0.10.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "sanakirja" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1fhn5lb6jn0pimnk0nbf5h4xvp28xdkdh33d57gq1ixy8b2y091y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-fs2" ,rust-fs2-0.4)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-memmap" ,rust-memmap-0.7)
+        ("rust-rand" ,rust-rand-0.4)
+        ("rust-uuid" ,rust-uuid-0.7))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-hex" ,rust-hex-0.3)
+        ("rust-tempdir" ,rust-tempdir-0.3))))
+    (home-page
+     "https://nest.pijul.com/pijul_org/sanakirja")
+    (synopsis
+     "A key-value dictionary, using copy-on-write and B trees")
+    (description
+     "This package provides a key-value dictionary, using copy-on-write and B
+trees.  It features:
+@itemize
+@item ACID semantics.
+@item B trees with copy-on-write.
+@item Support for referential transparency: databases can be cloned in time
+O(log n) (where n is the size of the database). This was the original
+motivation for writing this library.
+@end itemize")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-scan-fmt-0.2
   (package
     (name "rust-scan-fmt")
-- 
2.28.0
From 4c12edf964fa846b067328dba4036385bedf4aea Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 15:55:21 -0700
Subject: [PATCH 09/57] gnu: Add rust-buffered-reader-0.9.

* gnu/packages/crates-io.scm (rust-buffered-reader-0.9): New variable.
---
gnu/packages/crates-io.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 4a2ee14cff..8221eb8eff 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -2206,6 +2206,35 @@ UTF-8.")
         (base32
          "0nzi9vqhl56ws8gq39f3aj4qjrr4l3g5lbkkcj8xq1x4cb74wq2r"))))))
 
+(define-public rust-buffered-reader-0.9
+  (package
+    (name "rust-buffered-reader")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "buffered-reader" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "05rklfiia1k4c4ifpim08l22i0q0l3j9xdg2yh3njrp6w58z6z13"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bzip2" ,rust-bzip2-0.3)
+        ("rust-flate2" ,rust-flate2-1.0)
+        ("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://sequoia-pgp.org/")
+    (synopsis "A super-powered Reader")
+    (description
+     "Like the @code{BufRead} trait, the @code{BufferedReader} trait has an
+internal buffer that is directly exposed to the user.  This design enables two
+performance optimizations.  First, the use of an internal buffer amortizes
+system calls.  Second, exposing the internal buffer allows the user to work
+with data in place, which avoids another copy.")
+    (license license:gpl3)))
+
 (define-public rust-bumpalo-3
   (package
     (name "rust-bumpalo")
-- 
2.28.0
From 34a7200205ee507264f7a327708f6eeeac121c1d Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:07:16 -0700
Subject: [PATCH 10/57] gnu: Add rust-sequoia-rfc2822-0.9.

* gnu/packages/crates-io.scm (rust-sequoia-rfc2822-0.9): New variable.
---
gnu/packages/crates-io.scm | 39 ++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)

Toggle diff (52 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 8221eb8eff..2a021cfdba 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -21978,6 +21978,45 @@ proven statistical guarantees.")
          (base32
           "18vhypw6zgccnrlm5ps1pwa0khz7ry927iznpr88b87cagr1v2iq"))))))
 
+(define-public rust-sequoia-rfc2822-0.9
+  (package
+    (name "rust-sequoia-rfc2822")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "sequoia-rfc2822" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1aj34i6862718m162rqfv69fkmvdw063s6ws7hbp42n73gb08p5c"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-failure" ,rust-failure-0.1)
+        ("rust-lalrpop-util" ,rust-lalrpop-util-0.17))
+       #:cargo-development-inputs
+       (("rust-lalrpop" ,rust-lalrpop-0.17)
+        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-quickcheck" ,rust-quickcheck-0.8)
+        ("rust-rand" ,rust-rand-0.4))))
+    (home-page "https://sequoia-pgp.org/")
+    (synopsis "An RFC 2822 name-addr parser")
+    (description
+     "Currently, this crate only recognizes the RFC 2822 name-addr and
+addr-spec productions, i.e., things of the form:
+
+@example{Name (Comment) <email@example.org>}
+
+and
+
+@example{email@example.org}
+
+Although the above appear simple to parse, RFC 2822's whitespace and comment
+rules are rather complex.  This crate implements the whole grammar." )
+    (license license:gpl3)))
+
 (define-public rust-serde-1
   (package
     (name "rust-serde")
-- 
2.28.0
From ca5c03d825c7d54a67997a805404a9c699873feb Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Thu, 18 Jun 2020 15:13:55 -0700
Subject: [PATCH 11/57] gnu: rust-nettle-sys-2: do not skip build.

* gnu/packages/crates-io.scm (rust-nettle-2-sys): [arguments] Change
cargo-development-inputs into cargo-inputs since they are required to
build. Do not skip build.
---
gnu/packages/crates-io.scm | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

Toggle diff (16 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 2a021cfdba..9018bf8f99 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -13988,8 +13988,7 @@ cryptographic library.")
     (inputs
      `(("nettle", nettle)))
     (arguments
-     `(#:skip-build? #t
-       #:cargo-development-inputs
+     `(#:cargo-inputs
        (("rust-bindgen" ,rust-bindgen-0.51)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (home-page "https://gitlab.com/sequoia-pgp/nettle-sys")
-- 
2.28.0
From cb9c5078c439e4a18276518ded16fdccacb04eaf Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Thu, 18 Jun 2020 14:50:52 -0700
Subject: [PATCH 12/57] gnu: Add rust-nettle-5.

* gnu/packages/crates-io.scm (rust-nettle-5): New variable.
---
gnu/packages/crates-io.scm | 14 ++++++++++++++
1 file changed, 14 insertions(+)

Toggle diff (27 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 9018bf8f99..57cd64e888 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -13969,6 +13969,20 @@ types as proposed in RFC 1158.")
 cryptographic library.")
   (license (list license:lgpl3 license:gpl2 license:gpl3))))
 
+(define-public rust-nettle-5
+  (package
+    (inherit rust-nettle-7)
+    (version "5.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "nettle" version))
+       (file-name
+        (string-append (package-name rust-nettle-7) "-" version ".tar.gz"))
+       (sha256
+        (base32 "0zfplqdf3mag8r7lc124hl24vri8yg711jmm8gl1mpwnlhass2n4"))
+       (patches (search-patches "rust-nettle-disable-vendor.patch"))))))
+
 (define-public rust-nettle-sys-2
   (package
     (name "rust-nettle-sys")
-- 
2.28.0
From adb7d036fc995895d03b2a33e719b4cfc359c4fe Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:08:02 -0700
Subject: [PATCH 13/57] gnu: Add rust-sequoia-openpgp-0.9.

* gnu/packages/crates-io.scm (rust-sequoia-openpgp-0.10): New variable.
---
gnu/packages/crates-io.scm | 50 ++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)

Toggle diff (63 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 57cd64e888..5b2051b9fa 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -21991,6 +21991,56 @@ proven statistical guarantees.")
          (base32
           "18vhypw6zgccnrlm5ps1pwa0khz7ry927iznpr88b87cagr1v2iq"))))))
 
+(define-public rust-sequoia-openpgp-0.9
+  (package
+    (name "rust-sequoia-openpgp")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "sequoia-openpgp" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "007h2pi7lcph5jf5bxjydm7hjwjai33yk6dic3cxknki22lxlkfw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-buffered-reader" ,rust-buffered-reader-0.9)
+        ("rust-bzip2" ,rust-bzip2-0.3)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-flate2" ,rust-flate2-1.0)
+        ("rust-idna" ,rust-idna-0.1)
+        ("rust-lalrpop" ,rust-lalrpop-0.17)
+        ("rust-lalrpop-util" ,rust-lalrpop-util-0.17)
+        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-memsec" ,rust-memsec-0.5)
+        ("rust-nettle" ,rust-nettle-5)
+        ("rust-quickcheck" ,rust-quickcheck-0.8)
+        ("rust-rand" ,rust-rand-0.4)
+        ("rust-safemem" ,rust-safemem-0.3)
+        ("rust-sequoia-rfc2822" ,rust-sequoia-rfc2822-0.9)
+        ("rust-time" ,rust-time-0.1))
+       #:cargo-development-inputs
+       (("rust-lalrpop" ,rust-lalrpop-0.17)
+        ("rust-rpassword" ,rust-rpassword-4))))
+    (home-page "https://sequoia-pgp.org/")
+    (synopsis
+     "OpenPGP data types and associated machinery")
+    (description
+     "This crate aims to provide a complete implementation of OpenPGP as
+defined by RFC 4880 as well as some extensions (e.g., RFC 6637, which
+describes ECC cryptography for OpenPGP.  This includes support for unbuffered
+message processing.
+
+A few features that the OpenPGP community considers to be deprecated (e.g.,
+version 3 compatibility) have been left out.  We have also updated some
+OpenPGP defaults to avoid foot guns (e.g., we selected modern algorithm
+defaults).  If some functionality is missing, please file a bug report."  )
+    (license license:gpl3)))
+
 (define-public rust-sequoia-rfc2822-0.9
   (package
     (name "rust-sequoia-rfc2822")
-- 
2.28.0
From a3f339276e5d91f37bb9ff7ee0c81ae8e33f5eaa Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:11:21 -0700
Subject: [PATCH 14/57] gnu: Add rust-libpijul-0.12.

* gnu/package/crates-io.scm (rust-libpijul-0.12): New variable.
---
gnu/packages/crates-io.scm | 57 ++++++++++++++++++++++++++++++++++++++
1 file changed, 57 insertions(+)

Toggle diff (70 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 5b2051b9fa..a7392099e9 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -11995,6 +11995,63 @@ functions and static variables these libraries contain.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-libpijul-0.12
+  (package
+    (name "rust-libpijul")
+    (version "0.12.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libpijul" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "18d9n8xaq5ncq3375f0xrr96l8si1frczgzdlrz3fl1jby8vbl6f"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-bincode" ,rust-bincode-1)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-bs58" ,rust-bs58-0.2)
+        ("rust-byteorder" ,rust-byteorder-1.3)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-diffs" ,rust-diffs-0.3)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-flate2" ,rust-flate2-1.0)
+        ("rust-hex" ,rust-hex-0.3)
+        ("rust-ignore" ,rust-ignore-0.4)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-rand" ,rust-rand-0.4)
+        ("rust-sanakirja" ,rust-sanakirja-0.10)
+        ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-0.9)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-tempdir" ,rust-tempdir-0.3)
+        ("rust-toml" ,rust-toml-0.5))))
+    (home-page "https://pijul.org/")
+    (synopsis
+     "Library component of the pijul version control system")
+    (description
+     "This crate contains the core API to access Pijul repositories.
+
+The key object is a @code{Repository}, on which @code{Txn} (immutable
+transactions) and @code{MutTxn} (mutable transactions) can be started, to
+perform a variety of operations.
+
+Another important object is a @code{Patch}, which encodes two different pieces
+of information:
+
+@itemize
+@item Information about deleted and inserted lines between two versions of a
+file.
+@item Information about file moves, additions and deletions.
+@end itemize")
+    (license license:gpl2+)))
+
 (define-public rust-libsqlite3-sys-0.15
   (package
     (name "rust-libsqlite3-sys")
-- 
2.28.0
From 5fa25b844f008ad93c96f72bc92c3d060d5c3dd0 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:16:18 -0700
Subject: [PATCH 15/57] gnu: Add rust-line-0.1.

* gnu/packages/crates-io.scm (rust-line-0.1): New variable.
---
gnu/packages/crates-io.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index a7392099e9..c8ab67688f 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -12115,6 +12115,39 @@ known as zlib).")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-line-0.1
+  (package
+    (name "rust-line")
+    (version "0.1.15")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "line" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0pissvrl5398701zlfd22w51ca32vhw83vbsl58a330hr4w5ra04"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-utf8parse" ,rust-utf8parse-0.1))))
+    (home-page "")
+    (synopsis
+     "Rust implementation of line editing in a terminal")
+    (description
+     "The main goals of this library are:
+
+@itemize
+@item Portability: should work on any system (Unix or Windows).
+@item Support: was written for a real-world project (Pijul), so support is
+unlikely to stop soon.
+@item Output quality: avoid usual blinking terminal lines that older C
+libraries have.
+@end itemize")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-line-wrap-0.1
   (package
     (name "rust-line-wrap")
-- 
2.28.0
From fde26fdb3957b0e913be89254bda76c28f50429d Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:18:54 -0700
Subject: [PATCH 16/57] gnu: Add rust-pathdiff-0.1.

* gnu/packages/crates-io.scm (rust-pathdiff-0.1): New variable.
---
gnu/packages/crates-io.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index c8ab67688f..64456d4c53 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -16258,6 +16258,29 @@ synchronization primitives.")
      "Implementation detail of the paste crate.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-pathdiff-0.1
+  (package
+    (name "rust-pathdiff")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pathdiff" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0cfg3isnx6mf3wbi7rsg4nmvywby40sbcs589n20fgi09l4p1gx3"))))
+    (build-system cargo-build-system)
+    (home-page
+     "https://github.com/Manishearth/pathdiff")
+    (synopsis
+     "Library for diffing paths to obtain relative paths")
+    (description
+     "Use diff_paths to construct a relative path from a provided base
+directory path to the provided path.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-pbkdf2-0.4
   (package
     (name "rust-pbkdf2")
-- 
2.28.0
From 8133438aeae00863dc3fbe6111b75913b49d50f1 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:21:43 -0700
Subject: [PATCH 17/57] gnu: Add rust-progrs-0.1.

* gnu/packages/crates-io.scm (rust-progrs-0.1): New variable.
---
gnu/packages/crates-io.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 64456d4c53..118ae10e84 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -17834,6 +17834,39 @@ macro use case.")
 @code{proc_macro_derive} pretend to be @code{proc_macro}.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-progrs-0.1
+  (package
+    (name "rust-progrs")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "progrs" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "108jx8jrv2r1brhvbqfw6fwx298k5fnw3m46kn7lv0jx2wmf0ifz"))))
+    (build-system cargo-build-system)
+    (home-page
+     "https://nest.pijul.com/laumann/progrs")
+    (synopsis
+     "A small library for displaying compact progress bars")
+    (description
+     "There are a number of libraries out there that can be used for progress
+display, but in the author's opinion these libraries do it almost right -
+either they eat up too much screen real estate (by not sticking to one line
+per thing that should use progress) or they try to align stuff left and right.
+
+In the author's humble opinion, the best example of just the right amount of
+information vs screen real-estate is in the Git progress output (when cloning,
+pulling, etc).  It uses one line per thing, and may display both percentage
+complete (in cases where it's known) and even throughput (for network
+transfer).
+
+This library mimics the Git way of showing progress.")
+    (license license:gpl2+)))
+
 (define-public rust-proptest-0.9
   (package
     (name "rust-proptest")
-- 
2.28.0
From 9c5358ec4c33f6b9c36746e1f21020036736cbb5 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:24:13 -0700
Subject: [PATCH 18/57] gnu: Add rust-rpassword-2.1.0.

* gnu/packages/crates-io.scm (rust-rpassword-2.1.0): New variable.
---
gnu/packages/crates-io.scm | 15 +++++++++++++++
1 file changed, 15 insertions(+)

Toggle diff (28 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 118ae10e84..1e239c9cb1 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -20027,6 +20027,21 @@ rust.")
 console applications.")
   (license license:asl2.0)))
 
+(define-public rust-rpassword-2.1.0
+  (package
+    (inherit rust-rpassword-4)
+    (version "2.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rpassword" version))
+       (file-name
+        (string-append
+         (package-name rust-rpassword-4) "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1v255xqkig5lwnczvm3achydhxx6kf9jcdxdlgzndgpd18bp6x6k"))))))
+
 (define-public rust-rusqlite-0.19
   (package
     (name "rust-rusqlite")
-- 
2.28.0
From cbca72eb4c64337a50efff2d831131797f567763 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:33:19 -0700
Subject: [PATCH 19/57] gnu: Add rust-cookie-0.12.

* gnu/packages/crates-io.scm (rust-cookie-0.12): New variable.
---
gnu/packages/crates-io.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 1e239c9cb1..2b8fb1a50c 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -3900,6 +3900,35 @@ It is inspired by the Linux kernel's @code{crypto_memneq}.")
 semantics than those provided by @code{as} or @code{From}/@code{Into}.")
     (license license:expat)))
 
+(define-public rust-cookie-0.12
+  (package
+    (name "rust-cookie")
+    (version "0.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cookie" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1mdvqixahcywvqp0y8k2skkgbpfhsp0w73l9mz93dcrx1gq091l8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-ring" ,rust-ring-0.16)
+        ("rust-time" ,rust-time-0.1)
+        ("rust-url" ,rust-url-1.7))))
+    (home-page
+     "https://github.com/alexcrichton/cookie-rs")
+    (synopsis
+     "Crate for parsing HTTP cookie headers and managing a cookie jar")
+    (description
+     "Parse HTTP cookie headers and manage a cookie jar with this crate.
+It supports signed and private (encrypted + signed) jars.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-cordic-0.1
   (package
     (name "rust-cordic")
-- 
2.28.0
From 349285a83a07fffe534d84ffe707b43f93f6b602 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:41:31 -0700
Subject: [PATCH 20/57] gnu: Add rust-publicsuffix-1.5.

* gnu/packages/crates-io.scm (rust-publicsuffix-1.5): New variable.
---
gnu/packages/crates-io.scm | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)

Toggle diff (49 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 2b8fb1a50c..f47999104a 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -18040,6 +18040,42 @@ This library mimics the Git way of showing progress.")
 stack pointer and inspect the properties of the stack.")
     (license (list license:isc license:asl2.0))))
 
+(define-public rust-publicsuffix-1.5
+  (package
+    (name "rust-publicsuffix")
+    (version "1.5.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "publicsuffix" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "040mrdpzj9lv5djxfksq2nbk29baiv3hx6gca2cfpcp23nl5kwlv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-error-chain" ,rust-error-chain-0.12)
+        ("rust-idna" ,rust-idna-0.2)
+        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-native-tls" ,rust-native-tls-0.2)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-url" ,rust-url-2.1))
+       #:cargo-development-inputs
+       (("rust-rspec" ,rust-rspec-1))))
+    (home-page
+     "https://github.com/rushmorem/publicsuffix")
+    (synopsis
+     "Robust domain name parsing and RFC compliant email address validation")
+    (description
+     "This library uses Mozilla's Public Suffix List to reliably parse domain
+names and email addresses in Rust.  Though parsing domain names is it's
+primary goal, it also fully exposes the list allowing you to use convenient
+methods like @code{list.all()} to get all known domain extensions or
+@code{list.icann()} to get only ICANN extensions.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-pulldown-cmark-0.4
   (package
     (name "rust-pulldown-cmark")
-- 
2.28.0
From b39a2c686c3d68b165debec8d03cfb9c74c42d68 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:42:35 -0700
Subject: [PATCH 21/57] gnu: Add rust-cookie-store-0.7.

* gnu/packages/crates-io.scm (rust-cookie-store-0.7): New variable.
---
gnu/packages/crates-io.scm | 40 ++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (53 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index f47999104a..ba64af26e8 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -3929,6 +3929,46 @@ semantics than those provided by @code{as} or @code{From}/@code{Into}.")
 It supports signed and private (encrypted + signed) jars.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-cookie-store-0.7
+  (package
+    (name "rust-cookie-store")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cookie-store" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "174i9k9g62pfx7y1nqynywdpjplkl3j4hi3ck6bz2r996qzhnxa6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cookie" ,rust-cookie-0.12)
+        ("rust-idna" ,rust-idna-0.1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-publicsuffix" ,rust-publicsuffix-1.5)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-time" ,rust-time-0.1)
+        ("rust-try-from" ,rust-try-from-0.3)
+        ("rust-url" ,rust-url-1.7))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-pretty-assertions"
+         ,rust-pretty-assertions-0.6))))
+    (home-page
+     "https://github.com/pfernie/cookie_store")
+    (synopsis
+     "Implementation of Cookie storage and retrieval per RFC6265")
+    (description
+     "This crate provides an implementation for storing and retrieving Cookies per
+the path and domain matching rules specified in RFC6265.
+
+Split from the user_agent crate.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-cordic-0.1
   (package
     (name "rust-cordic")
-- 
2.28.0
From d5406add11427657880cb4f6ae79bd9543d15851 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:47:23 -0700
Subject: [PATCH 22/57] gnu: Add rust-hyper-old-types-0.11.

* gnu/packages/crates-io.scm (rust-hyper-old-types-0.11): New variable.
---
gnu/packages/crates-io.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index ba64af26e8..7d72138cb4 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -10536,6 +10536,39 @@ SystemTime}}.")
     (description "This package provides a fast and correct HTTP library.")
     (license license:expat)) )
 
+(define-public rust-hyper-old-types-0.11
+  (package
+    (name "rust-hyper-old-types")
+    (version "0.11.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hyper-old-types" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1i69sks0bwamzqdbx8ffgkssxffv6crdmwjgl47nr5pkxi8vx5k8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-bytes" ,rust-bytes-0.4)
+        ("rust-http" ,rust-http-0.1)
+        ("rust-httparse" ,rust-httparse-1.3)
+        ("rust-language-tags" ,rust-language-tags-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-mime" ,rust-mime-0.3)
+        ("rust-percent-encoding" ,rust-percent-encoding-1.0)
+        ("rust-time" ,rust-time-0.1)
+        ("rust-unicase" ,rust-unicase-2))))
+    (home-page "https://hyper.rs")
+    (synopsis "HTTP types from hyper 0.11.x")
+    (description
+     "This package contains HTTP types from the newer hyper crate in versions
+0.11.x.")
+    (license license:expat)))
+
 (define-public rust-hyper-tls-0.3
   (package
     (name "rust-hyper-tls")
-- 
2.28.0
From d43ea56f77a9001188ab6472129bdd3b6eacaccb Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:31:32 -0700
Subject: [PATCH 23/57] gnu: Add rust-ct-logs-0.6.

* gnu/package/crates-io.scm (rust-ct-logs-0.6): New variable.
* gnu/package/crates-io.scm (rust-ct-logs-0.3): [arguments] Inherit from rust-ct-logs-0.6.
---
gnu/packages/crates-io.scm | 33 ++++++++++++++++++++++++++-------
1 file changed, 26 insertions(+), 7 deletions(-)

Toggle diff (60 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 7d72138cb4..90d55a9d30 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -4939,27 +4939,46 @@ and reallocations.")
      "Bare bones CSV parsing with no_std support.")
     (license (list license:unlicense license:expat))))
 
-(define-public rust-ct-logs-0.3
+(define-public rust-ct-logs-0.6
   (package
     (name "rust-ct-logs")
-    (version "0.3.0")
+    (version "0.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "ct-logs" version))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1f0885ws3p49xh6dfgnhh7zjw9h4rhs9ljs8i9cnkhifzz98784f"))))
+        (base32
+         "04wiwiv4ghni3x2vni3z711mlz0ndqvh04vmdkbw3nr7zbsqcdjd"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-sct" ,rust-sct-0.3))))
+     `(#:cargo-inputs (("rust-sct" ,rust-sct-0.6))))
     (home-page "https://github.com/ctz/ct-logs")
     (synopsis "Google's list of Certificate Transparency logs")
-    (description "This package contains Google's list of Certificate
+    (description
+     "This package contains Google's list of Certificate
 Transparency logs for use with sct crate.")
     (license (list license:asl2.0 license:isc license:expat))))
 
+(define-public rust-ct-logs-0.3
+  (package
+    (inherit rust-ct-logs-0.6)
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ct-logs" version))
+       (file-name
+        (string-append
+         (package-name rust-ct-logs-0.6) "-" version ".tar.gz"))
+       (sha256
+        (base32 "1f0885ws3p49xh6dfgnhh7zjw9h4rhs9ljs8i9cnkhifzz98784f"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-sct" ,rust-sct-0.3))))))
+
 (define-public rust-ctor-0.1
   (package
     (name "rust-ctor")
-- 
2.28.0
From 26e59fa50daa874d1dd170f59339a909e0693f1e Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:53:58 -0700
Subject: [PATCH 24/57] gnu: Add rust-hyper-rustls-0.18.

* gnu/packages/crates-io.scm (rust-hyper-rustls-0.18): New variable.
---
gnu/packages/crates-io.scm | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)

Toggle diff (47 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 90d55a9d30..5d811a02e3 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -10588,6 +10588,40 @@ SystemTime}}.")
 0.11.x.")
     (license license:expat)))
 
+(define-public rust-hyper-rustls-0.18
+  (package
+    (name "rust-hyper-rustls")
+    (version "0.18.0-alpha.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hyper-rustls" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "08s8c8hqgmjmv0ivavn90yxvh9vbakr4a5dzj70y0x6qc6vm0hgj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.4)
+        ("rust-ct-logs" ,rust-ct-logs-0.6)
+        ("rust-futures-preview" ,rust-futures-preview-0.3)
+        ("rust-hyper" ,rust-hyper-0.12)
+        ("rust-rustls" ,rust-rustls-0.16)
+        ("rust-tokio-io" ,rust-tokio-io-0.1)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.12)
+        ("rust-webpki" ,rust-webpki-0.21)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.17))
+       #:cargo-development-inputs
+       (("rust-tokio" ,rust-tokio-0.1))))
+    (home-page "https://github.com/ctz/hyper-rustls")
+    (synopsis
+     "Rustls+hyper integration for pure rust HTTPS")
+    (description
+     "Rustls+hyper integration for pure rust HTTPS")
+    (license (list license:asl2.0 license:isc license:expat))))
+
 (define-public rust-hyper-tls-0.3
   (package
     (name "rust-hyper-tls")
-- 
2.28.0
From 68db6d0e9b619c214fa8b386a32a5a4ecad121c2 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:58:12 -0700
Subject: [PATCH 25/57] gnu: Add rust-mime-guess-2.0.

* gnu/packages/crates-io.scm (rust-mime-guess-2.0): New version.
---
gnu/packages/crates-io.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 5d811a02e3..9000ce940b 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -13529,6 +13529,36 @@ for Rust structs.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-mime-guess-2.0
+  (package
+    (name "rust-mime-guess")
+    (version "2.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "mime-guess" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "16c5ssgali30db6jh1cndy77dd1qgcykhshiyfyjvxxf94wx03hs"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-mime" ,rust-mime-0.3)
+        ("rust-unicase" ,rust-unicase-2))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.2)
+        ("rust-unicase" ,rust-unicase-2))))
+    (home-page
+     "https://github.com/abonander/mime_guess")
+    (synopsis
+     "Detect a file's MIME type by its extension")
+    (description
+     "This crate provides MIME/MediaType guessing by file extension.  It uses
+a static map of known file extension to MIME type mappings.")
+    (license license:expat)))
+
 (define-public rust-miniz-oxide-0.3
   (package
     (name "rust-miniz-oxide")
-- 
2.28.0
From e5970c26f5ad7d6b30edb0d231dd328f688406c1 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:02:47 -0700
Subject: [PATCH 26/57] gnu: Add rust-serde-urlencoded-0.5.

* gnu/packages/crates-io.scm (rust-serde-urlencoded-0.5): New variable.
---
gnu/packages/crates-io.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 9000ce940b..407709f47d 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -22939,6 +22939,36 @@ for the serde framework.")
                ((", path = \"../serde\"") ""))
              #t)))))))
 
+(define-public rust-serde-urlencoded-0.5
+  (package
+    (name "rust-serde-urlencoded")
+    (version "0.5.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serde-urlencoded" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0nhnzllx5xrij4x17g351n14md691r95mxr7sbpz4sl80n8xcbb4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-dtoa" ,rust-dtoa-0.4)
+        ("rust-itoa" ,rust-itoa-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-url" ,rust-url-1.7))
+       #:cargo-development-inputs
+       (("rust-serde-derive" ,rust-serde-derive-1))))
+    (home-page
+     "https://github.com/nox/serde_urlencoded")
+    (synopsis "Serde support for x-www-form-urlencoded")
+    (description
+      "This package provides serde support for the x-www-form-urlencoded
+format.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-serde-yaml-0.8
   (package
     (name "rust-serde-yaml")
-- 
2.28.0
From 797080ea7f20d950a156b02475c2367be4116cc3 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:14:20 -0700
Subject: [PATCH 27/57] gnu: Add rust-socks-0.3.

* gnu/packages/crates-io.scm (rust-socks-0.3): New variable.
---
gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 407709f47d..c9da31d091 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -23985,6 +23985,33 @@ maximal amount of configuration possible intended.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-socks-0.3
+  (package
+    (name "rust-socks")
+    (version "0.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "socks" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1hnbw4c4j7dn9n3bd1v7ddkdzlxlzkfw3z29da1nxlj6jgx4r9p6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1.3)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-ws2-32-sys" ,rust-ws2-32-sys-0.2))))
+    (home-page
+     "https://github.com/sfackler/rust-socks")
+    (synopsis "Rust SOCKS proxy clients")
+    (description
+     "You can write SOCKS proxy clients with this crate.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-sourcefile-0.1
   (package
     (name "rust-sourcefile")
-- 
2.28.0
From 1336b5004db8ec511d0d9c780f1eb1ad4b0bd02b Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:14:58 -0700
Subject: [PATCH 28/57] gnu: Add rust-ipconfig-0.2.

* gnu/packages/crates-io.scm (rust-ipconfig-0.2): New variable.
---
gnu/packages/crates-io.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index c9da31d091..379501c488 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -11119,6 +11119,35 @@ whether or not a given path points to an executable file.")
     (description "Parsing ISO8601 dates using nom.")
     (license license:expat)))
 
+(define-public rust-ipconfig-0.2
+  (package
+    (name "rust-ipconfig")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ipconfig" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0gyqiqr4nk2dw9ild1aq3hnv6984sgydfdq7ki586q5ydwhzlyda"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-socket2" ,rust-socket2-0.3)
+        ("rust-widestring" ,rust-widestring-0.4)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-winreg" ,rust-winreg-0.6))))
+    (home-page
+     "https://github.com/liranringel/ipconfig")
+    (synopsis
+     "Get network adapters information and network configuration for windows")
+    (description
+     "You can get network adapters information and network configuration for
+windows with this crate.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-itertools-0.9
   (package
     (name "rust-itertools")
-- 
2.28.0
From 8e4715829ff560af12a1e2fd90199cf07f6775e7 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:27:07 -0700
Subject: [PATCH 29/57] gnu: Add rust-enum-as-inner-0.3.

* gnu/packages/crates-io.scm (rust-enum-as-inner-0.3): New variable.
---
gnu/packages/crates-io.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 379501c488..8dea2ba78d 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -6727,6 +6727,35 @@ Standard.")
      "Streaming transcoding for encoding_rs.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-enum-as-inner-0.3
+  (package
+    (name "rust-enum-as-inner")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "enum-as-inner" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0bj914fh5b57j1ij66m021l9pdhvp1bnpwpahhl4qgsjprznq2lh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-heck" ,rust-heck-0.3)
+        ("rust-proc-macro2" ,rust-proc-macro2-0.4)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-0.15))))
+    (home-page
+     "https://github.com/bluejekyll/enum-as-inner")
+    (synopsis
+     "Macro for deriving inner field accessor functions on enums")
+    (description
+     "This package provides a deriving proc-macro for generating functions to
+automatically give access to the inner members of an enum.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-env-logger-0.7
   (package
     (name "rust-env-logger")
-- 
2.28.0
From c98c5271104e3bad267a073123fb3096a104f04e Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:27:43 -0700
Subject: [PATCH 30/57] gnu: Add rust-typed-headers-0.1.

* gnu/packages/crates-io.scm (rust-typed-headers-0.1): New variable.
---
gnu/packages/crates-io.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (48 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 8dea2ba78d..f6756e65a7 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -27455,6 +27455,41 @@ serializing Rust str")
      "The arena, a fast but limited type of allocator.")
     (license license:expat)))
 
+(define-public rust-typed-headers-0.1
+  (package
+    (name "rust-typed-headers")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "typed-headers" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0g40nlq5iw0zxhwb7nfmfbr9m86abgwwhxwhzrm10nfq6bsmlvxx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-bytes" ,rust-bytes-0.4)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-http" ,rust-http-0.1)
+        ("rust-mime" ,rust-mime-0.3))))
+    (home-page
+     "https://github.com/sfackler/typed-headers")
+    (synopsis
+     "Typed HTTP header serialization and deserialization")
+    (description
+     "This crate is still in its early, experimental stages.  It currently
+takes a fairly pedantic view of parsing, and tries to support exactly what's
+specified in the HTTP RFCs.
+
+The HeaderMapExt extension trait provides new methods on the
+@code{http::HeaderMap} type to insert, retrieve, and remove headers in a typed
+manner.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-typemap-0.3
   (package
     (name "rust-typemap")
-- 
2.28.0
From c2f88b990b23345637d07ae29645d602a21a05ec Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:29:44 -0700
Subject: [PATCH 31/57] gnu: Add rust-trust-dns-proto-0.8.

* gnu/packages/crates-io.scm (rust-trust-dns-proto-0.8): New variable.
---
gnu/packages/crates-io.scm | 47 ++++++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)

Toggle diff (60 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index f6756e65a7..e0366a0c92 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -27346,6 +27346,53 @@ serializing Rust str")
      "This package provides a library for visualizing tree structured data.")
     (license license:expat)))
 
+(define-public rust-trust-dns-proto-0.8
+  (package
+  (name "rust-trust-dns-proto")
+  (version "0.8.0")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (crate-uri "trust-dns-proto" version))
+      (file-name
+        (string-append name "-" version ".tar.gz"))
+      (sha256
+        (base32
+          "1f9xjyz7fsa83dj00zif7lmljd4x420c0vmniinhb7c35777wi85"))))
+  (build-system cargo-build-system)
+  (arguments
+    `(#:cargo-inputs
+      (("rust-data-encoding" ,rust-data-encoding-2.1)
+       ("rust-enum-as-inner" ,rust-enum-as-inner-0.3)
+       ("rust-failure" ,rust-failure-0.1)
+       ("rust-futures" ,rust-futures-0.1)
+       ("rust-idna" ,rust-idna-0.1)
+       ("rust-lazy-static" ,rust-lazy-static-1.3)
+       ("rust-log" ,rust-log-0.4)
+       ("rust-openssl" ,rust-openssl-0.10)
+       ("rust-rand" ,rust-rand-0.4)
+       ("rust-ring" ,rust-ring-0.16)
+       ("rust-serde" ,rust-serde-1)
+       ("rust-smallvec" ,rust-smallvec-0.6)
+       ("rust-socket2" ,rust-socket2-0.3)
+       ("rust-tokio-executor" ,rust-tokio-executor-0.1)
+       ("rust-tokio-io" ,rust-tokio-io-0.1)
+       ("rust-tokio-reactor" ,rust-tokio-reactor-0.1)
+       ("rust-tokio-tcp" ,rust-tokio-tcp-0.1)
+       ("rust-tokio-timer" ,rust-tokio-timer-0.2)
+       ("rust-tokio-udp" ,rust-tokio-udp-0.1)
+       ("rust-url" ,rust-url-1.7))
+      #:cargo-development-inputs
+      (("rust-env-logger" ,rust-env-logger-0.6)
+       ("rust-tokio" ,rust-tokio-0.1))))
+  (home-page "http://www.trust-dns.org/index.html")
+  (synopsis
+    "Trust-DNS is a safe and secure DNS library")
+  (description
+    "Trust-DNS is a safe and secure DNS library.  This is the
+foundational DNS protocol library for all Trust-DNS projects.")
+  (license (list license:asl2.0 license:expat))))
+
 (define-public rust-try-from-0.3
   (package
     (name "rust-try-from")
-- 
2.28.0
From 30f351637b4f9f637ec83ba7a4b53669e4247556 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:32:40 -0700
Subject: [PATCH 32/57] gnu: Add rust-trust-dns-rustls-0.7.

* gnu/packages/crates-io.scm (rust-trust-dns-rustls-0.7): New variable.
---
gnu/packages/crates-io.scm | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)

Toggle diff (47 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index e0366a0c92..193a8b2cf9 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -27393,6 +27393,40 @@ serializing Rust str")
 foundational DNS protocol library for all Trust-DNS projects.")
   (license (list license:asl2.0 license:expat))))
 
+(define-public rust-trust-dns-rustls-0.7
+  (package
+    (name "rust-trust-dns-rustls")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-rustls" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0glpggq31764q7lp19h5l6implsr7ik015qkm5rg7pqwy93krsb3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures" ,rust-futures-0.1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-rustls" ,rust-rustls-0.16)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.12)
+        ("rust-tokio-tcp" ,rust-tokio-tcp-0.1)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.8)
+        ("rust-webpki" ,rust-webpki-0.21))
+       #:cargo-development-inputs
+       (("rust-openssl" ,rust-openssl-0.10)
+        ("rust-tokio" ,rust-tokio-0.1))))
+    (home-page "http://www.trust-dns.org/index.html")
+    (synopsis
+     "Trust-DNS is a safe and secure DNS library")
+    (description
+     "Trust-DNS is a safe and secure DNS library.  This is an
+extension for the Trust-DNS client to use rustls for TLS.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-try-from-0.3
   (package
     (name "rust-try-from")
-- 
2.28.0
From a38c7639443b9fef6a9d3d4201dee75e46903c9c Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:33:29 -0700
Subject: [PATCH 33/57] gnu: Add rust-trust-dns-https-0.4.

* gnu/packages/crates-io.scm (rust-trust-dns-https-0.4): New variable.
---
gnu/packages/crates-io.scm | 44 ++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)

Toggle diff (57 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 193a8b2cf9..857de781a4 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -27346,6 +27346,50 @@ serializing Rust str")
      "This package provides a library for visualizing tree structured data.")
     (license license:expat)))
 
+(define-public rust-trust-dns-https-0.4
+  (package
+    (name "rust-trust-dns-https")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-https" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ypkbgm5p7smjfkca3gaszhvknbr2ykf8skw8pyvpn0sq95lv5ia"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.4)
+        ("rust-data-encoding" ,rust-data-encoding-2.1)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-h2" ,rust-h2-0.1)
+        ("rust-http" ,rust-http-0.1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-rustls" ,rust-rustls-0.16)
+        ("rust-tokio-executor" ,rust-tokio-executor-0.1)
+        ("rust-tokio-reactor" ,rust-tokio-reactor-0.1)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.12)
+        ("rust-tokio-tcp" ,rust-tokio-tcp-0.1)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.8)
+        ("rust-trust-dns-rustls" ,rust-trust-dns-rustls-0.7)
+        ("rust-typed-headers" ,rust-typed-headers-0.1)
+        ("rust-webpki" ,rust-webpki-0.21)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.17))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-tokio" ,rust-tokio-0.1))))
+    (home-page "http://www.trust-dns.org/index.html")
+    (synopsis
+     "Trust-DNS is a safe and secure DNS library")
+    (description
+     "Trust-DNS is a safe and secure DNS library.  This is an
+extension for the Trust-DNS client to use DNS over HTTPS.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-trust-dns-proto-0.8
   (package
   (name "rust-trust-dns-proto")
-- 
2.28.0
From 9748c077ed8f6e2834c8ca27b48267ca761fa4ec Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:37:56 -0700
Subject: [PATCH 34/57] gnu: Add rust-tokio-openssl-0.4.

* gnu/packages/crates-io.scm (rust-tokio-opessl-0.4): New variable.
---
gnu/packages/crates-io.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 857de781a4..8bf4efc745 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -26816,6 +26816,39 @@ applications backed by buffers.")
 Tokio.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-tokio-openssl-0.4
+  (package
+    (name "rust-tokio-openssl")
+    (version "0.4.0-alpha.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-openssl" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1h649wxs0shqc7sk2fnf9nbanfghg9viy1c1n43npyzncarn2jl9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-openssl" ,rust-openssl-0.10)
+        ("rust-tokio-io" ,rust-tokio-io-0.1))
+       #:cargo-development-inputs
+       (("rust-futures-preview" ,rust-futures-preview-0.3)
+        ("rust-tokio" ,rust-tokio-0.1))))
+    (home-page
+     "https://github.com/alexcrichton/tokio-openssl")
+    (synopsis
+     "SSL streams for Tokio backed by OpenSSL")
+    (description
+     "This library is an implementation of TLS streams using OpenSSL for
+negotiating the connection.  Each TLS stream implements the Read and Write
+traits to interact and interoperate with the rest of the futures I/O
+ecosystem.  Client connections initiated from this crate verify hostnames
+automatically and by default.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-tokio-process-0.2
   (package
     (name "rust-tokio-process")
-- 
2.28.0
From ca68bb32750f3cdaaf6bf9a11fedadf8f3a70cdc Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:38:49 -0700
Subject: [PATCH 35/57] gnu: Add rust-trust-dns-openssl-0.7.

* gnu/packages/crates-io.scm (rust-trust-dns-openssl-0.7): New variable.
---
gnu/packages/crates-io.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 8bf4efc745..37ade90e65 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -27423,6 +27423,38 @@ serializing Rust str")
 extension for the Trust-DNS client to use DNS over HTTPS.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-trust-dns-openssl-0.7
+  (package
+    (name "rust-trust-dns-openssl")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-openssl" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "19qxi4y33wd2g55r4v9d6b06d20bdhqhvsrsmbpz5ir3i7l5psp7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures" ,rust-futures-0.1)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-tokio-openssl" ,rust-tokio-openssl-0.4)
+        ("rust-tokio-tcp" ,rust-tokio-tcp-0.1)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.8))
+       #:cargo-development-inputs
+       (("rust-openssl" ,rust-openssl-0.10)
+        ("rust-tokio" ,rust-tokio-0.1))))
+    (home-page "http://www.trust-dns.org/index.html")
+    (synopsis
+     "Trust-DNS is a safe and secure DNS library")
+    (description
+     "Trust-DNS is a safe and secure DNS library.  This is an
+extension for the Trust-DNS client to use tokio-openssl for TLS.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-trust-dns-proto-0.8
   (package
   (name "rust-trust-dns-proto")
-- 
2.28.0
From 23d5b59ac0d1b5d2722a490167cd65ed418f07bd Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:54:28 -0700
Subject: [PATCH 36/57] gnu: Add rust-tracing-log-0.1.

* gnu/packages/crates-io.scm (rust-tracing-log-0.1): New variable.
---
gnu/packages/crates-io.scm | 42 ++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)

Toggle diff (55 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 37ade90e65..a379c13001 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -27340,6 +27340,48 @@ serializing Rust str")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-tracing-log-0.1
+  (package
+    (name "rust-tracing-log")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tracing-log" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0qsinlbk2knrqgx1k2zq8kjxs71x44vzpma2rin1sm462agcjav5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-tracing-core" ,rust-tracing-core-0.1))
+       #:cargo-development-inputs
+       (("rust-tracing" ,rust-tracing-0.1))))
+    (home-page "https://tokio.rs")
+    (synopsis
+     "Provides compatibility between tracing the log crates")
+    (description
+     "Tracing is a framework for instrumenting Rust programs with
+context-aware, structured, event-based diagnostic information.  This crate
+provides compatibility layers for using tracing alongside the logging facade
+provided by the log crate.
+
+This crate provides:
+
+@itemize
+@item @code{AsTrace} and @code{AsLog} traits for converting between tracing
+and log types.
+@item @code{LogTracer}, a @code{log::Log} implementation that consumes
+@code{log::Records} and outputs them as @code{tracing::Events}.
+@item An @code{env_logger} module, with helpers for using the env_logger crate
+with tracing (optional, enabled by the env-logger feature).
+@end itemize")
+    (license license:expat)))
+
 (define-public rust-traitobject-0.1
   (package
     (name "rust-traitobject")
-- 
2.28.0
From 24c6da3fd2457240df8d63fa5a248f90ac9e164e Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:51:44 -0700
Subject: [PATCH 37/57] gnu: Add rust-matchers-0.0.

* gnu/package/crates-io.scm (rust-matchers-0.0): New variable.
---
gnu/packages/crates-io.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index a379c13001..4dccbf1b8d 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -13110,6 +13110,32 @@ statement, the first matching branch is the item that gets emitted.")
 whether an expression matches a pattern.")
     (license license:expat)))
 
+(define-public rust-matchers-0.0
+  (package
+    (name "rust-matchers")
+    (version "0.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "matchers" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1q8ckqmkjqkznvdi9x0z769yz2bmvlqcwx51ad2lpk4mfmgpi6gh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-regex-automata" ,rust-regex-automata-0.1))))
+    (home-page "https://github.com/hawkw/matchers")
+    (synopsis
+     "Regex matching on character and byte streams")
+    (description
+     "Use this crate to match on character and byte streams using regular
+grammars.  It provides the subset of the regex crate that only deals with
+matching, not parsing substrings.")
+    (license license:expat)))
+
 (define-public rust-matrixmultiply-0.2
   (package
     (name "rust-matrixmultiply")
-- 
2.28.0
From 60e64b811d0d34d35f5ab82bf8cb27c67118dea0 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:55:40 -0700
Subject: [PATCH 38/57] gnu: Add rust-tracing-subscriber-0.1.

* gnu/packages/crates-io.scm (rust-tracing-subscriber-0.1): New variable.
---
gnu/packages/crates-io.scm | 48 ++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)

Toggle diff (61 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 4dccbf1b8d..dc70efea4d 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -27408,6 +27408,54 @@ with tracing (optional, enabled by the env-logger feature).
 @end itemize")
     (license license:expat)))
 
+(define-public rust-tracing-subscriber-0.1
+  (package
+    (name "rust-tracing-subscriber")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tracing-subscriber" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0bn6911zky2wg8ndvrj38v02hml0hpk0g49h0d3kf52klxqiffy6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ansi-term" ,rust-ansi-term-0.11)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-matchers" ,rust-matchers-0.0)
+        ("rust-owning-ref" ,rust-owning-ref-0.4)
+        ("rust-parking-lot" ,rust-parking-lot-0.9)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-smallvec" ,rust-smallvec-0.6)
+        ("rust-tracing-core" ,rust-tracing-core-0.1)
+        ("rust-tracing-log" ,rust-tracing-log-0.1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-tracing-log" ,rust-tracing-log-0.1))))
+    (home-page "https://tokio.rs")
+    (synopsis
+     "Implement and compose tracing subscribers")
+    (description
+     "Utilities for implementing and composing tracing subscribers.
+
+Tracing is a framework for instrumenting Rust programs to collect
+scoped, structured, and async-aware diagnostics.  The Subscriber trait
+represents the functionality necessary to collect this trace
+data.  This crate contains tools for composing subscribers out of
+smaller units of behaviour, and batteries-included implementations of
+common subscriber functionality.
+
+Tracing-subscriber is intended for use by both Subscriber authors and
+application authors using tracing to instrument their applications.")
+    (license license:expat)))
+
 (define-public rust-traitobject-0.1
   (package
     (name "rust-traitobject")
-- 
2.28.0
From 1f26bdd7b78857918f8b31bb3b48bfd3580fff9e Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:56:22 -0700
Subject: [PATCH 39/57] gnu: Add rust-tracing-fmt-0.1.

* gnu/packages/crates-io.scm (rust-tracing-fmt-0.1): New variable.
---
gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index dc70efea4d..91d8e141c3 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -27366,6 +27366,33 @@ serializing Rust str")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-tracing-fmt-0.1
+  (package
+    (name "rust-tracing-fmt")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tracing-fmt" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0wagcrd6w8d3k7zdvg6sy2bwfh8w87i6ndia69p54fc7p3z4f1c8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-tracing-subscriber" ,rust-tracing-subscriber-0.1))
+       #:cargo-development-inputs
+       (("rust-tracing" ,rust-tracing-0.1))))
+    (home-page "https://tokio.rs")
+    (synopsis
+     "Tracing subscriber that formats and logs trace data")
+    (description
+     "This package provides a tracing subscriber that formats and logs trace
+data.  Moved to the tracing-subscriber crate.")
+    (license license:expat)))
+
 (define-public rust-tracing-log-0.1
   (package
     (name "rust-tracing-log")
-- 
2.28.0
From 4d9094a13ef499fdd84c9fd124948b40d332b899 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:56:51 -0700
Subject: [PATCH 40/57] gnu: Add rust-tracing-attributes-0.1.

* gnu/packages/crates-io.scm (rust-tracing-attributes-0.1): New variable.
---
gnu/packages/crates-io.scm | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)

Toggle diff (47 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 91d8e141c3..15e304eb6b 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -27343,6 +27343,40 @@ Serialize/Deserialize traits for TOML data to facilitate deserializing and
 serializing Rust str")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-tracing-attributes-0.1
+  (package
+    (name "rust-tracing-attributes")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tracing-attributes" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1yly610mxhjs2078mrxn5vzx9r3jgxvhzpgw6r59zf8cbn1s2hsv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-0.15))
+       #:cargo-development-inputs
+       (("rust-tracing" ,rust-tracing-0.1)
+        ("rust-tracing-core" ,rust-tracing-core-0.1)
+        ("rust-tracing-fmt" ,rust-tracing-fmt-0.1))))
+    (home-page "https://tokio.rs")
+    (synopsis
+     "Procedural macro attributes for automatically instrumenting functions")
+    (description
+     "Tracing is a framework for instrumenting Rust programs to collect structured,
+event-based diagnostic information.  This crate provides the
+@code{#[instrument]} attribute for automatically instrumenting functions using
+tracing.
+
+Note that this macro is also re-exported by the main tracing crate.")
+    (license license:expat)))
+
 (define-public rust-tracing-core-0.1
   (package
     (name "rust-tracing-core")
-- 
2.28.0
From 341010a3b33a0462e05320a68f122cce7ccf6695 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:57:50 -0700
Subject: [PATCH 41/57] gnu: Add rust-tracing-0.1.

* gnu/packages/crates-io.scm (rust-tracing-0.1): New variable.
---
gnu/packages/crates-io.scm | 48 ++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)

Toggle diff (61 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 15e304eb6b..0236e4d7e3 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -27343,6 +27343,54 @@ Serialize/Deserialize traits for TOML data to facilitate deserializing and
 serializing Rust str")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-tracing-0.1
+  (package
+    (name "rust-tracing")
+    (version "0.1.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tracing" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0r1yn5b1nssvi5kqj19rq4x8l6kh8s9s2hpd9vi7l6sda1d3a7vh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-spin" ,rust-spin-0.5)
+        ("rust-tracing-attributes"
+         ,rust-tracing-attributes-0.1)
+        ("rust-tracing-core" ,rust-tracing-core-0.1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.2)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-log" ,rust-log-0.4))))
+    (home-page "https://tokio.rs")
+    (synopsis
+     "Application-level tracing for Rust")
+    (description
+     "Tracing is a framework for instrumenting Rust programs to collect
+structured, event-based diagnostic information.
+
+In asynchronous systems like Tokio, interpreting traditional log messages can
+often be quite challenging.  Since individual tasks are multiplexed on the same
+thread, associated events and log lines are intermixed making it difficult to
+trace the logic flow.  Tracing expands upon logging-style diagnostics by
+allowing libraries and applications to record structured events with
+additional information about temporality and causality — unlike a log message,
+a span in tracing has a beginning and end time, may be entered and exited by
+the flow of execution, and may exist within a nested tree of similar spans.  In
+addition, tracing spans are structured, with the ability to record typed data
+as well as textual messages.
+
+The tracing crate provides the APIs necessary for instrumenting libraries and
+applications to emit trace data.")
+    (license license:expat)))
+
 (define-public rust-tracing-attributes-0.1
   (package
     (name "rust-tracing-attributes")
-- 
2.28.0
From a4b84bf26300d8753c087d323c6ddf0baf6516ab Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:59:45 -0700
Subject: [PATCH 42/57] gnu: Add rust-tokio-net-0.2.

* gnu/packages/crates-io.scm (rust-tokio-net-0.2): New variable.
---
gnu/packages/crates-io.scm | 49 ++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)

Toggle diff (62 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 0236e4d7e3..a8bbddf689 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -26842,6 +26842,55 @@ applications backed by buffers.")
 Tokio.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-tokio-net-0.2
+  (package
+    (name "rust-tokio-net")
+    (version "0.2.0-alpha.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-net" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "15vm0bndn6zcpkp1yb6v736rbhqgim5skc76rz299xd3y0pr249a"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.4)
+        ("rust-crossbeam-queue" ,rust-crossbeam-queue-0.1)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
+        ("rust-futures-core-preview"
+         ,rust-futures-core-preview-0.3)
+        ("rust-futures-sink-preview"
+         ,rust-futures-sink-preview-0.3)
+        ("rust-futures-util-preview"
+         ,rust-futures-util-preview-0.3)
+        ("rust-iovec" ,rust-iovec-0.1)
+        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-mio" ,rust-mio-0.6)
+        ("rust-mio-named-pipes" ,rust-mio-named-pipes-0.1)
+        ("rust-mio-uds" ,rust-mio-uds-0.6)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-parking-lot" ,rust-parking-lot-0.8)
+        ("rust-signal-hook-registry"
+         ,rust-signal-hook-registry-1)
+        ("rust-slab" ,rust-slab-0.4)
+        ("rust-tokio-codec" ,rust-tokio-codec-0.1)
+        ("rust-tokio-executor" ,rust-tokio-executor-0.1)
+        ("rust-tokio-io" ,rust-tokio-io-0.1)
+        ("rust-tokio-sync" ,rust-tokio-sync-0.1)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://tokio.rs")
+    (synopsis
+     "Event loop that drives Tokio I/O resources")
+    (description
+     "This package provides the event loop that drives Tokio I/O resources.")
+    (license license:expat)))
+
 (define-public rust-tokio-openssl-0.4
   (package
     (name "rust-tokio-openssl")
-- 
2.28.0
From 2dff7edae54d27d5351ffc9d647a94aab8904c75 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:00:53 -0700
Subject: [PATCH 43/57] gnu: Add rust-tokio-tls-0.3.

* gnu/packages/crates-io.scm (rust-tokio-tls-0.3): New variable.
---
gnu/packages/crates-io.scm | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)

Toggle diff (49 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index a8bbddf689..c0890d8443 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -27223,6 +27223,42 @@ pool.")
     (description "Timer facilities for Tokio.")
     (license license:expat)))
 
+(define-public rust-tokio-tls-0.3
+  (package
+    (name "rust-tokio-tls")
+    (version "0.3.0-alpha.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-tls" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1hcxgqqmg8v0lmw5hnfr5w2x7p2x97m50yisjrmxjcz89a8v2ay6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-native-tls" ,rust-native-tls-0.2)
+        ("rust-tokio-io" ,rust-tokio-io-0.1))
+       #:cargo-development-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-futures-preview" ,rust-futures-preview-0.3)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-schannel" ,rust-schannel-0.1)
+        ("rust-security-framework" ,rust-security-framework-0.3)
+        ("rust-tokio" ,rust-tokio-0.1)
+        ("rust-tokio-net" ,rust-tokio-net-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://tokio.rs")
+    (synopsis
+     "TLS/SSL streams for Tokio")
+    (description
+     "This package provides an implementation of TLS/SSL streams for Tokio
+giving an implementation of TLS for nonblocking I/O streams.")
+    (license license:expat)))
+
 (define-public rust-tokio-trace-core-0.2
   (package
     (name "rust-tokio-trace-core")
-- 
2.28.0
From 4e97535b99a86c73583397baec3f4026589bf925 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:01:33 -0700
Subject: [PATCH 44/57] gnu: Add rust-trust-dns-native-tls-0.7.

* gnu/packages/crates-io.scm (rust-trust-dns-native-tls-0.7): New variable.
---
gnu/packages/crates-io.scm | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)

Toggle diff (44 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index c0890d8443..5c15c1104a 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -27733,6 +27733,37 @@ application authors using tracing to instrument their applications.")
 extension for the Trust-DNS client to use DNS over HTTPS.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-trust-dns-native-tls-0.7
+  (package
+    (name "rust-trust-dns-native-tls")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-native-tls" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0dkwfqxjjmbikm3mav71zjymgy8wmqr4mca64x49qzknvc4qwy6z"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures" ,rust-futures-0.1)
+        ("rust-native-tls" ,rust-native-tls-0.2)
+        ("rust-tokio-tcp" ,rust-tokio-tcp-0.1)
+        ("rust-tokio-tls" ,rust-tokio-tls-0.3)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.8))
+       #:cargo-development-inputs
+       (("rust-tokio" ,rust-tokio-0.1))))
+    (home-page "http://www.trust-dns.org/index.html")
+    (synopsis
+     "Trust-DNS is a safe and secure DNS library")
+    (description
+     "Trust-DNS is a safe and secure DNS library.  This is an
+extension for the Trust-DNS client to use native-tls for TLS.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-trust-dns-openssl-0.7
   (package
     (name "rust-trust-dns-openssl")
-- 
2.28.0
From 02511fe7694c346fbcd63c4f5f4856c0a0b0494c Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:02:30 -0700
Subject: [PATCH 45/57] gnu: Add rust-trust-dns-resolver-0.12.

* gnu/packages/crates-io.scm (rust-trust-dns-resolver-0.12): New variable.
---
gnu/packages/crates-io.scm | 52 ++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)

Toggle diff (65 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 5c15c1104a..e40ad6fdf5 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -27843,6 +27843,58 @@ extension for the Trust-DNS client to use tokio-openssl for TLS.")
 foundational DNS protocol library for all Trust-DNS projects.")
   (license (list license:asl2.0 license:expat))))
 
+(define-public rust-trust-dns-resolver-0.12
+  (package
+    (name "rust-trust-dns-resolver")
+    (version "0.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-resolver" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0cjkz3rcisk7v354l5hqb3j5x9x389pjqd6da6h8skvqxr0kl6yb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-ipconfig" ,rust-ipconfig-0.2)
+        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-lru-cache" ,rust-lru-cache-0.1)
+        ("rust-resolv-conf" ,rust-resolv-conf-0.6)
+        ("rust-rustls" ,rust-rustls-0.16)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-smallvec" ,rust-smallvec-0.6)
+        ("rust-tokio" ,rust-tokio-0.1)
+        ("rust-tokio-executor" ,rust-tokio-executor-0.1)
+        ("rust-tokio-tcp" ,rust-tokio-tcp-0.1)
+        ("rust-tokio-udp" ,rust-tokio-udp-0.1)
+        ("rust-trust-dns-https" ,rust-trust-dns-https-0.4)
+        ("rust-trust-dns-native-tls" ,rust-trust-dns-native-tls-0.7)
+        ("rust-trust-dns-openssl" ,rust-trust-dns-openssl-0.7)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.8)
+        ("rust-trust-dns-rustls" ,rust-trust-dns-rustls-0.7)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.17))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-tokio" ,rust-tokio-0.1)
+        ("rust-tokio-io" ,rust-tokio-io-0.1))))
+    (home-page "http://www.trust-dns.org/index.html")
+    (synopsis
+     "Trust-DNS is a safe and secure DNS library")
+    (description
+     "Trust-DNS is a safe and secure DNS library.  This Resolver library uses
+the Client library to perform all DNS queries.  The Resolver is intended to be
+a high-level library for any DNS record resolution see Resolver and
+AsyncResolver for supported resolution types.  The Client can be used for
+other queries.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-trust-dns-rustls-0.7
   (package
     (name "rust-trust-dns-rustls")
-- 
2.28.0
From de9487618db0aabe7b842fbd18c8c82a94460634 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:42:22 -0700
Subject: [PATCH 46/57] gnu: Add rust-take-mut-0.2.

* gnu/packages/crates-io.scm (rust-take-mut-0.2): New variable.
---
gnu/packages/crates-io.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (48 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index e40ad6fdf5..8de3bfcb77 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -25510,6 +25510,41 @@ CPU, memory, disk, load, hostname, and other similar system information.")
     (description "Send log messages to syslog.")
     (license license:expat)))
 
+(define-public rust-take-mut-0.2
+  (package
+    (name "rust-take-mut")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "take-mut" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0q2d7w6nd5bl7bay5csq065sjg8fw0jcx6hl1983cpzf25fh0r7p"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/Sgeo/take_mut")
+    (synopsis "Take a T from a mutuble T temporarily")
+    (description
+    "This crate provides several functions for handling @code{&mut T}
+including @code{take()}.
+
+@code{take()} allows for taking @code{T} out of a @code{&mut T}, doing
+anything with it including consuming it, and producing another
+@code{T} to put back in the @code{&mut T}.
+
+During @code{take()}, if a panic occurs, the entire process will be
+aborted, as there's no valid @code{T} to put back into the @code{&mut
+T}. Use @code{take_or_recover()} to replace the @code{&mut T} with a
+recovery value before continuing the panic.
+
+Contrast with @code{std::mem::replace()}, which allows for putting a
+different @code{T} into a @code{&mut T}, but requiring the new
+@code{T} to be available before being able to consume the old
+@code{T}.")
+    (license license:expat)))
+
 (define-public rust-takeable-option-0.4
   (package
     (name "rust-takeable-option")
-- 
2.28.0
From 82532d7b21b33d28d48fa971b71f43747b354116 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:46:30 -0700
Subject: [PATCH 47/57] gnu: Add rust-libflate-0.1.

* gnu/package/crates-io.scm (rust-libflate-0.1): New variable.
---
gnu/packages/crates-io.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 8de3bfcb77..8de2919a10 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -11990,6 +11990,36 @@ values of all the exported APIs match the platform that libc is compiled for.")
 macros on libc without stdlib.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-libflate-0.1
+  (package
+    (name "rust-libflate")
+    (version "0.1.27")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libflate" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1p8z839c5lpl0g01mf8iglys9lgcjxw6xjw56crhwp8z7gs5s4yr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-adler32" ,rust-adler32-1)
+        ("rust-crc32fast" ,rust-crc32fast-1.2)
+        ("rust-rle-decode-fast" ,rust-rle-decode-fast-1)
+        ("rust-take-mut" ,rust-take-mut-0.2))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-2))))
+    (home-page "https://github.com/sile/libflate")
+    (synopsis
+     "Rust implementation of DEFLATE algorithm and formats")
+    (description
+     "This package provides a Rust implementation of DEFLATE algorithm and
+related formats including ZLIB and GZIP.")
+    (license license:expat)))
+
 (define-public rust-libgit2-sys-0.10
   (package
     (name "rust-libgit2-sys")
-- 
2.28.0
From 0be565f204062551faa6aba67381f5ea0e85f85d Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:03:24 -0700
Subject: [PATCH 48/57] gnu: Add rust-reqwest-0.9.

* gnu/packages/crates-io.scm (rust-reqwest-0.9): New variable.
---
gnu/packages/crates-io.scm | 74 ++++++++++++++++++++++++++++++++++++++
1 file changed, 74 insertions(+)

Toggle diff (87 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 8de2919a10..d524109fa2 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -20156,6 +20156,80 @@ uses finite automata and guarantees linear time matching on all inputs.")
     (description "File reopening utility.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-reqwest-0.9
+  (package
+    (name "rust-reqwest")
+    (version "0.9.20")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "reqwest" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0y4wvzl3pspd8drr2hf9kk107cjw455cb6p529sh90x58dhqjv8g"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.9)
+        ("rust-bytes" ,rust-bytes-0.4)
+        ("rust-cookie" ,rust-cookie-0.12)
+        ("rust-cookie-store" ,rust-cookie-store-0.7)
+        ("rust-encoding-rs" ,rust-encoding-rs-0.8)
+        ("rust-flate2" ,rust-flate2-1.0)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-http" ,rust-http-0.1)
+        ("rust-hyper" ,rust-hyper-0.12)
+        ("rust-hyper-old-types" ,rust-hyper-old-types-0.11)
+        ("rust-hyper-rustls" ,rust-hyper-rustls-0.18)
+        ("rust-hyper-tls" ,rust-hyper-tls-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-mime" ,rust-mime-0.3)
+        ("rust-mime-guess" ,rust-mime-guess-2.0)
+        ("rust-native-tls" ,rust-native-tls-0.2)
+        ("rust-rustls" ,rust-rustls-0.16)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-urlencoded" ,rust-serde-urlencoded-0.5)
+        ("rust-socks" ,rust-socks-0.3)
+        ("rust-time" ,rust-time-0.1)
+        ("rust-tokio" ,rust-tokio-0.1)
+        ("rust-tokio-executor" ,rust-tokio-executor-0.1)
+        ("rust-tokio-io" ,rust-tokio-io-0.1)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.12)
+        ("rust-tokio-threadpool" ,rust-tokio-threadpool-0.1)
+        ("rust-tokio-timer" ,rust-tokio-timer-0.2)
+        ("rust-trust-dns-resolver" ,rust-trust-dns-resolver-0.12)
+        ("rust-url" ,rust-url-1.7)
+        ("rust-uuid" ,rust-uuid-0.7)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.17)
+        ("rust-winreg" ,rust-winreg-0.6))
+       #:cargo-development-inputs
+       (("rust-bytes" ,rust-bytes-0.4)
+        ("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-libflate" ,rust-libflate-0.1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-tokio" ,rust-tokio-0.1)
+        ("rust-tokio-tcp" ,rust-tokio-tcp-0.1))))
+    (home-page
+     "https://github.com/seanmonstar/reqwest")
+    (synopsis "Higher level HTTP client library")
+    (description
+     "This package provides an ergonomic, batteries-included HTTP Client for
+Rust. It features:
+
+@itemize
+@item Plain bodies, JSON, urlencoded, multipart
+@item Customizable redirect policy
+@item HTTP Proxies
+@item HTTPS via system-native TLS (or optionally, rustls)
+@item Cookie Store
+@item WASM
+@end itemize")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-resolv-conf-0.6
   (package
     (name "rust-resolv-conf")
-- 
2.28.0
From 3e0589bfc4a5f9aa498b12d1e152113e5323e943 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:05:58 -0700
Subject: [PATCH 49/57] gnu: Add rust-shell-escape-0.1.

* gnu/packages/crates-io.scm (rust-shell-escape-0.1): New variable.
---
gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index d524109fa2..c13607c8fd 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -23692,6 +23692,28 @@ picking compatible shaders.")
      "This package allows easy binding to, and loading of, shared libraries.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-shell-escape-0.1
+  (package
+    (name "rust-shell-escape")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "shell-escape" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1fgs1iyx3b124b7njjmhfn9q5ipmhxrafavh8mxbfl9a9zk162hp"))))
+    (build-system cargo-build-system)
+    (home-page
+     "https://github.com/sfackler/shell-escape")
+    (synopsis
+     "Escape characters that may have a special meaning in a shell")
+    (description
+     "Escape characters that may have a special meaning in a shell.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-shell-words-0.1
   (package
     (name "rust-shell-words")
-- 
2.28.0
From dec6e65419c64db489afc36ad757bda82a86ec02 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:08:39 -0700
Subject: [PATCH 50/57] gnu: Add rust-thrussh-libsodium-0.1.

* gnu/packages/crates-io.scm (rust-thrussh-libsodium-0.1): New variable.
---
gnu/packages/crates-io.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index c13607c8fd..e1951cf8ef 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -26484,6 +26484,32 @@ fixed set of worker threads.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-thrussh-libsodium-0.1
+  (package
+    (name "rust-thrussh-libsodium")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "thrussh-libsodium" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0fjssjiwnmbxjvajk37l7k0fcw1ys97j7n8bpn3q3bbnz2qfrphv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (home-page
+     "https://nest.pijul.com/pijul_org/thrussh")
+    (synopsis
+     "Straightforward bindings to libsodium")
+    (description
+     "You can bind to libsodium from Rust with this crate.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-time-0.1
   (package
     (name "rust-time")
-- 
2.28.0
From f2c215729c571a7cdcf6acf3d09c0aa8a927c736 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:14:33 -0700
Subject: [PATCH 51/57] gnu: Add rust-yasna-0.1.

* gnu/packages/crates-io.scm (rust-yasna-0.1): New variable.
---
gnu/packages/crates-io.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index e1951cf8ef..5c50416dee 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -30649,6 +30649,35 @@ styles (bold, underline).  It is adapted from
 @code{fmt::Display and FnOnce(&mut fmt::Formatter) -> fmt::Result}")
     (license license:expat)))
 
+(define-public rust-yasna-0.1
+  (package
+    (name "rust-yasna")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "yasna" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1frcd79rzi6dlly7lldjn2avnhfmj6yxrjsgvb2p1k2zbxdzyc9s"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bit-vec" ,rust-bit-vec-0.4)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-num" ,rust-num-0.1)
+        ("rust-num-bigint" ,rust-num-bigint-0.1))
+       #:cargo-development-inputs
+       (("rust-num-traits" ,rust-num-traits-0.2))))
+    (home-page "https://github.com/qnighy/yasna.rs")
+    (synopsis "ASN.1 library for Rust")
+    (description
+     "To serialize ASN.1 data, you can use @code{construct_der}.
+To deserialize ASN.1 data, you can use parse_ber or @code{parse_der}."  )
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-zbase32-0.1
   (package
     (name "rust-zbase32")
-- 
2.28.0
From 180f4f6025809daea827685deff73bf01a0c5ac1 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:16:52 -0700
Subject: [PATCH 52/57] gnu: Add rust-thrussh-keys-0.11.

* gnu/packages/crates-io.scm (rust-thrussh-keys-0.11): New variable.
---
gnu/packages/crates-io.scm | 45 ++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)

Toggle diff (58 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 5c50416dee..03be1a82db 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -26484,6 +26484,51 @@ fixed set of worker threads.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-thrussh-keys-0.11
+  (package
+    (name "rust-thrussh-keys")
+    (version "0.11.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "thrussh-keys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0rkhkkav9kv1q9lgxgydnrkniq4ccrf107lcygimralnkwyzjwjy"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-bit-vec" ,rust-bit-vec-0.4)
+        ("rust-byteorder" ,rust-byteorder-1.3)
+        ("rust-cryptovec" ,rust-cryptovec-0.4)
+        ("rust-dirs" ,rust-dirs-2.0)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-hex" ,rust-hex-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-num-bigint" ,rust-num-bigint-0.1)
+        ("rust-num-integer" ,rust-num-integer-0.1)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-thrussh-libsodium"
+         ,rust-thrussh-libsodium-0.1)
+        ("rust-tokio" ,rust-tokio-0.1)
+        ("rust-yasna" ,rust-yasna-0.1))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-tempdir" ,rust-tempdir-0.3)
+        ("rust-tokio-uds" ,rust-tokio-uds-0.2))))
+    (home-page "https://pijul.org/thrussh")
+    (synopsis
+     "Deal with SSH keys in Rust")
+    (description
+     "This package provides a rust library to deal with SSH keys.
+With it you can load them, decrypt them, and call an SSH agent.")
+    (license license:asl2.0)))
+
 (define-public rust-thrussh-libsodium-0.1
   (package
     (name "rust-thrussh-libsodium")
-- 
2.28.0
From 8f1bca27876260ac8c2e4910cc06e570607a8dd7 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:18:13 -0700
Subject: [PATCH 53/57] gnu: Add rust-thrussh-0.21.

* gnu/packages/crates-io.scm (rust-thrussh-0.21): New variable.
---
gnu/packages/crates-io.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (48 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 03be1a82db..2392641768 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -26484,6 +26484,41 @@ fixed set of worker threads.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-thrussh-0.21
+  (package
+    (name "rust-thrussh")
+    (version "0.21.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "thrussh" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0k8ah3kx8q6vnkq3hi78s8acxdcws6yck0x989xzx2wi89nqflhl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-byteorder" ,rust-byteorder-1.3)
+        ("rust-cryptovec" ,rust-cryptovec-0.4)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-thrussh-keys" ,rust-thrussh-keys-0.11)
+        ("rust-thrussh-libsodium"
+         ,rust-thrussh-libsodium-0.1)
+        ("rust-tokio" ,rust-tokio-0.1)
+        ("rust-tokio-io" ,rust-tokio-io-0.1))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.6))))
+    (home-page "https://pijul.org/thrussh")
+    (synopsis "Client and server SSH library in Rust")
+    (description
+     "This package provides a client and server SSH library.")
+    (license license:asl2.0)))
+
 (define-public rust-thrussh-keys-0.11
   (package
     (name "rust-thrussh-keys")
-- 
2.28.0
From 8862a63ede0d661181c7663f1488faa0d0790cb5 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:19:52 -0700
Subject: [PATCH 54/57] gnu: Add rust-thrussh-config-0.2.

* gnu/packages/crates-io.scm (rust-thrussh-config-0.2): New variable.
---
gnu/packages/crates-io.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 2392641768..251d3abef9 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -26519,6 +26519,38 @@ fixed set of worker threads.")
      "This package provides a client and server SSH library.")
     (license license:asl2.0)))
 
+(define-public rust-thrussh-config-0.2
+  (package
+    (name "rust-thrussh-config")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "thrussh-config" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0h19qysnbdvv6z2y3ii3cxqn42yvjg73wnghx83kbwj6af6chryb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-dirs" ,rust-dirs-2.0)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-thrussh" ,rust-thrussh-0.21)
+        ("rust-tokio" ,rust-tokio-0.1))))
+    (home-page
+     "https://nest.pijul.com/pijul_org/thrussh")
+    (synopsis
+     "Utilities to parse .ssh/config files, including helpers")
+    (description
+     "This package contains utilities to parse .ssh/config files,
+including helpers to implement ProxyCommand in Thrussh.")
+    (license license:asl2.0)))
+
 (define-public rust-thrussh-keys-0.11
   (package
     (name "rust-thrussh-keys")
-- 
2.28.0
From ba5d4024f49d8bd1019f82299ecf562180087a37 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:55:46 -0700
Subject: [PATCH 55/57] gnu: Add rust-advapi32-sys-0.2.

* gnu/package/crates-io.scm (rust-advapi32-sys-0.2): New variable.
---
gnu/packages/crates-io.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 251d3abef9..37dc64a02d 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -180,6 +180,34 @@ the Rust programming language.")
     (license (list license:bsd-3
                    license:zlib))))
 
+(define-public rust-advapi32-sys-0.2
+  (package
+    (name "rust-advapi32-sys")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "advapi32-sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "16largvlrd1800vvdchml0ngnszjlnpqm01rcz5hm7di1h48hrg0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-winapi-build" ,rust-winapi-build-0.1))))
+    (home-page
+     "https://github.com/retep998/winapi-rs")
+    (synopsis
+     "Contains function definitions for the Windows API library advapi32")
+    (description
+     "Contains function definitions for the Windows API library advapi32.
+The winapi crate's types and constants has more details about this API.")
+    (license license:expat)))
+
 (define-public rust-afl-0.8
   (package
     (name "rust-afl")
-- 
2.28.0
From ad3c0d2a49d76dff6ad4ea3ac2c98c49ba59aaa4 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:23:06 -0700
Subject: [PATCH 56/57] gnu: Add rust-username-0.2.

* gnu/packages/crates-io.scm (rust-username-0.2): New variable.
---
gnu/packages/crates-io.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 37dc64a02d..9b7f849442 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -28978,6 +28978,32 @@ untrusted inputs in Rust.")
 See winapi for types and constants.")
     (license license:expat)))
 
+(define-public rust-username-0.2
+  (package
+    (name "rust-username")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "username" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "028s7gpsz17z6chy818bpkxldixfxhlvicvyvhdbrxr7cpgjbr4j"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-advapi32-sys" ,rust-advapi32-sys-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://pijul.org/darcs/user")
+    (synopsis
+     "Portably retrieve the username of the user running the current thread")
+    (description
+     "Portably retrieve the user name (and possibly other information in
+future versions) of the user running the current thread.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-users-0.10
   (package
     (name "rust-users")
-- 
2.28.0
From cd2e19016bc0f7ce1979bb2e1ae4fc72e46682e7 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:23:46 -0700
Subject: [PATCH 57/57] gnu: Add pijul.

* gnu/packages/rust-apps.scm (pijul): New variable.
---
gnu/packages/rust-apps.scm | 113 +++++++++++++++++++++++++++++++++++++
1 file changed, 113 insertions(+)

Toggle diff (135 lines)
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index f5501d67dd..3448ecb877 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -30,8 +30,11 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crates-io)
   #:use-module (gnu packages crates-graphics)
+  #:use-module (gnu packages crypto)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages jemalloc)
+  #:use-module (gnu packages llvm)
+  #:use-module (gnu packages nettle)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -238,6 +241,116 @@ for distinguishing different kinds of bytes such as NULL bytes, printable ASCII
 characters, ASCII whitespace characters, other ASCII characters and non-ASCII.")
     (license (list license:expat license:asl2.0))))
 
+(define-public pijul
+  (package
+    (name "pijul")
+    (version "0.12.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pijul" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "12aqpfd2si70qbvfnn9kvznxyd5g5gsb1kk1q52wm077cd03yapr"))))
+    (build-system cargo-build-system)
+    (inputs
+     `(("clang" ,clang)
+       ("libressl" ,libressl)
+       ("libsodium" ,libsodium)
+       ("nettle" ,nettle)
+       ("pkg-config" ,pkg-config)))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-atty" ,rust-atty-0.2)
+        ("rust-base64" ,rust-base64-0.10)
+        ("rust-bincode" ,rust-bincode-1)
+        ("rust-bs58" ,rust-bs58-0.2)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-cryptovec" ,rust-cryptovec-0.4)
+        ("rust-dirs" ,rust-dirs-1.0)
+        ("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-flate2" ,rust-flate2-1.0)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-getch" ,rust-getch-0.2)
+        ("rust-hex" ,rust-hex-0.3)
+        ("rust-ignore" ,rust-ignore-0.4)
+        ("rust-libpijul" ,rust-libpijul-0.12)
+        ("rust-line" ,rust-line-0.1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-pathdiff" ,rust-pathdiff-0.1)
+        ("rust-progrs" ,rust-progrs-0.1)
+        ("rust-rand" ,rust-rand-0.6)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-reqwest" ,rust-reqwest-0.9)
+        ("rust-rpassword" ,rust-rpassword-2.1.0)
+        ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-0.9)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-shell-escape" ,rust-shell-escape-0.1)
+        ("rust-tar" ,rust-tar-0.4)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-term" ,rust-term-0.5)
+        ("rust-thrussh" ,rust-thrussh-0.21)
+        ("rust-thrussh-config" ,rust-thrussh-config-0.2)
+        ("rust-thrussh-keys" ,rust-thrussh-keys-0.11)
+        ("rust-tokio" ,rust-tokio-0.1)
+        ("rust-tokio-uds" ,rust-tokio-uds-0.2)
+        ("rust-toml" ,rust-toml-0.4)
+        ("rust-username" ,rust-username-0.2))
+       #:cargo-development-inputs
+       (("rust-walkdir" ,rust-walkdir-2))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'set-clang-env
+           (lambda* (#:key inputs #:allow-other-keys)
+             (setenv
+              "LIBCLANG_PATH"
+              (string-append (assoc-ref inputs "clang") "/lib"))
+             #t))
+         (add-after 'install 'install-completions
+           (lambda* (#:key outputs #:allow-other-keys)
+             (use-modules (ice-9 popen)
+                          (ice-9 textual-ports))
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (share (string-append out "/share"))
+                    (bash (string-append
+                           share "/bash-completion/completions"))
+                    (zsh (string-append
+                          share "/zsh/site-functions"))
+                    (fish (string-append
+                           share "/fish/vendor_completions.d")))
+               (for-each
+                (lambda (x)
+                  (let ((dir (cddr x))
+                        (file (cadr x))
+                        (shell (car x)))
+                    (mkdir-p dir)
+                    (call-with-output-file (string-append dir "/" file)
+                      (lambda (f)
+                        (let* ((cmd (string-append
+                                     bin "/pijul generate-completions --"
+                                     shell))
+                               (pipe (open-input-pipe cmd))
+                               (completion (get-string-all pipe)))
+                          (format f "~A" completion)
+                          (close-pipe pipe)))) ))
+                `(("bash" . ("pijul" . ,bash))
+                  ("zsh" . ("_pijul" . ,zsh))
+                  ("fish" . ("pijul.fish" . ,fish))))
+               #t))))))
+    (home-page "https://pijul.org/")
+    (synopsis
+     "Patch-based distributed version control system")
+    (description
+     "This package provides a patch-based distributed version control
+system, easy to use and fast.  Command-line interface.")
+    (license license:gpl2+)))
+
 (define-public racer
   (package
     (name "racer")
-- 
2.28.0
J
J
Julien Lepiller wrote on 11 Oct 2020 19:40
1458C332-066C-499E-8E53-CEDF6F502E25@lepiller.eu
Oh that is great! I've been wanting to try pijul out since more than a year but never found the time to package it. Thanks!

I'm not sure I know rust enough to review this, and I'm a bit busy. If nobody else has started a review by next saturday, please ping me again!

Le 11 octobre 2020 12:58:15 GMT-04:00, John Soo <jsoo1@asu.edu> a écrit :
Toggle quote (10 lines)
>Hi Guix,
>
>I've had these patches for a while and debated whether they should be
>merged. Pijul works but 2.0 is reportedly being worked on. I haven't
>seen much news on version 2 so I think 1.0 should be made available to
>try.
>
>Kindly,
>
>John
Attachment: file
L
L
Ludovic Courtès wrote on 28 Oct 2020 15:57
(name . Julien Lepiller)(address . julien@lepiller.eu)
87pn521jqe.fsf@gnu.org
Hi Julien,

Julien Lepiller <julien@lepiller.eu> skribis:

Toggle quote (7 lines)
> Oh that is great! I've been wanting to try pijul out since more than a
> year but never found the time to package it. Thanks!
>
> I'm not sure I know rust enough to review this, and I'm a bit busy. If
> nobody else has started a review by next saturday, please ping me
> again!

Are you taking a look? If not, let’s call for help from the Rust-savvy
people among us. :-)

Thanks,
Ludo’.
J
J
John Soo wrote on 28 Oct 2020 16:13
(name . Ludovic Courtès)(address . ludo@gnu.org)
dc28316c-e21b-48ff-b0f5-ac10158f49d4@Johns-iPhone
Hey everyone,

Quick update.

I have been busy rebasing these patches. I may have a new set this week.

Also pijul 2 is coming very soon. Should I wait to submit that instead?

- John
Attachment: file
Z
Z
zimoun wrote on 28 Oct 2020 16:42
864kme2w8g.fsf@gmail.com
Hi,

On Wed, 28 Oct 2020 at 08:13, John Soo <jsoo1@asu.edu> wrote:
Toggle quote (3 lines)
> I have been busy rebasing these patches. I may have a new set this
> week

It could be cool if it could be included in the v1.2. :-)


Toggle quote (3 lines)
> Also pijul 2 is coming very soon. Should I wait to submit that
> instead?

From my point of view, because of the “time-machine”, it is nice to
include any version – especially when it is already done. :-)


Cheers,
simon
J
J
Julien Lepiller wrote on 28 Oct 2020 18:37
(name . 43929)(address . 43929@debbugs.gnu.org)
2DFC6265-699A-4EA3-8E50-5352B8EA59F6@lepiller.eu
Le 28 octobre 2020 11:42:07 GMT-04:00, zimoun <zimon.toutoune@gmail.com> a écrit :
Toggle quote (16 lines)
>Hi,
>
>On Wed, 28 Oct 2020 at 08:13, John Soo <jsoo1@asu.edu> wrote:
>
>> I have been busy rebasing these patches. I may have a new set this
>> week
>
>It could be cool if it could be included in the v1.2. :-)
>
>
>> Also pijul 2 is coming very soon. Should I wait to submit that
>> instead?
>
>From my point of view, because of the “time-machine”, it is nice to
>include any version – especially when it is already done. :-)

Yeah I agree, you don't have to wait, since you already have everything available :)

Sorry I didn't do a review, I ended up being busy with work and other things.

Toggle quote (4 lines)
>
>
>Cheers,
>simon
J
J
John Soo wrote on 31 Oct 2020 19:15
(name . Julien Lepiller)(address . julien@lepiller.eu)
871rhe1cug.fsf@asu.edu
Hi everyone,

Julien Lepiller <julien@lepiller.eu> writes:

Toggle quote (7 lines)
> Le 28 octobre 2020 11:42:07 GMT-04:00, zimoun
>>From my point of view, because of the “time-machine”, it is nice to
>>include any version – especially when it is already done. :-)
>
> Yeah I agree, you don't have to wait, since you already have
> everything available :)

I agree.

Attached the updated patches. I rebased them this morning.

However, during the rebase, I found some that do not build.

I marked these with [WIP]. I believe this to be something amiss with the
rust-openssl-sys@0.9 dependency.

Thanks!

- John
From 51bc7cbf4409d12ed5bd2607a93e090a4a3d2afe Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 15:27:39 -0700
Subject: [PATCH 01/89] gnu: Add rust-rust-base58-0.0.

* gnu/packages/crates-io.scm (rust-rust-base58-0.0): New variable.
---
gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 3b4e02278a..4962e49f9d 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -22193,6 +22193,33 @@ hashing function.")
 password hashing function.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-rust-base58-0.0
+  (package
+    (name "rust-rust-base58")
+    (version "0.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rust-base58" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0fa4y2jjjmg1a0cr3gz4z8rkic0hx2vx5nm23za9lwf6rlgvj4xk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-num" ,rust-num-0.1))
+       #:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.4))))
+    (home-page "https://github.com/nham/rust-base58")
+    (synopsis
+     "Simple library for converting to and from base-58 strings")
+    (description
+     "Convert to and from base-58 strings with a simple Rust api.
+ Currently the conversion uses the Bitcoin base58 alphabet.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-rust-hawktracer-0.7
   (package
     (name "rust-rust-hawktracer")
-- 
2.28.0
From 825652dd26aa2fac63addd657dbbbd5362e48484 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 15:28:40 -0700
Subject: [PATCH 02/89] gnu: Add rust-base58-0.1.

* gnu/packages/crates-io.scm (rust-base58-0.1): New variable.
---
gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 4962e49f9d..35c99be33c 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -1446,6 +1446,28 @@ trace (backtrace) at runtime in a Rust program.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-base58-0.1
+  (package
+    (name "rust-base58")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "base58" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "10xfw6v7jzn9i682mkw9nqybzafrvl3i2wawwgp5a8gh2n0fw92h"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/debris/base58")
+    (synopsis "Tiny and fast base58 encoding")
+    (description
+     "Encode to base58 using only Rust.  This package is based on
+@url{https://github.com/trezor/trezor-crypto/blob/master/base58.c} at commit
+c6e7d37.  However, this package works only up to 128 bytes.")
+    (license license:expat)))
+
 (define-public rust-base64-0.12
   (package
     (name "rust-base64")
-- 
2.28.0
From 3fa7d5c328d0f98181548837ee9422ace3ca4b35 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 15:29:05 -0700
Subject: [PATCH 03/89] gnu: Add rust-bs58-0.2.

* gnu/packages/crates-io.scm (rust-bs58-0.2): New variable.
---
gnu/packages/crates-io.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 35c99be33c..cfea63fa11 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -2645,6 +2645,38 @@ dependency on the rust stdlib.  This makes it suitable for embedded devices
 and kernels.")
     (license (list license:bsd-3 license:expat))))
 
+(define-public rust-bs58-0.2
+  (package
+    (name "rust-bs58")
+    (version "0.2.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bs58" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "125i962x0m0ggdif6ds51wfif2lypiicy469dj5j2l6rm6xycpn9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-sha2" ,rust-sha2-0.8))
+       #:cargo-development-inputs
+       (("rust-assert-matches" ,rust-assert-matches-1.3)
+        ("rust-base58" ,rust-base58-0.1)
+        ("rust-rust-base58" ,rust-rust-base58-0.0))))
+    (home-page
+     "https://github.com/mycorrhiza/bs58-rs")
+    (synopsis "Another Base58 codec implementation")
+    (description
+     "Another Base58 codec implementation.  Compared to the base58 crate this
+is significantly faster at decoding (about 2.4x as fast when decoding 32
+bytes), almost the same speed for encoding (about 3% slower when encoding 32
+bytes), doesn't have the 128 byte limitation and supports a configurable
+alphabet.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-bstr-0.2
   (package
     (name "rust-bstr")
-- 
2.28.0
From 65ba860e67232badedbb703b96cefc74a6e09fac Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 15:29:29 -0700
Subject: [PATCH 04/89] gnu: Add rust-cryptovec-0.4.

* gnu/packages/crates-io.scm (rust-cryptovec-0.4): New variable.
---
gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index cfea63fa11..d0c35e9ccd 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -5440,6 +5440,33 @@ Code (MAC) algorithms.")
 algorithms.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-cryptovec-0.4
+  (package
+    (name "rust-cryptovec")
+    (version "0.4.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cryptovec" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1n88dmhfb2dxs48zllq1g1dya76zx4fajw482qy8jj4hgg1da4p4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-kernel32-sys" ,rust-kernel32-sys-0.2)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://crates.io/crates/cryptovec")
+    (synopsis
+     "Vector which zeroes its memory on clears and reallocations")
+    (description
+     "This package provides a vector which zeroes its memory on clears and
+reallocations.")
+    (license license:asl2.0)))
+
 (define-public rust-cssparser-0.27
   (package
     (name "rust-cssparser")
-- 
2.28.0
From aa1633a338fc0365e06fe6fbdbe4996d6bf782b3 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 15:29:51 -0700
Subject: [PATCH 05/89] gnu: Add rust-getch-0.2.

* gnu/packages/crates-io.scm (rust-getch-0.2): New variable.
---
gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index d0c35e9ccd..bad88b1dc3 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -9869,6 +9869,33 @@ API library @code{gdi32}.")
      "This package provides a package for generating 3D meshes/")
     (license license:asl2.0)))
 
+(define-public rust-getch-0.2
+  (package
+    (name "rust-getch")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "getch" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "00in8q95qi8a5q3zn2zcaqp5avj79f5myd2a4zfdy2m24ycvbc5v"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-termios" ,rust-termios-0.2))))
+    (home-page
+     "https://nest.pijul.com/pijul_org/getch")
+    (synopsis
+     "Portable implementation of getch")
+    (description
+     "This package provides a portable implementation of getch, using
+_getch on Windows, and termios on Unix.")
+    (license license:asl2.0)))
+
 (define-public rust-getopts-0.2
   (package
     (name "rust-getopts")
-- 
2.28.0
From 0b0c36e6e20e0818562c226dbf8a5561e3a88d90 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 15:37:16 -0700
Subject: [PATCH 06/89] gnu: Add rust-diffs-0.3.

* gnu/packages/crates-io.scm (rust-diffs-0.3): New variable.
---
gnu/packages/crates-io.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index bad88b1dc3..a01c77064e 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -6612,6 +6612,30 @@ Diesel.")
        #:cargo-development-inputs
        (("rust-term" ,rust-term-0.2))))))
 
+(define-public rust-diffs-0.3
+  (package
+    (name "rust-diffs")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "diffs" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "036sqycmir4bbl4016jprsyjq4hicc31r68dyqadmc8ac9pk55d1"))))
+    (build-system cargo-build-system)
+    (home-page
+     "https://nest.pijul.com/pijul_org/pijul")
+    (synopsis
+     "Diff algorithms, also called longest common subsequence")
+    (description
+     "This package provides a number of diff algorithms, also called longest
+common subsequence.  The diff algorithms include Myer's diff and Patience
+diff.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-digest-0.9
   (package
     (name "rust-digest")
-- 
2.28.0
From 880e89a2b7a81f80ba5259e6a5ffc92e5d73bbcb Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 15:50:51 -0700
Subject: [PATCH 07/89] gnu: Add rust-sanakirja-0.10.

* gnu/packages/crates-io.scm (rust-sanakirja-0.10): New variable.
---
gnu/packages/crates-io.scm | 41 ++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)

Toggle diff (54 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index a01c77064e..42dc3413fe 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -23521,6 +23521,47 @@ paths point to the same file.")
        #:cargo-development-inputs
        (("rust-rand" ,rust-rand-0.3))))))
 
+(define-public rust-sanakirja-0.10
+  (package
+    (name "rust-sanakirja")
+    (version "0.10.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "sanakirja" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1fhn5lb6jn0pimnk0nbf5h4xvp28xdkdh33d57gq1ixy8b2y091y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-fs2" ,rust-fs2-0.4)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-memmap" ,rust-memmap-0.7)
+        ("rust-rand" ,rust-rand-0.4)
+        ("rust-uuid" ,rust-uuid-0.7))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-hex" ,rust-hex-0.3)
+        ("rust-tempdir" ,rust-tempdir-0.3))))
+    (home-page
+     "https://nest.pijul.com/pijul_org/sanakirja")
+    (synopsis
+     "Key-value dictionary, using copy-on-write and B trees")
+    (description
+     "This package provides a key-value dictionary, using copy-on-write and B
+trees.  It features:
+@itemize
+@item ACID semantics.
+@item B trees with copy-on-write.
+@item Support for referential transparency: databases can be cloned in time
+O(log n) (where n is the size of the database).  This was the original
+motivation for writing this library.
+@end itemize")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-scan-fmt-0.2
   (package
     (name "rust-scan-fmt")
-- 
2.28.0
From 0b37114da0fee5ee67c92d6115ff0bfb3c007b4f Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 15:55:21 -0700
Subject: [PATCH 08/89] gnu: Add rust-buffered-reader-0.9.

* gnu/packages/crates-io.scm (rust-buffered-reader-0.9): New variable.
---
gnu/packages/crates-io.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 42dc3413fe..1ddcf108dd 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -2725,6 +2725,35 @@ UTF-8.")
         (base32
          "0nzi9vqhl56ws8gq39f3aj4qjrr4l3g5lbkkcj8xq1x4cb74wq2r"))))))
 
+(define-public rust-buffered-reader-0.9
+  (package
+    (name "rust-buffered-reader")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "buffered-reader" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "05rklfiia1k4c4ifpim08l22i0q0l3j9xdg2yh3njrp6w58z6z13"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bzip2" ,rust-bzip2-0.3)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://sequoia-pgp.org/")
+    (synopsis "Super-powered Reader")
+    (description
+     "Like the @code{BufRead} trait, the @code{BufferedReader} trait has an
+internal buffer that is directly exposed to the user.  This design enables two
+performance optimizations.  First, the use of an internal buffer amortizes
+system calls.  Second, exposing the internal buffer allows the user to work
+with data in place, which avoids another copy.")
+    (license license:gpl3)))
+
 (define-public rust-build-const-0.2
   (package
     (name "rust-build-const")
-- 
2.28.0
From bd626722974217684648400945f76ef514fe5cfa Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:07:16 -0700
Subject: [PATCH 09/89] gnu: Add rust-sequoia-rfc2822-0.9.

* gnu/packages/crates-io.scm (rust-sequoia-rfc2822-0.9): New variable.
---
gnu/packages/crates-io.scm | 39 ++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)

Toggle diff (52 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 1ddcf108dd..a2b380a2ca 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -24325,6 +24325,45 @@ comparison.")
          (base32
           "18vhypw6zgccnrlm5ps1pwa0khz7ry927iznpr88b87cagr1v2iq"))))))
 
+(define-public rust-sequoia-rfc2822-0.9
+  (package
+    (name "rust-sequoia-rfc2822")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "sequoia-rfc2822" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1aj34i6862718m162rqfv69fkmvdw063s6ws7hbp42n73gb08p5c"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-failure" ,rust-failure-0.1)
+        ("rust-lalrpop-util" ,rust-lalrpop-util-0.17))
+       #:cargo-development-inputs
+       (("rust-lalrpop" ,rust-lalrpop-0.17)
+        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-quickcheck" ,rust-quickcheck-0.8)
+        ("rust-rand" ,rust-rand-0.4))))
+    (home-page "https://sequoia-pgp.org/")
+    (synopsis "RFC 2822 name-addr parser")
+    (description
+     "Currently, this crate only recognizes the RFC 2822 name-addr and
+addr-spec productions, i.e., things of the form:
+
+Name (Comment) <email@@example.org>
+
+and
+
+email@@example.org
+
+Although the above appear simple to parse, RFC 2822's whitespace and comment
+rules are rather complex.  This crate implements the whole grammar." )
+    (license license:gpl3)))
+
 (define-public rust-serde-1
   (package
     (name "rust-serde")
-- 
2.28.0
From 90b12c7f0bc5de6078265881e3302004c0896138 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Thu, 18 Jun 2020 15:13:55 -0700
Subject: [PATCH 10/89] gnu: rust-nettle-sys-2: do not skip build.

* gnu/packages/crates-io.scm (rust-nettle-2-sys): [arguments] Change
cargo-development-inputs into cargo-inputs since they are required to
build. Do not skip build.
---
gnu/packages/crates-io.scm | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

Toggle diff (16 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index a2b380a2ca..6637fd3bec 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -15899,8 +15899,7 @@ cryptographic library.")
     (inputs
      `(("nettle", nettle)))
     (arguments
-     `(#:skip-build? #t
-       #:cargo-development-inputs
+     `(#:cargo-inputs
        (("rust-bindgen" ,rust-bindgen-0.51)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (home-page "https://gitlab.com/sequoia-pgp/nettle-sys")
-- 
2.28.0
From 9f4785dab206009add9ae4fce7f570dd028cc216 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Thu, 18 Jun 2020 14:50:52 -0700
Subject: [PATCH 11/89] gnu: Add rust-nettle-5.

* gnu/packages/crates-io.scm (rust-nettle-5): New variable.
---
gnu/packages/crates-io.scm | 14 ++++++++++++++
1 file changed, 14 insertions(+)

Toggle diff (27 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 6637fd3bec..263af03b1b 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -15880,6 +15880,20 @@ types as proposed in RFC 1158.")
 cryptographic library.")
   (license (list license:lgpl3 license:gpl2 license:gpl3))))
 
+(define-public rust-nettle-5
+  (package
+    (inherit rust-nettle-7)
+    (version "5.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "nettle" version))
+       (file-name
+        (string-append (package-name rust-nettle-7) "-" version ".tar.gz"))
+       (sha256
+        (base32 "0zfplqdf3mag8r7lc124hl24vri8yg711jmm8gl1mpwnlhass2n4"))
+       (patches (search-patches "rust-nettle-disable-vendor.patch"))))))
+
 (define-public rust-nettle-sys-2
   (package
     (name "rust-nettle-sys")
-- 
2.28.0
From 64d123cf4a162df28f51c6eaa1636476c8d98678 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:08:02 -0700
Subject: [PATCH 12/89] gnu: Add rust-sequoia-openpgp-0.9.

* gnu/packages/crates-io.scm (rust-sequoia-openpgp-0.10): New variable.
---
gnu/packages/crates-io.scm | 50 ++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)

Toggle diff (63 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 263af03b1b..50a3b4d89a 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -24338,6 +24338,56 @@ comparison.")
          (base32
           "18vhypw6zgccnrlm5ps1pwa0khz7ry927iznpr88b87cagr1v2iq"))))))
 
+(define-public rust-sequoia-openpgp-0.9
+  (package
+    (name "rust-sequoia-openpgp")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "sequoia-openpgp" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "007h2pi7lcph5jf5bxjydm7hjwjai33yk6dic3cxknki22lxlkfw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-buffered-reader" ,rust-buffered-reader-0.9)
+        ("rust-bzip2" ,rust-bzip2-0.3)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-idna" ,rust-idna-0.1)
+        ("rust-lalrpop" ,rust-lalrpop-0.17)
+        ("rust-lalrpop-util" ,rust-lalrpop-util-0.17)
+        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-memsec" ,rust-memsec-0.5)
+        ("rust-nettle" ,rust-nettle-5)
+        ("rust-quickcheck" ,rust-quickcheck-0.8)
+        ("rust-rand" ,rust-rand-0.4)
+        ("rust-safemem" ,rust-safemem-0.3)
+        ("rust-sequoia-rfc2822" ,rust-sequoia-rfc2822-0.9)
+        ("rust-time" ,rust-time-0.1))
+       #:cargo-development-inputs
+       (("rust-lalrpop" ,rust-lalrpop-0.17)
+        ("rust-rpassword" ,rust-rpassword-4))))
+    (home-page "https://sequoia-pgp.org/")
+    (synopsis
+     "OpenPGP data types and associated machinery")
+    (description
+     "This crate aims to provide a complete implementation of OpenPGP as
+defined by RFC 4880 as well as some extensions (e.g., RFC 6637, which
+describes ECC cryptography for OpenPGP.  This includes support for unbuffered
+message processing.
+
+A few features that the OpenPGP community considers to be deprecated (e.g.,
+version 3 compatibility) have been left out.  We have also updated some
+OpenPGP defaults to avoid foot guns (e.g., we selected modern algorithm
+defaults).  If some functionality is missing, please file a bug report."  )
+    (license license:gpl3)))
+
 (define-public rust-sequoia-rfc2822-0.9
   (package
     (name "rust-sequoia-rfc2822")
-- 
2.28.0
From 4655a6c453255fc88a80439dfa1c947872c04113 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:11:21 -0700
Subject: [PATCH 13/89] gnu: Add rust-libpijul-0.12.

* gnu/package/crates-io.scm (rust-libpijul-0.12): New variable.
---
gnu/packages/crates-io.scm | 57 ++++++++++++++++++++++++++++++++++++++
1 file changed, 57 insertions(+)

Toggle diff (70 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 50a3b4d89a..d89a7ccada 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -13714,6 +13714,63 @@ allocator.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-libpijul-0.12
+  (package
+    (name "rust-libpijul")
+    (version "0.12.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libpijul" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "18d9n8xaq5ncq3375f0xrr96l8si1frczgzdlrz3fl1jby8vbl6f"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-bincode" ,rust-bincode-1)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-bs58" ,rust-bs58-0.2)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-diffs" ,rust-diffs-0.3)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-hex" ,rust-hex-0.3)
+        ("rust-ignore" ,rust-ignore-0.4)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-rand" ,rust-rand-0.4)
+        ("rust-sanakirja" ,rust-sanakirja-0.10)
+        ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-0.9)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-tempdir" ,rust-tempdir-0.3)
+        ("rust-toml" ,rust-toml-0.5))))
+    (home-page "https://pijul.org/")
+    (synopsis
+     "Library component of the pijul version control system")
+    (description
+     "This crate contains the core API to access Pijul repositories.
+
+The key object is a @code{Repository}, on which @code{Txn} (immutable
+transactions) and @code{MutTxn} (mutable transactions) can be started, to
+perform a variety of operations.
+
+Another important object is a @code{Patch}, which encodes two different pieces
+of information:
+
+@itemize
+@item Information about deleted and inserted lines between two versions of a
+file.
+@item Information about file moves, additions and deletions.
+@end itemize")
+    (license license:gpl2+)))
+
 (define-public rust-libsqlite3-sys-0.15
   (package
     (name "rust-libsqlite3-sys")
-- 
2.28.0
From 1ab9009d2c789738ea8dfc8fc88256f56cabeb48 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:16:18 -0700
Subject: [PATCH 14/89] gnu: Add rust-line-0.1.

* gnu/packages/crates-io.scm (rust-line-0.1): New variable.
---
gnu/packages/crates-io.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index d89a7ccada..8e0a9ce609 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -13834,6 +13834,39 @@ known as zlib).")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-line-0.1
+  (package
+    (name "rust-line")
+    (version "0.1.15")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "line" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0pissvrl5398701zlfd22w51ca32vhw83vbsl58a330hr4w5ra04"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-utf8parse" ,rust-utf8parse-0.1))))
+    (home-page "https://crates.io/crates/line")
+    (synopsis
+     "Rust implementation of line editing in a terminal")
+    (description
+     "The main goals of this library are:
+
+@itemize
+@item Portability: should work on any system (Unix or Windows).
+@item Support: was written for a real-world project (Pijul), so support is
+unlikely to stop soon.
+@item Output quality: avoid usual blinking terminal lines that older C
+libraries have.
+@end itemize")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-line-wrap-0.1
   (package
     (name "rust-line-wrap")
-- 
2.28.0
From c1827c385fa5892d329e594c0e6f2b1f88eccdf5 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:18:54 -0700
Subject: [PATCH 15/89] gnu: Add rust-pathdiff-0.1.

* gnu/packages/crates-io.scm (rust-pathdiff-0.1): New variable.
---
gnu/packages/crates-io.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 8e0a9ce609..082b4de018 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -18315,6 +18315,29 @@ and would-block I/O operations.")
 path.Clean.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-pathdiff-0.1
+  (package
+    (name "rust-pathdiff")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pathdiff" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0cfg3isnx6mf3wbi7rsg4nmvywby40sbcs589n20fgi09l4p1gx3"))))
+    (build-system cargo-build-system)
+    (home-page
+     "https://github.com/Manishearth/pathdiff")
+    (synopsis
+     "Library for diffing paths to obtain relative paths")
+    (description
+     "Use diff_paths to construct a relative path from a provided base
+directory path to the provided path.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-pbkdf2-0.4
   (package
     (name "rust-pbkdf2")
-- 
2.28.0
From 00653952ed88d2a7022034cf700a6c6a7d5a4e9f Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:21:43 -0700
Subject: [PATCH 16/89] gnu: Add rust-progrs-0.1.

* gnu/packages/crates-io.scm (rust-progrs-0.1): New variable.
---
gnu/packages/crates-io.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 082b4de018..82e2f80f15 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -19969,6 +19969,39 @@ macro use case.")
 @code{proc_macro_derive} pretend to be @code{proc_macro}.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-progrs-0.1
+  (package
+    (name "rust-progrs")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "progrs" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "108jx8jrv2r1brhvbqfw6fwx298k5fnw3m46kn7lv0jx2wmf0ifz"))))
+    (build-system cargo-build-system)
+    (home-page
+     "https://nest.pijul.com/laumann/progrs")
+    (synopsis
+     "A small library for displaying compact progress bars")
+    (description
+     "There are a number of libraries out there that can be used for progress
+display, but in the author's opinion these libraries do it almost right -
+either they eat up too much screen real estate (by not sticking to one line
+per thing that should use progress) or they try to align stuff left and right.
+
+In the author's humble opinion, the best example of just the right amount of
+information vs screen real-estate is in the Git progress output (when cloning,
+pulling, etc).  It uses one line per thing, and may display both percentage
+complete (in cases where it's known) and even throughput (for network
+transfer).
+
+This library mimics the Git way of showing progress.")
+    (license license:gpl2+)))
+
 (define-public rust-proptest-0.9
   (package
     (name "rust-proptest")
-- 
2.28.0
From dd6f00c27b2bd5996873a02b4645fc3df760c8b5 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:24:13 -0700
Subject: [PATCH 17/89] gnu: Add rust-rpassword-2.1.0.

* gnu/packages/crates-io.scm (rust-rpassword-2.1.0): New variable.
---
gnu/packages/crates-io.scm | 15 +++++++++++++++
1 file changed, 15 insertions(+)

Toggle diff (28 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 82e2f80f15..b099399ff0 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -22414,6 +22414,21 @@ rust.")
 console applications.")
   (license license:asl2.0)))
 
+(define-public rust-rpassword-2.1.0
+  (package
+    (inherit rust-rpassword-4)
+    (version "2.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rpassword" version))
+       (file-name
+        (string-append
+         (package-name rust-rpassword-4) "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1v255xqkig5lwnczvm3achydhxx6kf9jcdxdlgzndgpd18bp6x6k"))))))
+
 (define-public rust-rusqlite-0.19
   (package
     (name "rust-rusqlite")
-- 
2.28.0
From 2391088c2fa36a8b1489408319fd19c399497367 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:33:19 -0700
Subject: [PATCH 18/89] gnu: Add rust-cookie-0.12.

* gnu/packages/crates-io.scm (rust-cookie-0.12): New variable.
---
gnu/packages/crates-io.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index b099399ff0..20d541a377 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -4529,6 +4529,35 @@ It is inspired by the Linux kernel's @code{crypto_memneq}.")
 semantics than those provided by @code{as} or @code{From}/@code{Into}.")
     (license license:expat)))
 
+(define-public rust-cookie-0.12
+  (package
+    (name "rust-cookie")
+    (version "0.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cookie" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1mdvqixahcywvqp0y8k2skkgbpfhsp0w73l9mz93dcrx1gq091l8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-ring" ,rust-ring-0.16)
+        ("rust-time" ,rust-time-0.1)
+        ("rust-url" ,rust-url-1))))
+    (home-page
+     "https://github.com/SergioBenitez/cookie-rs")
+    (synopsis
+     "Crate for parsing HTTP cookie headers and managing a cookie jar")
+    (description
+     "Parse HTTP cookie headers and manage a cookie jar with this crate.
+It supports signed and private (encrypted + signed) jars.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-cordic-0.1
   (package
     (name "rust-cordic")
-- 
2.28.0
From 0f10a63244e401b49fad9eb8dc9918252037f9dc Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:42:35 -0700
Subject: [PATCH 19/89] gnu: Add rust-cookie-store-0.7.

* gnu/packages/crates-io.scm (rust-cookie-store-0.7): New variable.
---
gnu/packages/crates-io.scm | 40 ++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (53 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 20d541a377..263348a8db 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -4558,6 +4558,46 @@ semantics than those provided by @code{as} or @code{From}/@code{Into}.")
 It supports signed and private (encrypted + signed) jars.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-cookie-store-0.7
+  (package
+    (name "rust-cookie-store")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cookie-store" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "174i9k9g62pfx7y1nqynywdpjplkl3j4hi3ck6bz2r996qzhnxa6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cookie" ,rust-cookie-0.12)
+        ("rust-idna" ,rust-idna-0.1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-publicsuffix" ,rust-publicsuffix-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-time" ,rust-time-0.1)
+        ("rust-try-from" ,rust-try-from-0.3)
+        ("rust-url" ,rust-url-1))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-pretty-assertions"
+         ,rust-pretty-assertions-0.6))))
+    (home-page
+     "https://github.com/pfernie/cookie_store")
+    (synopsis
+     "Implementation of Cookie storage and retrieval per RFC6265")
+    (description
+     "This crate provides an implementation for storing and retrieving Cookies per
+the path and domain matching rules specified in RFC6265.
+
+Split from the user_agent crate.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-cordic-0.1
   (package
     (name "rust-cordic")
-- 
2.28.0
From d6088ec44026ef916b3cceda50611821db004aff Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 16:47:23 -0700
Subject: [PATCH 20/89] gnu: Add rust-hyper-old-types-0.11.

* gnu/packages/crates-io.scm (rust-hyper-old-types-0.11): New variable.
---
gnu/packages/crates-io.scm | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)

Toggle diff (47 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 263348a8db..52d7e237b0 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -11890,6 +11890,40 @@ SystemTime}}.")
         ("rust-tokio-mockstream" ,rust-tokio-mockstream-1)
         ("rust-url" ,rust-url-1))))))
 
+(define-public rust-hyper-old-types-0.11
+  (package
+    (name "rust-hyper-old-types")
+    (version "0.11.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hyper-old-types" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1i69sks0bwamzqdbx8ffgkssxffv6crdmwjgl47nr5pkxi8vx5k8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f ; Tests do not compile
+       #:cargo-inputs
+       (("rust-base64" ,rust-base64-0.9)
+        ("rust-bytes" ,rust-bytes-0.4)
+        ("rust-http" ,rust-http-0.1)
+        ("rust-httparse" ,rust-httparse-1)
+        ("rust-language-tags" ,rust-language-tags-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-mime" ,rust-mime-0.3)
+        ("rust-percent-encoding" ,rust-percent-encoding-1.0)
+        ("rust-time" ,rust-time-0.1)
+        ("rust-unicase" ,rust-unicase-2))))
+    (home-page "https://hyper.rs")
+    (synopsis "HTTP types from hyper 0.11.x")
+    (description
+     "This package contains HTTP types from the newer hyper crate in versions
+0.11.x.")
+    (license license:expat)))
+
 (define-public rust-hyper-rustls-0.21
   (package
     (name "rust-hyper-rustls")
-- 
2.28.0
From b061348f666373ba900942a415f916f0f29fbd5a Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:14:20 -0700
Subject: [PATCH 21/89] gnu: Add rust-socks-0.3.

* gnu/packages/crates-io.scm (rust-socks-0.3): New variable.
---
gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 52d7e237b0..c4b776945a 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -26225,6 +26225,33 @@ maximal amount of configuration possible intended.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-socks-0.3
+  (package
+    (name "rust-socks")
+    (version "0.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "socks" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1hnbw4c4j7dn9n3bd1v7ddkdzlxlzkfw3z29da1nxlj6jgx4r9p6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-ws2-32-sys" ,rust-ws2-32-sys-0.2))))
+    (home-page
+     "https://github.com/sfackler/rust-socks")
+    (synopsis "Rust SOCKS proxy clients")
+    (description
+     "You can write SOCKS proxy clients with this crate.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-sourcefile-0.1
   (package
     (name "rust-sourcefile")
-- 
2.28.0
From b661575c6ec78bf7d20f720f880f5f9e6768bb05 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:32:40 -0700
Subject: [PATCH 22/89] gnu: Add rust-trust-dns-rustls-0.6.

* gnu/packages/crates-io.scm (rust-trust-dns-rustls-0.6): New variable.
---
gnu/packages/crates-io.scm | 39 ++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)

Toggle diff (52 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index c4b776945a..c2f6d0daf1 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -30527,6 +30527,45 @@ other queries.")
 extension for the Trust-DNS client to use rustls for TLS.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-trust-dns-rustls-0.6
+  (package
+    (inherit rust-trust-dns-rustls-0.19)
+    (name "rust-trust-dns-rustls")
+    (version "0.6.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-rustls" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0vbh2y7w2s5gcw33fn4hb5f927kgjm6603vw63slg9riikmsiq43"))))
+    (native-inputs
+     `(("openssl" ,openssl)
+       ("pkg-config" ,pkg-config)))
+    (arguments
+     `(#:cargo-test-flags
+       '("--release" "--" "--skip=tests::test_tls_client_stream_ipv4")
+       #:cargo-inputs
+       (("rust-futures" ,rust-futures-0.1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-rustls" ,rust-rustls-0.15)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.9)
+        ("rust-tokio-tcp" ,rust-tokio-tcp-0.1)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.7)
+        ("rust-webpki" ,rust-webpki-0.19))
+       #:cargo-development-inputs
+       (("rust-openssl" ,rust-openssl-0.10)
+        ("rust-tokio" ,rust-tokio-0.1))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'find-openssl
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((openssl (assoc-ref inputs "openssl")))
+               (setenv "OPENSSL_DIR" openssl))
+             #t)))))))
+
 (define-public rust-try-from-0.3
   (package
     (name "rust-try-from")
-- 
2.28.0
From b7e19f013e98b3771c01fa11a98d3fdbb2524224 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:54:28 -0700
Subject: [PATCH 23/89] gnu: Add rust-tracing-log-0.1.

* gnu/packages/crates-io.scm (rust-tracing-log-0.1): New variable.
---
gnu/packages/crates-io.scm | 42 ++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)

Toggle diff (55 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index c2f6d0daf1..1f25e9b90d 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -30270,6 +30270,48 @@ automatically instrumenting functions.")
 @code{futures} with @code{tracing}.")
     (license license:expat)))
 
+(define-public rust-tracing-log-0.1
+  (package
+    (name "rust-tracing-log")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tracing-log" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0qsinlbk2knrqgx1k2zq8kjxs71x44vzpma2rin1sm462agcjav5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-tracing-core" ,rust-tracing-core-0.1))
+       #:cargo-development-inputs
+       (("rust-tracing" ,rust-tracing-0.1))))
+    (home-page "https://tokio.rs")
+    (synopsis
+     "Provides compatibility between tracing the log crates")
+    (description
+     "Tracing is a framework for instrumenting Rust programs with
+context-aware, structured, event-based diagnostic information.  This crate
+provides compatibility layers for using tracing alongside the logging facade
+provided by the log crate.
+
+This crate provides:
+
+@itemize
+@item @code{AsTrace} and @code{AsLog} traits for converting between tracing
+and log types.
+@item @code{LogTracer}, a @code{log::Log} implementation that consumes
+@code{log::Records} and outputs them as @code{tracing::Events}.
+@item An @code{env_logger} module, with helpers for using the env_logger crate
+with tracing (optional, enabled by the env-logger feature).
+@end itemize")
+    (license license:expat)))
+
 (define-public rust-traitobject-0.1
   (package
     (name "rust-traitobject")
-- 
2.28.0
From f0fea95e303a451740da11d89470b12926b7672d Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:51:44 -0700
Subject: [PATCH 24/89] gnu: Add rust-matchers-0.0.

* gnu/package/crates-io.scm (rust-matchers-0.0): New variable.
---
gnu/packages/crates-io.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 1f25e9b90d..9357698cda 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -14732,6 +14732,32 @@ statement, the first matching branch is the item that gets emitted.")
 whether an expression matches a pattern.")
     (license license:expat)))
 
+(define-public rust-matchers-0.0
+  (package
+    (name "rust-matchers")
+    (version "0.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "matchers" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1q8ckqmkjqkznvdi9x0z769yz2bmvlqcwx51ad2lpk4mfmgpi6gh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-regex-automata" ,rust-regex-automata-0.1))))
+    (home-page "https://github.com/hawkw/matchers")
+    (synopsis
+     "Regex matching on character and byte streams")
+    (description
+     "Use this crate to match on character and byte streams using regular
+grammars.  It provides the subset of the regex crate that only deals with
+matching, not parsing substrings.")
+    (license license:expat)))
+
 (define-public rust-matrixmultiply-0.2
   (package
     (name "rust-matrixmultiply")
-- 
2.28.0
From 538a78dabed6b9c4f0229ee86c31b609f3515487 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:55:40 -0700
Subject: [PATCH 25/89] gnu: Add rust-tracing-subscriber-0.1.

* gnu/packages/crates-io.scm (rust-tracing-subscriber-0.1): New variable.
---
gnu/packages/crates-io.scm | 48 ++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)

Toggle diff (61 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 9357698cda..e81025a394 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -30338,6 +30338,54 @@ with tracing (optional, enabled by the env-logger feature).
 @end itemize")
     (license license:expat)))
 
+(define-public rust-tracing-subscriber-0.1
+  (package
+    (name "rust-tracing-subscriber")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tracing-subscriber" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0bn6911zky2wg8ndvrj38v02hml0hpk0g49h0d3kf52klxqiffy6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ansi-term" ,rust-ansi-term-0.11)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-matchers" ,rust-matchers-0.0)
+        ("rust-owning-ref" ,rust-owning-ref-0.4)
+        ("rust-parking-lot" ,rust-parking-lot-0.9)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-smallvec" ,rust-smallvec-0.6)
+        ("rust-tracing-core" ,rust-tracing-core-0.1)
+        ("rust-tracing-log" ,rust-tracing-log-0.1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-tracing-log" ,rust-tracing-log-0.1))))
+    (home-page "https://tokio.rs")
+    (synopsis
+     "Implement and compose tracing subscribers")
+    (description
+     "Utilities for implementing and composing tracing subscribers.
+
+Tracing is a framework for instrumenting Rust programs to collect
+scoped, structured, and async-aware diagnostics.  The Subscriber trait
+represents the functionality necessary to collect this trace
+data.  This crate contains tools for composing subscribers out of
+smaller units of behaviour, and batteries-included implementations of
+common subscriber functionality.
+
+Tracing-subscriber is intended for use by both Subscriber authors and
+application authors using tracing to instrument their applications.")
+    (license license:expat)))
+
 (define-public rust-traitobject-0.1
   (package
     (name "rust-traitobject")
-- 
2.28.0
From 9158c5d5b8b61f3147beb67ff4f2192a49f06ae2 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:56:22 -0700
Subject: [PATCH 26/89] gnu: Add rust-tracing-fmt-0.1.

* gnu/packages/crates-io.scm (rust-tracing-fmt-0.1): New variable.
---
gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index e81025a394..24ba054114 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -30296,6 +30296,33 @@ automatically instrumenting functions.")
 @code{futures} with @code{tracing}.")
     (license license:expat)))
 
+(define-public rust-tracing-fmt-0.1
+  (package
+    (name "rust-tracing-fmt")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tracing-fmt" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0wagcrd6w8d3k7zdvg6sy2bwfh8w87i6ndia69p54fc7p3z4f1c8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-tracing-subscriber" ,rust-tracing-subscriber-0.1))
+       #:cargo-development-inputs
+       (("rust-tracing" ,rust-tracing-0.1))))
+    (home-page "https://tokio.rs")
+    (synopsis
+     "Tracing subscriber that formats and logs trace data")
+    (description
+     "This package provides a tracing subscriber that formats and logs trace
+data.  Moved to the tracing-subscriber crate.")
+    (license license:expat)))
+
 (define-public rust-tracing-log-0.1
   (package
     (name "rust-tracing-log")
-- 
2.28.0
From 472283588860dbfd69bd72df9cf477458d17b1d6 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 17:59:45 -0700
Subject: [PATCH 27/89] gnu: Add rust-tokio-net-0.2.

* gnu/packages/crates-io.scm (rust-tokio-net-0.2): New variable.
---
gnu/packages/crates-io.scm | 49 ++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)

Toggle diff (62 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 24ba054114..f2390f996b 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -29413,6 +29413,55 @@ applications backed by buffers.")
 Tokio.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-tokio-net-0.2
+  (package
+    (name "rust-tokio-net")
+    (version "0.2.0-alpha.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-net" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "15vm0bndn6zcpkp1yb6v736rbhqgim5skc76rz299xd3y0pr249a"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.4)
+        ("rust-crossbeam-queue" ,rust-crossbeam-queue-0.1)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
+        ("rust-futures-core-preview"
+         ,rust-futures-core-preview-0.3)
+        ("rust-futures-sink-preview"
+         ,rust-futures-sink-preview-0.3)
+        ("rust-futures-util-preview"
+         ,rust-futures-util-preview-0.3)
+        ("rust-iovec" ,rust-iovec-0.1)
+        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-mio" ,rust-mio-0.6)
+        ("rust-mio-named-pipes" ,rust-mio-named-pipes-0.1)
+        ("rust-mio-uds" ,rust-mio-uds-0.6)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-parking-lot" ,rust-parking-lot-0.8)
+        ("rust-signal-hook-registry"
+         ,rust-signal-hook-registry-1)
+        ("rust-slab" ,rust-slab-0.4)
+        ("rust-tokio-codec" ,rust-tokio-codec-0.1)
+        ("rust-tokio-executor" ,rust-tokio-executor-0.1)
+        ("rust-tokio-io" ,rust-tokio-io-0.1)
+        ("rust-tokio-sync" ,rust-tokio-sync-0.1)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://tokio.rs")
+    (synopsis
+     "Event loop that drives Tokio I/O resources")
+    (description
+     "This package provides the event loop that drives Tokio I/O resources.")
+    (license license:expat)))
+
 (define-public rust-tokio-openssl-0.4
   (package
     (name "rust-tokio-openssl")
-- 
2.28.0
From 37c8bc975213e8e33d057f43df6a0cffea5c53e5 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:02:30 -0700
Subject: [PATCH 28/89] gnu: Add rust-trust-dns-resolver-0.11.

* gnu/packages/crates-io.scm (rust-trust-dns-resolver-0.11): New variable.
---
gnu/packages/crates-io.scm | 50 ++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)

Toggle diff (63 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index f2390f996b..030e5e1045 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -30719,6 +30719,56 @@ other queries.")
 extension for the Trust-DNS client to use rustls for TLS.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-trust-dns-resolver-0.11
+  (package
+    (inherit rust-trust-dns-resolver-0.19)
+    (name "rust-trust-dns-resolver")
+    (version "0.11.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-resolver" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0fd0w2zsdwlsag27fsg0fzyd7j7niw0r22rwh2c5fdmsipjr56bc"))))
+    (arguments
+     `(#:tests? #f ; Tests require network access
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-ipconfig" ,rust-ipconfig-0.2)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-lru-cache" ,rust-lru-cache-0.1)
+        ("rust-resolv-conf" ,rust-resolv-conf-0.6)
+        ("rust-rustls" ,rust-rustls-0.15)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-smallvec" ,rust-smallvec-0.6)
+        ("rust-tokio" ,rust-tokio-0.1)
+        ("rust-tokio-tls" ,rust-tokio-tls-0.1)
+        ("rust-tokio-udp" ,rust-tokio-udp-0.1)
+        ("rust-trust-dns-https" ,rust-trust-dns-https-0.3)
+        ("rust-trust-dns-native-tls" ,rust-trust-dns-native-tls-0.6)
+        ("rust-trust-dns-openssl" ,rust-trust-dns-openssl-0.6)
+        ("rust-trust-dns-rustls" ,rust-trust-dns-rustls-0.6)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.16))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-tokio" ,rust-tokio-0.1)
+        ("rust-tokio-io" ,rust-tokio-io-0.1))))))
+    (home-page "http://www.trust-dns.org/index.html")
+    (synopsis
+     "Trust-DNS is a safe and secure DNS library")
+    (description
+     "Trust-DNS is a safe and secure DNS library.  This Resolver library uses
+the Client library to perform all DNS queries.  The Resolver is intended to be
+a high-level library for any DNS record resolution see Resolver and
+AsyncResolver for supported resolution types.  The Client can be used for
+other queries.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-trust-dns-rustls-0.6
   (package
     (inherit rust-trust-dns-rustls-0.19)
-- 
2.28.0
From 0d35b70f0ed3bc1574fd27dc6bbd79e7a7eb39c6 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:05:58 -0700
Subject: [PATCH 29/89] gnu: Add rust-shell-escape-0.1.

* gnu/packages/crates-io.scm (rust-shell-escape-0.1): New variable.
---
gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 030e5e1045..e4f6c41822 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -25770,6 +25770,28 @@ picking compatible shaders.")
      "This package allows easy binding to, and loading of, shared libraries.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-shell-escape-0.1
+  (package
+    (name "rust-shell-escape")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "shell-escape" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1fgs1iyx3b124b7njjmhfn9q5ipmhxrafavh8mxbfl9a9zk162hp"))))
+    (build-system cargo-build-system)
+    (home-page
+     "https://github.com/sfackler/shell-escape")
+    (synopsis
+     "Escape characters that may have a special meaning in a shell")
+    (description
+     "Escape characters that may have a special meaning in a shell.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-shell-words-0.1
   (package
     (name "rust-shell-words")
-- 
2.28.0
From 740e333900b6b3b707d359b844fdd32d4766be45 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:08:39 -0700
Subject: [PATCH 30/89] gnu: Add rust-thrussh-libsodium-0.1.

* gnu/packages/crates-io.scm (rust-thrussh-libsodium-0.1): New variable.
---
gnu/packages/crates-io.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index e4f6c41822..6dcdb45b22 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -28782,6 +28782,32 @@ fixed set of worker threads.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-thrussh-libsodium-0.1
+  (package
+    (name "rust-thrussh-libsodium")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "thrussh-libsodium" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0fjssjiwnmbxjvajk37l7k0fcw1ys97j7n8bpn3q3bbnz2qfrphv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (home-page
+     "https://nest.pijul.com/pijul_org/thrussh")
+    (synopsis
+     "Straightforward bindings to libsodium")
+    (description
+     "You can bind to libsodium from Rust with this crate.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-time-0.2
   (package
     (name "rust-time")
-- 
2.28.0
From 7fa05757a55b2341e14ab98e827f92b005f0aec5 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:14:33 -0700
Subject: [PATCH 31/89] gnu: Add rust-yasna-0.1.

* gnu/packages/crates-io.scm (rust-yasna-0.1): New variable.
---
gnu/packages/crates-io.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 6dcdb45b22..662adcb7bd 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -33544,6 +33544,35 @@ Read/Write streams as well as low-level in-memory encoding and decoding.")
        (("rust-clippy" ,rust-clippy-0.0)
         ("rust-linked-hash-map" ,rust-linked-hash-map-0.3))))))
 
+(define-public rust-yasna-0.1
+  (package
+    (name "rust-yasna")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "yasna" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1frcd79rzi6dlly7lldjn2avnhfmj6yxrjsgvb2p1k2zbxdzyc9s"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bit-vec" ,rust-bit-vec-0.4)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-num" ,rust-num-0.1)
+        ("rust-num-bigint" ,rust-num-bigint-0.1))
+       #:cargo-development-inputs
+       (("rust-num-traits" ,rust-num-traits-0.2))))
+    (home-page "https://github.com/qnighy/yasna.rs")
+    (synopsis "ASN.1 library for Rust")
+    (description
+     "To serialize ASN.1 data, you can use @code{construct_der}.
+To deserialize ASN.1 data, you can use parse_ber or @code{parse_der}."  )
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-zbase32-0.1
   (package
     (name "rust-zbase32")
-- 
2.28.0
From d19affd78fa5eca4968b648a51a31643e5251f03 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:16:52 -0700
Subject: [PATCH 32/89] gnu: Add rust-thrussh-keys-0.11.

* gnu/packages/crates-io.scm (rust-thrussh-keys-0.11): New variable.
---
gnu/packages/crates-io.scm | 45 ++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)

Toggle diff (58 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 662adcb7bd..5bebc6362a 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -28782,6 +28782,51 @@ fixed set of worker threads.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-thrussh-keys-0.11
+  (package
+    (name "rust-thrussh-keys")
+    (version "0.11.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "thrussh-keys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0rkhkkav9kv1q9lgxgydnrkniq4ccrf107lcygimralnkwyzjwjy"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-bit-vec" ,rust-bit-vec-0.4)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-cryptovec" ,rust-cryptovec-0.4)
+        ("rust-dirs" ,rust-dirs-2.0)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-hex" ,rust-hex-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-num-bigint" ,rust-num-bigint-0.1)
+        ("rust-num-integer" ,rust-num-integer-0.1)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-thrussh-libsodium"
+         ,rust-thrussh-libsodium-0.1)
+        ("rust-tokio" ,rust-tokio-0.1)
+        ("rust-yasna" ,rust-yasna-0.1))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-tempdir" ,rust-tempdir-0.3)
+        ("rust-tokio-uds" ,rust-tokio-uds-0.2))))
+    (home-page "https://pijul.org/thrussh/")
+    (synopsis
+     "Deal with SSH keys in Rust")
+    (description
+     "This package provides a rust library to deal with SSH keys.
+With it you can load them, decrypt them, and call an SSH agent.")
+    (license license:asl2.0)))
+
 (define-public rust-thrussh-libsodium-0.1
   (package
     (name "rust-thrussh-libsodium")
-- 
2.28.0
From 3505501e0a4e60c6248d8fe45837722f0c62e039 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:18:13 -0700
Subject: [PATCH 33/89] gnu: Add rust-thrussh-0.21.

* gnu/packages/crates-io.scm (rust-thrussh-0.21): New variable.
---
gnu/packages/crates-io.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (48 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 5bebc6362a..663ff9fe4e 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -28782,6 +28782,41 @@ fixed set of worker threads.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-thrussh-0.21
+  (package
+    (name "rust-thrussh")
+    (version "0.21.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "thrussh" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0k8ah3kx8q6vnkq3hi78s8acxdcws6yck0x989xzx2wi89nqflhl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-cryptovec" ,rust-cryptovec-0.4)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-thrussh-keys" ,rust-thrussh-keys-0.11)
+        ("rust-thrussh-libsodium"
+         ,rust-thrussh-libsodium-0.1)
+        ("rust-tokio" ,rust-tokio-0.1)
+        ("rust-tokio-io" ,rust-tokio-io-0.1))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.6))))
+    (home-page "https://pijul.org/thrussh/")
+    (synopsis "Client and server SSH library in Rust")
+    (description
+     "This package provides a client and server SSH library.")
+    (license license:asl2.0)))
+
 (define-public rust-thrussh-keys-0.11
   (package
     (name "rust-thrussh-keys")
-- 
2.28.0
From ecab2124be390f71c38be93d9fd729cedc4888f6 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:19:52 -0700
Subject: [PATCH 34/89] gnu: Add rust-thrussh-config-0.2.

* gnu/packages/crates-io.scm (rust-thrussh-config-0.2): New variable.
---
gnu/packages/crates-io.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 663ff9fe4e..897d69127d 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -28817,6 +28817,38 @@ fixed set of worker threads.")
      "This package provides a client and server SSH library.")
     (license license:asl2.0)))
 
+(define-public rust-thrussh-config-0.2
+  (package
+    (name "rust-thrussh-config")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "thrussh-config" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0h19qysnbdvv6z2y3ii3cxqn42yvjg73wnghx83kbwj6af6chryb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-dirs" ,rust-dirs-2.0)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-thrussh" ,rust-thrussh-0.21)
+        ("rust-tokio" ,rust-tokio-0.1))))
+    (home-page
+     "https://nest.pijul.com/pijul_org/thrussh")
+    (synopsis
+     "Utilities to parse .ssh/config files, including helpers")
+    (description
+     "This package contains utilities to parse .ssh/config files,
+including helpers to implement ProxyCommand in Thrussh.")
+    (license license:asl2.0)))
+
 (define-public rust-thrussh-keys-0.11
   (package
     (name "rust-thrussh-keys")
-- 
2.28.0
From 66ce53f02d2b5609a5ae935f299e838217f8bccc Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:55:46 -0700
Subject: [PATCH 35/89] gnu: Add rust-advapi32-sys-0.2.

* gnu/package/crates-io.scm (rust-advapi32-sys-0.2): New variable.
---
gnu/packages/crates-io.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 897d69127d..42bc949d77 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -185,6 +185,34 @@ the Rust programming language.")
     (license (list license:bsd-3
                    license:zlib))))
 
+(define-public rust-advapi32-sys-0.2
+  (package
+    (name "rust-advapi32-sys")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "advapi32-sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "16largvlrd1800vvdchml0ngnszjlnpqm01rcz5hm7di1h48hrg0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-winapi-build" ,rust-winapi-build-0.1))))
+    (home-page
+     "https://github.com/retep998/winapi-rs")
+    (synopsis
+     "Contains function definitions for the Windows API library advapi32")
+    (description
+     "Contains function definitions for the Windows API library advapi32.
+The winapi crate's types and constants has more details about this API.")
+    (license license:expat)))
+
 (define-public rust-aead-0.3
   (package
     (name "rust-aead")
-- 
2.28.0
From 155cf038f2a12195a9c66387bc1c2aa645c53452 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Wed, 17 Jun 2020 18:23:06 -0700
Subject: [PATCH 36/89] gnu: Add rust-username-0.2.

* gnu/packages/crates-io.scm (rust-username-0.2): New variable.
---
gnu/packages/crates-io.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 42bc949d77..65e87ae896 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -31797,6 +31797,32 @@ untrusted inputs in Rust.")
 See winapi for types and constants.")
     (license license:expat)))
 
+(define-public rust-username-0.2
+  (package
+    (name "rust-username")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "username" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "028s7gpsz17z6chy818bpkxldixfxhlvicvyvhdbrxr7cpgjbr4j"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-advapi32-sys" ,rust-advapi32-sys-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://crates.io/crates/username")
+    (synopsis
+     "Portably retrieve the username of the user running the current thread")
+    (description
+     "Portably retrieve the user name (and possibly other information in
+future versions) of the user running the current thread.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-users-0.10
   (package
     (name "rust-users")
-- 
2.28.0
From aa24a4a2cb0b78c530f0924e81106af13904e71e Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Tue, 20 Oct 2020 12:14:44 -0700
Subject: [PATCH 37/89] gnu: Add rust-ct-logs-0.6.

* gnu/packages/crates-io.scm (rust-ct-logs-0.6): New variable.
* gnu/packages/crates-io.scm (rust-ct-logs-0.3): Inherit from rust-ct-logs-0.6.
---
gnu/packages/crates-io.scm | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)

Toggle diff (34 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 65e87ae896..0c937fdd5f 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -5809,10 +5809,26 @@ reallocations.")
 Transparency logs for use with sct crate.")
     (license (list license:asl2.0 license:isc license:expat))))
 
-(define-public rust-ct-logs-0.3
+(define-public rust-ct-logs-0.6
   (package
     (inherit rust-ct-logs-0.7)
     (name "rust-ct-logs")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ct-logs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "04wiwiv4ghni3x2vni3z711mlz0ndqvh04vmdkbw3nr7zbsqcdjd"))))
+    (arguments
+     `(#:cargo-inputs (("rust-sct" ,rust-sct-0.6))))))
+
+(define-public rust-ct-logs-0.3
+  (package
+    (inherit rust-ct-logs-0.6)
+    (name "rust-ct-logs")
     (version "0.3.0")
     (source
      (origin
-- 
2.28.0
From 220aa4c868cb48c8fb5566baff2ceabe3fb567c5 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Tue, 20 Oct 2020 12:30:15 -0700
Subject: [PATCH 38/89] gnu: Add rust-tokio-rustls-0.10.

* gnu/packages/crates-io.scm (rust-tokio-rustls-0.10): New variable.
---
gnu/packages/crates-io.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 0c937fdd5f..02c7fa1982 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -29860,6 +29860,36 @@ using Rustls.")
         ("rust-webpki-roots" ,rust-webpki-roots-0.18))))
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-tokio-rustls-0.10
+  (package
+    (inherit rust-tokio-rustls-0.12)
+    (name "rust-tokio-rustls")
+    (version "0.10.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-rustls" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0xh6gxilm7waj55rxfgqmvl8abynzr3ang57qvbap400k67z0z1d"))))
+    (arguments
+     `(;; These tests require network access.
+       #:cargo-test-flags
+       '("--release"
+         "--" "--skip=test_badssl" "--skip=tls12" "--skip=modern")
+       #:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.5)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-rustls" ,rust-rustls-0.16)
+        ("rust-tokio" ,rust-tokio-0.1)
+        ("rust-webpki" ,rust-webpki-0.21)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.17))
+       #:cargo-development-inputs
+       (("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-tokio" ,rust-tokio-0.2)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.17))))))
+
 (define-public rust-tokio-signal-0.2
   (package
     (name "rust-tokio-signal")
-- 
2.28.0
From 3c32566cf3bbff03dc0723862740a1e25f5d90c9 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Tue, 20 Oct 2020 12:36:23 -0700
Subject: [PATCH 39/89] gnu: Add rust-hyper-rustls-0.17.

* gnu/packages/crates-io.scm (rust-hyper-rustls-0.17): New variable.
---
gnu/packages/crates-io.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 02c7fa1982..c3b78967d9 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -12003,6 +12003,36 @@ HTTPS.")
     (license
      (list license:asl2.0 license:isc license:expat))))
 
+(define-public rust-hyper-rustls-0.17
+  (package
+    (inherit rust-hyper-rustls-0.21)
+    (name "rust-hyper-rustls")
+    (version "0.17.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hyper-rustls" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0li9xkzmqd40dbjbl9g0nbf2ka9y0q538ififyd30zsavz3qb7bi"))))
+    (arguments
+     `(#:cargo-test-flags
+       '("--release"
+         "--" "--skip=custom_ca_store" "--skip=client" "--skip=server")
+       #:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.4)
+        ("rust-ct-logs" ,rust-ct-logs-0.6)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-hyper" ,rust-hyper-0.12)
+        ("rust-rustls" ,rust-rustls-0.16)
+        ("rust-tokio-io" ,rust-tokio-io-0.1)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.10)
+        ("rust-webpki" ,rust-webpki-0.21)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.17))
+       #:cargo-development-inputs
+       (("rust-tokio" ,rust-tokio-0.2))))))
+
 (define-public rust-hyper-tls-0.4
   (package
     (name "rust-hyper-tls")
-- 
2.28.0
From a6ca279971daf9db9d04cbebacdc4b9365ca4e4e Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Tue, 20 Oct 2020 12:42:11 -0700
Subject: [PATCH 40/89] gnu: Add rust-serde-urlencoded-0.5.

* gnu/packages/crates-io.scm (rust-serde-urlencoded-0.5): New variable.
---
gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index c3b78967d9..9fca3ac71f 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -25309,6 +25309,28 @@ for the serde framework.")
     (description "x-www-form-urlencoded meets serde.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-serde-urlencoded-0.5
+  (package
+    (inherit rust-serde-urlencoded-0.6)
+    (name "rust-serde-urlencoded")
+    (version "0.5.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serde_urlencoded" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0nhnzllx5xrij4x17g351n14md691r95mxr7sbpz4sl80n8xcbb4"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-dtoa" ,rust-dtoa-0.4)
+        ("rust-itoa" ,rust-itoa-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-url" ,rust-url-1))
+       #:cargo-development-inputs
+       (("rust-serde-derive" ,rust-serde-derive-1))))))
+
 (define-public rust-serde-yaml-0.8
   (package
     (name "rust-serde-yaml")
-- 
2.28.0
From b8c09483e70866cfe6990121e63fb2d828f30ca9 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 07:09:20 -0700
Subject: [PATCH 41/89] gnu: Add rust-openssl-0.9.

* gnu/packages/crates-io.scm (rust-openssl-0.9): New variable.
* gnu/packages/crates-io.scm (rust-openssl-0.7): Inherit from rust-openssl-0.9.
---
gnu/packages/crates-io.scm | 31 ++++++++++++++++++++++++++++++-
1 file changed, 30 insertions(+), 1 deletion(-)

Toggle diff (47 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 9fca3ac71f..be7ac76140 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -17615,10 +17615,39 @@ You probably don't want to link to this crate directly; instead check out the
     (description "OpenSSL bindings.")
     (license license:asl2.0)))
 
-(define-public rust-openssl-0.7
+(define-public rust-openssl-0.9
   (package
     (inherit rust-openssl-0.10)
     (name "rust-openssl")
+    (version "0.9.24")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "openssl" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "11br5b8x1kc5klsn50ihiml82ajyzcwi3lljvrlsm8vlhhlmqq53"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-0.9)
+        ("rust-foreign-types" ,rust-foreign-types-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-openssl-sys" ,rust-openssl-sys-0.9))
+       #:cargo-development-inputs
+       (("rust-data-encoding" ,rust-data-encoding-2)
+        ("rust-hex" ,rust-hex-0.2)
+        ("rust-tempdir" ,rust-tempdir-0.3)
+        ("rust-winapi" ,rust-winapi-0.2)
+        ("rust-ws2-32-sys" ,rust-ws2-32-sys-0.2))))))
+
+(define-public rust-openssl-0.7
+  (package
+    (inherit rust-openssl-0.9)
+    (name "rust-openssl")
     (version "0.7.14")
     (source
      (origin
-- 
2.28.0
From ef9fed56058d08af74bf9eb790051e7aaff36eb1 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 07:32:32 -0700
Subject: [PATCH 42/89] gnu: Add rust-core-foundation-sys-0.2.

* gnu/packages/crates-io.scm (rust-core-foundation-sys-0.2): New variable.
---
gnu/packages/crates-io.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index be7ac76140..e9012df979 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -4821,6 +4821,24 @@ macOS.")
         (base32
          "0fzsw1j9g1x598yhwklg59l15hwzc0pyvs01w9fg2kin4598mjp7"))))))
 
+(define-public rust-core-foundation-sys-0.2
+  (package
+    (inherit rust-core-foundation-sys-0.6)
+    (name "rust-core-foundation-sys")
+    (version "0.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "core-foundation-sys" version))
+       (file-name (string-append name "-" version ".crate"))
+       (sha256
+        (base32
+         "13f7f3kblyj6yxcxm74yg84vj9ahaprlc1vgblagmj6bzmzmsnh6"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2))))))
+
 (define-public rust-core-text-13
   (package
     (name "rust-core-text")
-- 
2.28.0
From c3ef2484a7f7c4953b59449a10e38095360ec9b8 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 07:34:59 -0700
Subject: [PATCH 43/89] [WIP] gnu: Add rust-core-foundation-0.2.

* gnu/packages/crates-io.scm (rust-core-foundation-0.2): New variable.
---
gnu/packages/crates-io.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index e9012df979..5ed77561c9 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -4787,6 +4787,26 @@ macOS.")
         ("rust-libc" ,rust-libc-0.2)
         ("rust-uuid" ,rust-uuid-0.5))))))
 
+(define-public rust-core-foundation-0.2
+  (package
+    (inherit rust-core-foundation-0.6)
+    (name "rust-core-foundation")
+    (version "0.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "core-foundation" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0rvcn7ab5r69wvn7gby745jlpy8pirfywcdxbiypy083s93dggr5"))))
+    (arguments
+     `(#:tests? #f
+       #:cargo-inputs
+       (("rust-core-foundation-sys" ,rust-core-foundation-sys-0.2)
+        ("rust-libc" ,rust-libc-0.2))))))
+
 (define-public rust-core-foundation-sys-0.7
   (package
     (name "rust-core-foundation-sys")
-- 
2.28.0
From 4a24c4959b11c2369207f5431847dbc8b3322982 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 07:40:20 -0700
Subject: [PATCH 44/89] gnu: Add rust-security-framework-sys-0.1.

* gnu/packages/crates-io.scm (rust-security-framework-sys-0.1): New variable.
---
gnu/packages/crates-io.scm | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)

Toggle diff (32 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 5ed77561c9..ea37bfa0c9 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -24612,6 +24612,25 @@ macOS and iOS.")
        (("rust-core-foundation-sys" ,rust-core-foundation-sys-0.6)
         ("rust-libc" ,rust-libc-0.2))))))
 
+(define-public rust-security-framework-sys-0.1
+  (package
+    (inherit rust-security-framework-sys-0.2)
+    (name "rust-security-framework-sys")
+    (version "0.1.16")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "security-framework-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1bdy87gvmahiiyfzghsdg2dkhznww3p3d3r676qs0y32hcg648al"))))
+    (arguments
+     `(#:skip-build? #t ; MacOS specific
+       #:cargo-inputs
+       (("rust-core-foundation-sys" ,rust-core-foundation-sys-0.2)
+        ("rust-libc" ,rust-libc-0.2))))))
+
 (define-public rust-selectors-0.22
   (package
     (name "rust-selectors")
-- 
2.28.0
From 272d6eb053386ccbbc0afa132b459f78d45ef391 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 07:42:28 -0700
Subject: [PATCH 45/89] gnu: Add rust-security-framework-0.1.

* gnu/packages/crates-io.scm (rust-security-framework-0.1): New variable.
---
gnu/packages/crates-io.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index ea37bfa0c9..f7623b40c8 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -24553,6 +24553,34 @@ macOS and iOS.")
        (("rust-hex" ,rust-hex-0.3)
         ("rust-tempdir" ,rust-tempdir-0.3))))))
 
+(define-public rust-security-framework-0.1
+  (package
+    (inherit rust-security-framework-0.2)
+    (name "rust-security-framework")
+    (version "0.1.16")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "security-framework" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0ci39ax08h2ngrl1yf1ra9smivhjs6xarmg7kp6fxracqpllx96z"))))
+    (arguments
+     `(#:skip-build? #t ; MacOS specific
+       #:cargo-inputs
+       (("rust-core-foundation"
+         ,rust-core-foundation-0.2)
+        ("rust-core-foundation-sys"
+         ,rust-core-foundation-sys-0.2)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-security-framework-sys"
+         ,rust-security-framework-sys-0.1))
+       #:cargo-development-inputs
+       (("rust-hex" ,rust-hex-0.2)
+        ("rust-tempdir" ,rust-tempdir-0.3))))))
+
 (define-public rust-security-framework-sys-1
   (package
     (name "rust-security-framework-sys")
-- 
2.28.0
From ffacac3352a92e17731345984a737432ac5d4ecf Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 07:48:00 -0700
Subject: [PATCH 46/89] [WIP] gnu: Add rust-native-tls-0.1.

* gnu/packages/crates-io.scm (rust-native-tls-0.1): New variable.
---
gnu/packages/crates-io.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index f7623b40c8..fe42e8a88d 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -16121,6 +16121,39 @@ IO of Windows's named pipes.")
      "This package provides a wrapper over a platform's native TLS implementation.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-native-tls-0.1
+  (package
+    (inherit rust-native-tls-0.2)
+    (name "rust-native-tls")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "native-tls" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1h7v80nlskyr7b1gsg4ivlpm6pilj6ybgvcwadj7ips3igfblkgp"))))
+    (arguments
+     `(#:skip-build? #t ; openssl?
+       #:tests? #f      ; tests require network access
+       #:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-0.2)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-openssl" ,rust-openssl-0.9)
+        ("rust-schannel" ,rust-schannel-0.1)
+        ("rust-security-framework" ,rust-security-framework-0.1)
+        ("rust-security-framework-sys" ,rust-security-framework-sys-0.1)
+        ("rust-tempdir" ,rust-tempdir-0.3))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'find-openssl
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((openssl (assoc-ref inputs "openssl")))
+               (setenv "OPENSSL_DIR" openssl))
+             #t)))))))
+
 (define-public rust-natord-1.0
   (package
     (name "rust-natord")
-- 
2.28.0
From ad222d6cc5a8d8883f1cd789e9542ba42e67466b Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 08:01:14 -0700
Subject: [PATCH 47/89] gnu: Add rust-slab-0.3.

* gnu/packages/crates-io.scm (rust-slab-0.3): New variable.
---
gnu/packages/crates-io.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Toggle diff (30 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index fe42e8a88d..99bcb96c36 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -26356,6 +26356,23 @@ variants in pure Rust.")
 data type.")
     (license license:expat)))
 
+(define-public rust-slab-0.3
+  (package
+    (inherit rust-slab-0.4)
+    (name "rust-slab")
+    (version "0.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "slab" version))
+        (file-name (string-append name "-" version ".crate"))
+        (sha256
+         (base32
+          "08xw8w61zdfn1094qkq1d554vh5wmm9bqdys8gqqxc4sv2pgrd0p"))))
+    (arguments
+     `(#:cargo-test-flags
+       '("--release" "--" "--skip=test_capacity_too_large1")))))
+
 (define-public rust-sleef-sys-0.1
   (package
     (name "rust-sleef-sys")
-- 
2.28.0
From 56e3f7943ae6ff9ee2494667fc5bcdad01f552d7 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 08:05:05 -0700
Subject: [PATCH 48/89] gnu: Add rust-smallvec-0.2.

* gnu/packages/crates-io.scm (rust-smallvec-0.2): New variable.
---
gnu/packages/crates-io.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 99bcb96c36..b02fcbfdb7 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -26503,6 +26503,24 @@ stack.")
        #:cargo-development-inputs
        (("rust-bincode" ,rust-bincode-1))))))
 
+(define-public rust-smallvec-0.2
+  (package
+    (inherit rust-smallvec-0.6)
+    (name "rust-smallvec")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "smallvec" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "04z0bv5pcnwnvij8kfzw56lnib9mjq8bafp120i7q48yvzbbr32c"))))
+    (arguments
+     `(#:cargo-test-flags
+       '("--release" "--" "--skip=tests::test_truncate")))))
+
 (define-public rust-socket2-0.3
   (package
     (name "rust-socket2")
-- 
2.28.0
From b320eb867b17afe49bf9e8c8da89e02d3b618c2f Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 08:09:55 -0700
Subject: [PATCH 49/89] gnu: Add rust-take-0.1.

* gnu/packages/crates-io.scm (rust-take-0.1): New variable.
---
gnu/packages/crates-io.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index b02fcbfdb7..322ad97044 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -28258,6 +28258,30 @@ syntax extension expansion.")
     (description "Send log messages to syslog.")
     (license license:expat)))
 
+(define-public rust-take-0.1
+  (package
+    (name "rust-take")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "take" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1i8p579k9kq21k7pcm4yzbc12xpshl39jfa5c1j6pxf1ia6qcmxi"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/carllerche/take")
+    (synopsis "Container utility for Rust")
+    (description
+     "This package provides the @code{Take} datatype. @code{Take} is a
+@code{Cell} allowing the inner value to be consumed without a mutable
+reference.
+
+In order to maintain safety, it is not possible to get access to the inner
+value without consuming it.")
+    (license `(,license:asl2.0 ,license:expat))))
+
 (define-public rust-take-mut-0.2
   (package
     (name "rust-take-mut")
-- 
2.28.0
From 29d329d7ed601c01ba66302d784d01a21e9a863a Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 08:13:05 -0700
Subject: [PATCH 50/89] gnu: Add rust-lazycell-0.4.

* gnu/packages/crates-io.scm (rust-lazycell-0.4): New variable.
---
gnu/packages/crates-io.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 322ad97044..43504d8b2c 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -13470,6 +13470,24 @@ requires non-const function calls to be computed.")
      "This package provides a library providing a lazily filled Cell struct.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-lazycell-0.4
+  (package
+    (inherit rust-lazycell-1)
+    (name "rust-lazycell")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lazycell" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0szgqfl2aw18kn9cf6qqpxxkiw6x6hx9y4r3gklnxn1r8xn304nf"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-clippy" ,rust-clippy-0.0))))))
+
 (define-public rust-lexical-core-0.7
   (package
     (name "rust-lexical-core")
-- 
2.28.0
From 8e5014c99bbe0bf4fea5f8c64553960cf5f2220e Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Fri, 19 Jun 2020 14:57:55 -0700
Subject: [PATCH 51/89] gnu: Add rust-tokio-service-0.1.

* gnu/packages/crates-io.scm (rust-tokio-service-0.1): New variable.
---
gnu/packages/crates-io.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 43504d8b2c..2fc2f5cbef 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -30166,6 +30166,31 @@ using Rustls.")
         ("rust-tokio" ,rust-tokio-0.2)
         ("rust-webpki-roots" ,rust-webpki-roots-0.17))))))
 
+(define-public rust-tokio-service-0.1
+  (package
+    (name "rust-tokio-service")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-service" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0qjinhax0y164kxp887mj8c5ih9829kdrnrb2ramzwg0fz825ni4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-futures" ,rust-futures-0.1))))
+    (home-page
+     "https://github.com/tokio-rs/tokio-service")
+    (synopsis
+     "Service trait for Tokio")
+    (description
+     "This package provids the core @code{Service} trait for Tokio.  It has
+been deprecated in favor of the tower crate.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-tokio-signal-0.2
   (package
     (name "rust-tokio-signal")
-- 
2.28.0
From d0ec8dfeaf5a06271ce5baaf7b056665322bd18e Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 08:16:00 -0700
Subject: [PATCH 52/89] gnu: Add rust-tokio-proto-0.1.

* gnu/packages/crates-io.scm (rust-tokio-proto-0.1): New variables.
---
gnu/packages/crates-io.scm | 39 ++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)

Toggle diff (52 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 2fc2f5cbef..25e9ff652a 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -30008,6 +30008,45 @@ backed by OpenSSL.")
 futures.")
     (license license:expat)))
 
+(define-public rust-tokio-proto-0.1
+  (package
+    (name "rust-tokio-proto")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-proto" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "12833cckniq3y83zjhk2ayv6qpr99d4mj1h3hz266g1mh6p4gfwg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures" ,rust-futures-0.1)
+        ("rust-log" ,rust-log-0.3)
+        ("rust-net2" ,rust-net2-0.2)
+        ("rust-rand" ,rust-rand-0.3)
+        ("rust-slab" ,rust-slab-0.3)
+        ("rust-smallvec" ,rust-smallvec-0.2)
+        ("rust-take" ,rust-take-0.1)
+        ("rust-tokio-core" ,rust-tokio-core-0.1)
+        ("rust-tokio-io" ,rust-tokio-io-0.1)
+        ("rust-tokio-service" ,rust-tokio-service-0.1))
+       #:cargo-development-inputs
+       (("rust-bytes" ,rust-bytes-0.4)
+        ("rust-env-logger" ,rust-env-logger-0.3)
+        ("rust-lazycell" ,rust-lazycell-0.4)
+        ("rust-mio" ,rust-mio-0.6))))
+    (home-page "https://tokio.rs")
+    (synopsis "Clients and servers for the Tokio platform")
+    (description
+     "This package makes it easy to implement clients and servers for
+request/response oriented protocols.  It takes a transport and provides the
+request/response API.  It is a part of the Tokio platform.")
+    (license `(,license:asl2.0 ,license:expat))))
+
 (define-public rust-tokio-reactor-0.1
   (package
     (name "rust-tokio-reactor")
-- 
2.28.0
From 7a8b8536d8842def250e2514000bcbf698d73008 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 08:23:12 -0700
Subject: [PATCH 53/89] gnu: Add rust-pretty-env-logger-0.2.

* gnu/packages/crates-io.scm (rust-pretty-env-logger-0.2): New variable.
---
gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 25e9ff652a..0497480de8 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -20022,6 +20022,28 @@ replacements, adding colorful diffs.")
         ("rust-chrono" ,rust-chrono-0.4)
         ("rust-env-logger" ,rust-env-logger-0.6))))))
 
+(define-public rust-pretty-env-logger-0.2
+  (package
+    (inherit rust-pretty-env-logger-0.3)
+    (name "rust-pretty-env-logger")
+    (version "0.2.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pretty_env_logger" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0a0c53plsr4abw0y1iyjxs0d64f0a6dn48464a2rp21f0iiix3gd"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-ansi-term" ,rust-ansi-term-0.11)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-env-logger" ,rust-env-logger-0.5)
+        ("rust-log" ,rust-log-0.4))))))
+
 (define-public rust-prettytable-rs-0.8
   (package
     (name "rust-prettytable-rs")
-- 
2.28.0
From 14e9c45ea7e49b54086d45d01a094bdf6ecc0757 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 08:29:11 -0700
Subject: [PATCH 54/89] gnu: Add rust-spmc-0.2.

* gnu/packages/crates-io.scm (rust-spmc-0.2): New variable.
---
gnu/packages/crates-io.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 0497480de8..1032134f9c 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -26770,6 +26770,26 @@ initializers are available.")
     (description "Simple SPMC channel")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-spmc-0.2
+  (package
+    (inherit rust-spmc-0.3)
+    (name "rust-spmc")
+    (version "0.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "spmc" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1nhbjc65avbb4nffk6b49spbv7rsmmnrppj2qnx39mhwi57spgiw"))))
+    (arguments
+     `(#:tests? #f ;; tests hang
+       #:cargo-development-inputs
+       (("rust-loom" ,rust-loom-0.2))))
+    ;; This package is broken before 0.3
+    ;; Only included for pijul@1
+    (properties `((hidden? . #t)))))
+
 (define-public rust-spsc-buffer-0.1
   (package
     (name "rust-spsc-buffer")
-- 
2.28.0
From ec64fd5b75e20fee13ff3ee13637772072781409 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 08:41:00 -0700
Subject: [PATCH 55/89] gnu: Add rust-relay-0.1.

* gnu/packages/crates-io.scm (rust-relay-0.1): New variable.
---
gnu/packages/crates-io.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 1032134f9c..b48277cbd9 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -22390,6 +22390,34 @@ uses finite automata and guarantees linear time matching on all inputs.")
     (description "This package provides portable, relative paths for Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-relay-0.1
+  (package
+    (name "rust-relay")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "relay" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "16j8y57rjrfy3h5xfi9fwfbjs1nka3iifi52rvp9szldd21f6xhm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures" ,rust-futures-0.1))))
+    (home-page "https://github.com/seanmonstar/relay")
+    (synopsis "Lightweight Future channel for passing data among tasks")
+    (description
+     "This package provides a lightweight channel using @code{Future}.  A
+relay channel does not implement @code{Send}, and so is not meant for
+synchronizing between threads.  Instead, its used to send message between
+tasks that live in the same thread.
+
+It is similar to the @code{oneshot} channel in the futures crate, but since it
+is not meant for sending across threads, it performs about twice as fast.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-remove-dir-all-0.5
   (package
     (name "rust-remove-dir-all")
-- 
2.28.0
From 2bf496f408d41865410fec7d703c9f520dff32ea Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 08:58:07 -0700
Subject: [PATCH 56/89] gnu: Add rust-try-lock-0.1.

* gnu/packages/crates-io.scm (rust-try-lock-0.1): New variable.
---
gnu/packages/crates-io.scm | 14 ++++++++++++++
1 file changed, 14 insertions(+)

Toggle diff (27 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index b48277cbd9..101e25f952 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -31493,6 +31493,20 @@ other queries.")
      "This package provides a lightweight atomic lock.")
     (license license:expat)))
 
+(define-public rust-try-lock-0.1
+  (package
+    (inherit rust-try-lock-0.2)
+    (name "rust-try-lock")
+    (version "0.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "try-lock" version))
+        (file-name (string-append name "-" version ".crate"))
+        (sha256
+         (base32
+          "1hp76pyzyxhcxxjacf083gpp6gf8cqwkg188yy02i2a3axqs8apf"))))))
+
 (define-public rust-trybuild-1
   (package
     (name "rust-trybuild")
-- 
2.28.0
From 9562fba86c72d06dedfd51dcbb6a25e98754d18c Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 08:44:44 -0700
Subject: [PATCH 57/89] gnu: Add rust-want-0.0.

* gnu/packages/crates-io.scm (rust-want-0.0): New variable.
---
gnu/packages/crates-io.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 101e25f952..47c8835ed9 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -32921,6 +32921,30 @@ result.")
     (description "Detect when another Future wants a result.")
     (license license:expat)))
 
+(define-public rust-want-0.0
+  (package
+    (inherit rust-want-0.2)
+    (name "rust-want")
+    (version "0.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "want" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1l9mbh4a0r2m3s8nckhy1vz9qm6lxsswlgxpimf4pyjkcyb9spd0"))))
+    (arguments
+     `(#:cargo-test-flags
+       '("--release"
+         "--"
+         "--skip=tests::want_notify_0"
+         "--skip=tests::want_notify_moving_tasks"
+         "--skip=tests::stress")
+       #:cargo-inputs
+       (("rust-futures" ,rust-futures-0.1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-try-lock" ,rust-try-lock-0.1))))))
+
 (define-public rust-wasi-0.9
   (package
     (name "rust-wasi")
-- 
2.28.0
From 9ebc609f40e6a0a5d30d39848a09ff181a68c6f0 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 08:31:07 -0700
Subject: [PATCH 58/89] gnu: Add rust-hyper-0.11.

* gnu/packages/crates-io.scm (rust-hyper-0.11): New variable.
---
gnu/packages/crates-io.scm | 40 ++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (53 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 47c8835ed9..ae04200442 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -11972,6 +11972,46 @@ SystemTime}}.")
         ("rust-tokio-mockstream" ,rust-tokio-mockstream-1)
         ("rust-url" ,rust-url-1))))))
 
+(define-public rust-hyper-0.11
+  (package
+    (inherit rust-hyper-0.12)
+    (name "rust-hyper")
+    (version "0.11.27")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hyper" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1msrx9fgiiv7vl4kryn2zgahbqndph5szrgqvm6fjhfk1759199l"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.9)
+        ("rust-bytes" ,rust-bytes-0.4)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-futures-cpupool" ,rust-futures-cpupool-0.1)
+        ("rust-http" ,rust-http-0.1)
+        ("rust-httparse" ,rust-httparse-1)
+        ("rust-iovec" ,rust-iovec-0.1)
+        ("rust-language-tags" ,rust-language-tags-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-mime" ,rust-mime-0.3)
+        ("rust-net2" ,rust-net2-0.2)
+        ("rust-percent-encoding" ,rust-percent-encoding-1.0)
+        ("rust-relay" ,rust-relay-0.1)
+        ("rust-time" ,rust-time-0.1)
+        ("rust-tokio-core" ,rust-tokio-core-0.1)
+        ("rust-tokio-io" ,rust-tokio-io-0.1)
+        ("rust-tokio-proto" ,rust-tokio-proto-0.1)
+        ("rust-tokio-service" ,rust-tokio-service-0.1)
+        ("rust-unicase" ,rust-unicase-2)
+        ("rust-want" ,rust-want-0.0))
+       #:cargo-development-inputs
+       (("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-pretty-env-logger" ,rust-pretty-env-logger-0.2)
+        ("rust-spmc" ,rust-spmc-0.2)
+        ("rust-url" ,rust-url-1))))))
+
 (define-public rust-hyper-old-types-0.11
   (package
     (name "rust-hyper-old-types")
-- 
2.28.0
From 41fc4547ef2f2457c4f384a005490c041f8f9cef Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 09:12:18 -0700
Subject: [PATCH 59/89] [WIP] gnu: Add rust-tokio-tls-0.1.

* gnu/packages/crates-io.scm (rust-tokio-tls-0.1): New variable.
---
gnu/packages/crates-io.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index ae04200442..d88916ce51 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -30612,6 +30612,39 @@ pool.")
 implementation of TLS for nonblocking I/O streams.")
     (license license:expat)))
 
+(define-public rust-tokio-tls-0.1
+  (package
+    (inherit rust-tokio-tls-0.3)
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-tls" version))
+       (file-name
+        (string-append
+         (package-name rust-tokio-tls-0.3) "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "04yrdscn8m9qza8ms09pqipbmj6x2q64jgm5n3ipy4b0wl24nbvp"))))
+    (arguments
+     `(#:skip-build? #t ; openssl?
+       #:cargo-inputs
+       (("rust-futures" ,rust-futures-0.1)
+        ("rust-native-tls" ,rust-native-tls-0.1)
+        ("rust-tokio-core" ,rust-tokio-core-0.1)
+        ("rust-tokio-io" ,rust-tokio-io-0.1)
+        ("rust-tokio-proto" ,rust-tokio-proto-0.1))
+       #:cargo-development-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-env-logger" ,rust-env-logger-0.4)
+        ("rust-hyper" ,rust-hyper-0.11)
+        ("rust-openssl" ,rust-openssl-0.9)
+        ("rust-schannel" ,rust-schannel-0.1)
+        ("rust-security-framework"
+         ,rust-security-framework-0.1)
+        ("rust-tokio-service" ,rust-tokio-service-0.1)
+        ("rust-winapi" ,rust-winapi-0.3))))))
+
 (define-public rust-tokio-trace-core-0.2
   (package
     (name "rust-tokio-trace-core")
-- 
2.28.0
From a41e1e2b0bae4987fe6dc83d8292df80677f36b3 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 09:19:35 -0700
Subject: [PATCH 60/89] gnu: Add rust-typed-headers-0.1.

* gnu/packages/crates-io.scm (rust-typed-headers-0.1): New variable.
---
gnu/packages/crates-io.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index d88916ce51..49495e5620 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -31674,6 +31674,27 @@ other queries.")
 deserialization.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-typed-headers-0.1
+  (package
+    (inherit rust-typed-headers-0.2)
+    (name "rust-typed-headers")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "typed-headers" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0g40nlq5iw0zxhwb7nfmfbr9m86abgwwhxwhzrm10nfq6bsmlvxx"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-bytes" ,rust-bytes-0.4)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-http" ,rust-http-0.1)
+        ("rust-mime" ,rust-mime-0.3))))))
+
 (define-public rust-typemap-0.3
   (package
     (name "rust-typemap")
-- 
2.28.0
From 2642ec2b52026ac8fea74d01119b4af714d5beb1 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 09:29:10 -0700
Subject: [PATCH 61/89] gnu: Add rust-enum-as-inner-0.2.

* gnu/packages/crates-io.scm (rust-enum-as-inner-0.2): New variable.
---
gnu/packages/crates-io.scm | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)

Toggle diff (32 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 49495e5620..70c0c86cc6 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -7839,6 +7839,25 @@ Standard.")
 accessor functions on enums.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-enum-as-inner-0.2
+  (package
+    (inherit rust-enum-as-inner-0.3)
+    (name "rust-enum-as-inner")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "enum-as-inner" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0zg3h7k3g1z7a9ayqy63sk302d4dg5g2h274ddv80mj4jxn2cn1x"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-0.4)
+        ("rust-quote" ,rust-quote-0.6)
+        ("rust-syn" ,rust-syn-0.15))))))
+
 (define-public rust-env-logger-0.7
   (package
     (name "rust-env-logger")
-- 
2.28.0
From f55bd9cc96d240782ac9834dbe6067a99d5f4d08 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 09:34:42 -0700
Subject: [PATCH 62/89] gnu: Update rust-tokio-executor-0.1 to 0.1.8.

* gnu/packages/crates-io.scm (rust-tokio-executor-0.1): Update it.
---
gnu/packages/crates-io.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 70c0c86cc6..665cad0bba 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -29813,7 +29813,7 @@ the current thread.")
 (define-public rust-tokio-executor-0.1
   (package
     (name "rust-tokio-executor")
-    (version "0.1.7")
+    (version "0.1.8")
     (source
      (origin
        (method url-fetch)
@@ -29822,7 +29822,7 @@ the current thread.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0pjmgpg58k3hf5q9w6xjljsv8xy66lf734qnfwsc0g3pq3349sl3"))))
+         "1b5n6barppmhfyb1m2cvswp7nqvyrr3lb0kk545my75hdl7fw9qg"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
-- 
2.28.0
From 5d18a8636bbad25f316438587c12ebc77fc47bbb Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Mon, 26 Oct 2020 09:37:39 -0700
Subject: [PATCH 63/89] gnu: Update rust-tokio-0.1 to 0.1.22.

* gnu/packages/crates-io.scm (rust-tokio-0.1): Update it.
---
gnu/packages/crates-io.scm | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)

Toggle diff (43 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 665cad0bba..f7ebc6893d 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -29602,7 +29602,7 @@ backed applications.")
 (define-public rust-tokio-0.1
   (package
     (name "rust-tokio")
-    (version "0.1.21")
+    (version "0.1.22")
     (source
      (origin
        (method url-fetch)
@@ -29611,14 +29611,13 @@ backed applications.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-