summary refs log tree commit diff
diff options
context:
space:
mode:
authorLeo Famulari <leo@famulari.name>2020-04-02 14:10:40 -0400
committerEfraim Flashner <efraim@flashner.co.il>2020-04-26 19:57:46 +0300
commitca4b55882a0f6b4ba46253485afb82ec000f8fc2 (patch)
treea55258735c1c9ef7554f8596640348791b1f53f6
parentee8de7381466ad917d1d2cab49830325230b4e5c (diff)
downloadguix-ca4b55882a0f6b4ba46253485afb82ec000f8fc2.tar.gz
gnu: Add rav1e.
* gnu/packages/video.scm (rav1e): New variable.
* gnu/packages/rust-apps.scm (rust-cbindgen-0.12, rust-cargo-c): New
variables.
* gnu/packages/crates-io.scm: Various new packages and upgrades.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
-rw-r--r--gnu/packages/crates-io.scm3749
-rw-r--r--gnu/packages/rust-apps.scm51
-rw-r--r--gnu/packages/video.scm87
3 files changed, 3649 insertions, 238 deletions
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index a42661e3f8..d318a05d71 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -40,6 +41,7 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages video)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
@@ -72,8 +74,46 @@
 library in Rust.")
     (license license:expat)))
 
+(define-public rust-addr2line-0.11
+  (package
+    (name "rust-addr2line")
+    (version "0.11.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "addr2line" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0sk5g8cb2yynlcm0wcqff9l9c9ml69rqgfrrbii0ybgdc236jkhw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; Not all test files included.
+       #:cargo-inputs
+       (("rust-rustc-demangle" ,rust-rustc-demangle-0.1)
+        ("rust-object" ,rust-object-0.17)
+        ("rust-fallible-iterator" ,rust-fallible-iterator-0.2)
+        ("rust-cpp-demangle" ,rust-cpp-demangle-0.2)
+        ("rust-gimli" ,rust-gimli-0.20)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-lazycell" ,rust-lazycell-1.2))
+       #:cargo-development-inputs
+       (("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-findshlibs" ,rust-findshlibs-0.5)
+        ("rust-memmap" ,rust-memmap-0.7)
+        ("rust-rustc-test" ,rust-rustc-test-0.3))))
+    (home-page "https://github.com/gimli-rs/addr2line")
+    (synopsis "Symbolication library written in Rust, using gimli")
+    (description
+     "This package provides a cross-platform symbolication library written in
+Rust, using gimli.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-addr2line-0.9
   (package
+    (inherit rust-addr2line-0.11)
     (name "rust-addr2line")
     (version "0.9.0")
     (source
@@ -85,7 +125,6 @@ library in Rust.")
        (sha256
         (base32
          "17rlf04nx3g3rcy661v24ksnmpk6vqn680g5b5sp8lk20iih2xnx"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -100,15 +139,9 @@ library in Rust.")
        #:cargo-development-inputs
        (("rust-backtrace" ,rust-backtrace-0.3)
         ("rust-clap" ,rust-clap-2)
-        ("rust-findshlibs" ,rust-findshlibs-0.5)
+        ;("rust-findshlibs" ,rust-findshlibs-0.4)
         ("rust-memmap" ,rust-memmap-0.7)
-        ("rust-rustc-test" ,rust-rustc-test-0.3))))
-    (home-page "https://github.com/gimli-rs/addr2line")
-    (synopsis "Symbolication library written in Rust, using gimli")
-    (description
-     "This package provides a cross-platform symbolication library written in
-Rust, using gimli.")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-rustc-test" ,rust-rustc-test-0.3))))))
 
 (define-public rust-adler32-1.0
   (package
@@ -136,6 +169,34 @@ the Rust programming language.")
     (license (list license:bsd-3
                    license:zlib))))
 
+(define-public rust-afl-0.5
+  (package
+    (name "rust-afl")
+    (version "0.5.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "afl" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0azpi917l8nhvx25n2v670nvkxkrhcwmddfi85qnr6kchmi6y946"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-rustc-version" ,rust-rustc-version-0.2)
+        ("rust-cc" ,rust-cc-1.0)
+        ("rust-xdg" ,rust-xdg-2.2)
+        ("rust-clap" ,rust-clap-2))))
+    (home-page "https://github.com/rust-fuzz/afl.rs")
+    (synopsis
+     "Fuzzing Rust code with american-fuzzy-lop")
+    (description
+     "Fuzz Rust code with american-fuzzy-lop.")
+    (license license:asl2.0)))
+
 (define-public rust-afl-0.4
   (package
     (name "rust-afl")
@@ -156,9 +217,6 @@ the Rust programming language.")
        (("rust-cc" ,rust-cc-1.0)
         ("rust-clap" ,rust-clap-2)
         ("rust-rustc-version" ,rust-rustc-version-0.2)
-        ("rust-xdg" ,rust-xdg-2.2))
-       #:cargo-development-inputs
-       (("rust-rustc-version" ,rust-rustc-version-0.2)
         ("rust-xdg" ,rust-xdg-2.2))))
     (home-page "https://github.com/rust-fuzz/afl.rs")
     (synopsis
@@ -170,7 +228,7 @@ the Rust programming language.")
 (define-public rust-aho-corasick-0.7
   (package
     (name "rust-aho-corasick")
-    (version "0.7.8")
+    (version "0.7.10")
     (source
      (origin
        (method url-fetch)
@@ -179,10 +237,10 @@ the Rust programming language.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "048q5vr1qac4lf90z80lw8kcya6qmlxw857xhwxsssk832jdafkl"))))
+         "1nka9509afjgal6lpymn8w2lq11dmjwxs8yjcmzys966if5l05l7"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs (("rust-memchr" ,rust-memchr-2.2))
+     `(#:cargo-inputs (("rust-memchr" ,rust-memchr-2.3))
        #:cargo-development-inputs
        (("rust-doc-comment" ,rust-doc-comment-0.3))))
     (home-page "https://github.com/BurntSushi/aho-corasick")
@@ -450,6 +508,44 @@ text or blue underlined text, on ANSI terminals.")
 @code{std::error::Error}.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-aom-sys-0.1
+  (package
+    (name "rust-aom-sys")
+    (version "0.1.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "aom-sys" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0ix3djcf84kk53h6fac73n7jc614745n7kbmikxwi3s73b6vzgsr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(;#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bindgen" ,rust-bindgen-0.51)
+        ("rust-metadeps" ,rust-metadeps-1.1))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-environmental-variable
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((clang (assoc-ref inputs "libclang")))
+               (setenv "LIBCLANG_PATH"
+                       (string-append clang "/lib")))
+             #t)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libaom" ,libaom)
+       ("libclang" ,clang)
+       ("llvm" ,llvm)))
+    (home-page "https://github.com/rust-av/aom-rs")
+    (synopsis "FFI bindings to aom")
+    (description "This package provides FFI bindings to aom.")
+    (license license:expat)))
+
 (define-public rust-approx-0.3
   (package
     (name "rust-approx")
@@ -492,6 +588,26 @@ text or blue underlined text, on ANSI terminals.")
          "153awzwywmb61xg857b80l63b1x6hifx2pha7lxf6fck9qxwraq8"))))
     (arguments '())))
 
+(define-public rust-arbitrary-0.2
+  (package
+    (name "rust-arbitrary")
+    (version "0.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "arbitrary" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "1i3fhcdyjq4isn22xx2svmpfr5hwyzi0wavbm07fs8i2dv5pdkv4"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/nagisa/rust_arbitrary/")
+    (synopsis "Trait for generating structured data from unstructured data")
+    (description
+     "The trait for generating structured data from unstructured data.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-arc-swap-0.4
   (package
     (name "rust-arc-swap")
@@ -547,6 +663,32 @@ text or blue underlined text, on ANSI terminals.")
         ("rust-proptest" ,rust-proptest-0.9)
         ("rust-version-sync" ,rust-version-sync-0.8))))))
 
+(define-public rust-arg-enum-proc-macro-0.3
+  (package
+    (name "rust-arg-enum-proc-macro")
+    (version "0.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "arg_enum_proc_macro" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "021rr6j3n031ynfbm7kwb3j3bxvbsz40n0nqi78k47d3p92rihcv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-syn" ,rust-syn-1.0)
+        ("rust-quote" ,rust-quote-1.0))))
+    (home-page "https://github.com/lu-zero/arg_enum_proc_macro")
+    (synopsis "Procedural macro compatible with clap arg_enum")
+    (description
+     "This package provides a procedural macro compatible with clap's
+@code{arg_enum}.")
+    (license license:expat)))
+
 (define-public rust-argon2rs-0.2
   (package
     (name "rust-argon2rs")
@@ -638,7 +780,7 @@ ArrayVec and ArrayString.")
   (package
     (inherit rust-arrayvec-0.5)
     (name "rust-arrayvec")
-    (version "0.4.10")
+    (version "0.4.12")
     (source
      (origin
        (method url-fetch)
@@ -647,7 +789,7 @@ ArrayVec and ArrayString.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0wcch3ca9qvkixgdbd2afrv1xa27l83vpraf7frsh9l8pivgpiwj"))))
+         "1fdiv5m627gh6flp4mpmi1mh647imm9x423licsr11psz97d97yd"))))
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -658,10 +800,38 @@ ArrayVec and ArrayString.")
         ("rust-matches" ,rust-matches-0.1)
         ("rust-serde-test" ,rust-serde-test-1.0))))))
 
+(define-public rust-ascii-1.0
+  (package
+    (name "rust-ascii")
+    (version "1.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "ascii" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0281gc828q4j692gb66jfdr5k16gyszgqflylh0pp30rllv63xdv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-serde" ,rust-serde-1.0)
+        ("rust-serde-test" ,rust-serde-test-1.0))))
+    (home-page "https://github.com/tomprogrammer/rust-ascii")
+    (synopsis "ASCII-only equivalents to `char`, `str` and `String`.")
+    (description
+     "A rust library that provides ASCII-only string and character types,
+equivalent to the @code{char}, @code{str} and @code{String} types in the
+standard library.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-ascii-0.9
   (package
+    (inherit rust-ascii-1.0)
     (name "rust-ascii")
-    (version "0.9.1")
+    (version "0.9.3")
     (source
      (origin
        (method url-fetch)
@@ -670,20 +840,12 @@ ArrayVec and ArrayString.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0dck6rsjnxlczyjnncn8hf16bxj42m1vi6s2n32c1jg2ijd9dz55"))))
-    (build-system cargo-build-system)
+         "0km3zzkhrr22drf9p1zcblqirlxkdc7zra25acpi0h8qax5c1cga"))))
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-quickcheck" ,rust-quickcheck-0.8)
+     `(#:cargo-inputs
+       (("rust-quickcheck" ,rust-quickcheck-0.6)
         ("rust-serde" ,rust-serde-1.0)
-        ("rust-serde-test" ,rust-serde-test-1.0))))
-    (home-page "https://github.com/tomprogrammer/rust-ascii")
-    (synopsis
-     "ASCII-only equivalents to char, str and String")
-    (description
-     "ASCII-only equivalents to @code{char}, @code{str} and @code{String}.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-serde-test" ,rust-serde-test-1.0))))))
 
 (define-public rust-assert-matches-1.3
   (package
@@ -733,7 +895,7 @@ ArrayVec and ArrayString.")
 (define-public rust-atty-0.2
   (package
     (name "rust-atty")
-    (version "0.2.13")
+    (version "0.2.14")
     (source
       (origin
         (method url-fetch)
@@ -741,12 +903,13 @@ ArrayVec and ArrayString.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "140sswp1bwqwc4zk80bxkbnfb3g936hgrb77g9g0k1zcld3wc0qq"))))
+          "1s7yslcs6a28c5vz7jwj63lkfgyx8mx99fdirlhi9lbhhzhrpcyr"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-libc" ,rust-libc-0.2)
+       (("rust-hermit-abi" ,rust-hermit-abi-0.1)
+        ("rust-libc" ,rust-libc-0.2)
         ("rust-winapi" ,rust-winapi-0.3))))
     (home-page "https://github.com/softprops/atty")
     (synopsis "Simple interface for querying atty")
@@ -827,7 +990,7 @@ in Rust.")
 (define-public rust-backtrace-0.3
   (package
     (name "rust-backtrace")
-    (version "0.3.32")
+    (version "0.3.46")
     (source
      (origin
        (method url-fetch)
@@ -836,18 +999,18 @@ in Rust.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1rgsaha3b6wxh564s4jqn5hl5pkmg214blyjjs1svafib190zd8q"))))
+         "17hh1vrhfd01qpjilrdpy7q0lf2j2qv36achpg37q92rff4r5rmi"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-addr2line" ,rust-addr2line-0.9)
+       (("rust-addr2line" ,rust-addr2line-0.11)
         ("rust-backtrace-sys" ,rust-backtrace-sys-0.1)
         ("rust-cfg-if" ,rust-cfg-if-0.1)
         ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
         ("rust-cpp-demangle" ,rust-cpp-demangle-0.2)
         ("rust-findshlibs" ,rust-findshlibs-0.5)
-        ("rust-goblin" ,rust-goblin-0.0)
+        ("rust-goblin" ,rust-goblin-0.2)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-memmap" ,rust-memmap-0.7)
         ("rust-rustc-demangle" ,rust-rustc-demangle-0.1)
@@ -866,7 +1029,7 @@ trace (backtrace) at runtime in a Rust program.")
 (define-public rust-backtrace-sys-0.1
   (package
     (name "rust-backtrace-sys")
-    (version "0.1.32")
+    (version "0.1.35")
     (source
       (origin
         (method url-fetch)
@@ -874,16 +1037,14 @@ trace (backtrace) at runtime in a Rust program.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "14c406z8bdmms8a5l8cv79jfkz1mk10qk5p97izf4vai53qparax"))))
+          "066iviphi72mx9hd3njzsplk5v45jhi10mrccbbyij391ahsps3x"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
-        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0))
-       #:cargo-development-inputs
-       (("rust-cc" ,rust-cc-1.0))))
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0)
+        ("rust-cc" ,rust-cc-1.0))))
     (home-page "https://github.com/rust-lang/backtrace-rs")
     (synopsis "Bindings to the libbacktrace gcc library")
     (description
@@ -983,8 +1144,64 @@ and no more (caveat: black_box is still missing!).")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-better-panic-0.2
+  (package
+    (name "rust-better-panic")
+    (version "0.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "better-panic" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0xl48v6pd9ys7wp0ni62i6q73xpd1nhf92z09sjc9n3lrj0ac4ix"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-console" ,rust-console-0.9)
+        ("rust-syntect" ,rust-syntect-3.3))))
+    (home-page "https://github.com/mitsuhiko/better-panic")
+    (synopsis "Pretty backtraces inspired by Python's tracebacks")
+    (description
+     "This package provides pretty panic backtraces inspired by Python's
+tracebacks.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-bincode-1.2
+  (package
+    (name "rust-bincode")
+    (version "1.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "bincode" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1gvxm3n67xv1874fwxmnlircdlphlk1hcw75ykrrnw9l2nky4lsp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1.0)
+        ("rust-byteorder" ,rust-byteorder-1.3))
+       #:cargo-development-inputs
+       (("rust-serde-bytes" ,rust-serde-bytes-0.11)
+        ("rust-serde-derive" ,rust-serde-derive-1.0))))
+    (home-page "https://github.com/servo/bincode")
+    (synopsis
+     "Binary serialization/deserialization strategy")
+    (description
+     "This package provides a binary serialization/deserialization strategy
+that uses Serde for transforming structs into bytes and vice versa!")
+    (license license:expat)))
+
 (define-public rust-bincode-1.1
   (package
+    (inherit rust-bincode-1.2)
     (name "rust-bincode")
     (version "1.1.4")
     (source
@@ -996,7 +1213,6 @@ and no more (caveat: black_box is still missing!).")
        (sha256
         (base32
          "1xx6bp39irvsndk6prnmmq8m1l9p6q2qj21j6mfks2y81pjsa14z"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -1005,19 +1221,105 @@ and no more (caveat: black_box is still missing!).")
         ("rust-serde" ,rust-serde-1.0))
        #:cargo-development-inputs
        (("rust-serde-bytes" ,rust-serde-bytes-0.11)
-        ("rust-serde-derive" ,rust-serde-derive-1.0))))
-    (home-page "https://github.com/servo/bincode")
+        ("rust-serde-derive" ,rust-serde-derive-1.0))))))
+
+(define-public rust-bindgen-0.52
+  (package
+    (name "rust-bindgen")
+    (version "0.52.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "bindgen" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0mzy2gjiaggl602yn4a11xzrxfj18kl7pwqa5yv32njkxd257j7i"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-shlex" ,rust-shlex-0.1)
+        ("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-peeking-take-while"
+         ,rust-peeking-take-while-0.1)
+        ("rust-clang-sys" ,rust-clang-sys-0.28)
+        ("rust-cexpr" ,rust-cexpr-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-quote" ,rust-quote-1.0)
+        ("rust-rustc-hash" ,rust-rustc-hash-1.1)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-lazycell" ,rust-lazycell-1.2)
+        ("rust-regex" ,rust-regex-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-which" ,rust-which-3.1))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-2)
+        ("rust-diff" ,rust-diff-0.1)
+        ("rust-shlex" ,rust-shlex-0.1))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-environmental-variable
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((clang (assoc-ref inputs "libclang")))
+               (setenv "LIBCLANG_PATH"
+                       (string-append clang "/lib")))
+             #t)))))
+    (inputs
+     `(("libclang" ,clang)))
+    (home-page "https://rust-lang.github.io/rust-bindgen/")
     (synopsis
-     "Binary serialization/deserialization strategy")
+     "Automatically generates Rust FFI bindings to C and C++ libraries")
     (description
-     "This package provides a binary serialization/deserialization strategy
-that uses Serde for transforming structs into bytes and vice versa!")
-    (license license:expat)))
+     "Automatically generates Rust FFI bindings to C and C++ libraries.")
+    (license license:bsd-3)))
+
+(define-public rust-bindgen-0.51
+  (package
+    (inherit rust-bindgen-0.52)
+    (name "rust-bindgen")
+    (version "0.51.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "bindgen" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0x9gndlnwmxsihxvsc3izyyss7g8b2djn0daafshj1gcy69i7mzb"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-shlex" ,rust-shlex-0.1)
+        ("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-peeking-take-while"
+         ,rust-peeking-take-while-0.1)
+        ("rust-clang-sys" ,rust-clang-sys-0.28)
+        ("rust-cexpr" ,rust-cexpr-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-quote" ,rust-quote-1.0)
+        ("rust-rustc-hash" ,rust-rustc-hash-1.1)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-regex" ,rust-regex-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-which" ,rust-which-3.1))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-2)
+        ("rust-diff" ,rust-diff-0.1)
+        ("rust-shlex" ,rust-shlex-0.1))))
+    (inputs `())))
 
 (define-public rust-bindgen-0.50
   (package
+    (inherit rust-bindgen-0.51)
     (name "rust-bindgen")
-    (version "0.50.0")
+    (version "0.50.1")
     (source
      (origin
        (method url-fetch)
@@ -1026,8 +1328,7 @@ that uses Serde for transforming structs into bytes and vice versa!")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1k4n1d002vrfn1mlpww3ib7f275yn4rpxfwkqpr9bym27zg17ab5"))))
-    (build-system cargo-build-system)
+         "1fp98x0k4cawil3rqxsfrb58pq3mb5mn37rp745zxfmjfigml3nb"))))
     (arguments
      `(#:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
@@ -1041,22 +1342,49 @@ that uses Serde for transforming structs into bytes and vice versa!")
         ("rust-log" ,rust-log-0.4)
         ("rust-peeking-take-while" ,rust-peeking-take-while-0.1)
         ("rust-proc-macro2" ,rust-proc-macro2-0.4)
-        ("rust-quote" ,rust-quote-1.0)
+        ("rust-quote" ,rust-quote-0.6)
         ("rust-regex" ,rust-regex-1.1)
         ("rust-shlex" ,rust-shlex-0.1)
         ("rust-which" ,rust-which-2.0))
        #:cargo-development-inputs
        (("rust-clap" ,rust-clap-2)
         ("rust-diff" ,rust-diff-0.1)
-        ("rust-shlex" ,rust-shlex-0.1))))
-    (home-page
-     "https://rust-lang.github.io/rust-bindgen/")
-    (synopsis
-     "Automatically generates FFI bindings to C and C++ libraries")
-    (description
-     "Automatically generates Rust FFI bindings to C and C++
-libraries.")
-    (license license:bsd-3)))
+        ("rust-shlex" ,rust-shlex-0.1))))))
+
+(define-public rust-bindgen-0.37
+  (package
+    (inherit rust-bindgen-0.50)
+    (name "rust-bindgen")
+    (version "0.37.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "bindgen" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "08f2cyzr8fc027mzj2lhmn5j3w318g2ql7yfw5ngxa3yhy1an98v"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-peeking-take-while"
+         ,rust-peeking-take-while-0.1)
+        ("rust-cexpr" ,rust-cexpr-0.2)
+        ("rust-clang-sys" ,rust-clang-sys-0.23)
+        ("rust-proc-macro2" ,rust-proc-macro2-0.3)  ; 0.3.5
+        ("rust-log" ,rust-log-0.4)
+        ("rust-env-logger" ,rust-env-logger-0.5)
+        ("rust-quote" ,rust-quote-0.5)
+        ("rust-which" ,rust-which-1.0)
+        ("rust-regex" ,rust-regex-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-clap" ,rust-clap-2))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-2)
+        ("rust-diff" ,rust-diff-0.1)
+        ("rust-shlex" ,rust-shlex-0.1))))))
 
 (define-public rust-bindgen-0.33
   (package
@@ -1193,6 +1521,29 @@ behave like a set of bitflags.")
         (base32
          "0v8hh6wdkpk9my8z8442g4hqrqf05h0qj53dsay6mv18lqvqklda"))))))
 
+(define-public rust-bitstream-io-0.8
+  (package
+    (name "rust-bitstream-io")
+    (version "0.8.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "bitstream-io" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "00a6wy54s1dmadm5xz8k2cbsd7ixvm48mlc45bk0fdy0pbra6jk1"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page
+      "https://github.com/tuffy/bitstream-io")
+    (synopsis
+      "Library for reading/writing un-aligned values from/to streams in big-endian and little-endian formats.")
+    (description
+      "Library for reading/writing un-aligned values from/to streams in big-endian and little-endian formats.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-blake2-0.8
   (package
     (name "rust-blake2")
@@ -1428,7 +1779,7 @@ Bresenham's line algorithm.")
 (define-public rust-bstr-0.2
   (package
     (name "rust-bstr")
-    (version "0.2.1")
+    (version "0.2.12")
     (source
      (origin
        (method url-fetch)
@@ -1437,7 +1788,7 @@ Bresenham's line algorithm.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0prq6yk3da0k5bg2czcgg1i4ynsq1l59xc89ycsv6v7p08p5gh3c"))))
+         "0hazfback6i2k3vhhwyj8h46id3y58zxqh22pz46hj9r1zayd298"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -1567,6 +1918,34 @@ UTF-8.")
 in a byte slice, fast.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-bytecount-0.4
+  (package
+    (name "rust-bytecount")
+    (version "0.4.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "bytecount" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "13qpy38z5wx0rzcdvr2h0ixbfgi1dbrif068il3hwn3k2mah88mr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-packed-simd" ,rust-packed-simd-0.3))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.2)
+        ("rust-quickcheck" ,rust-quickcheck-0.6)
+        ("rust-rand" ,rust-rand-0.4))))
+    (home-page "https://github.com/llogiq/bytecount")
+    (synopsis "Counting bytes really fast")
+    (description
+     "This package counts occurrences of a given byte, or the number of UTF-8
+code points, in a byte slice, fast.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-byteorder-1.3
   (package
     (name "rust-byteorder")
@@ -1910,6 +2289,64 @@ exposed as Reader/Writer streams.")
 capabilities")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-cargo-metadata-0.9
+  (package
+    (name "rust-cargo-metadata")
+    (version "0.9.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cargo_metadata" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "00pjms89lghvizh4d55lz80hvrih9r55xv9m5wd9vcsgc163gqs6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f
+       #:cargo-inputs
+       (("rust-semver" ,rust-semver-0.9)
+        ("rust-serde" ,rust-serde-1.0)
+        ("rust-serde-derive" ,rust-serde-derive-1.0)
+        ("rust-serde-json" ,rust-serde-json-1.0))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-2)
+        ("rust-docopt" ,rust-docopt-1.1)
+        ("rust-structopt" ,rust-structopt-0.2))))
+    (home-page "https://github.com/oli-obk/cargo_metadata")
+    (synopsis "Structured access to the output of `cargo metadata`")
+    (description
+     "This package provides structured access to the output of @code{cargo
+metadata}.")
+    (license license:expat)))
+
+(define-public rust-cargo-metadata-0.6
+  (package
+    (inherit rust-cargo-metadata-0.9)
+    (name "rust-cargo-metadata")
+    (version "0.6.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cargo_metadata" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1givpi2w7iwqqnl87x5yc15zcm5hs6yw490sb6abkfp1h39v9lg5"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-error-chain" ,rust-error-chain-0.12)
+        ("rust-semver" ,rust-semver-0.9)
+        ("rust-serde" ,rust-serde-1.0)
+        ("rust-serde-derive" ,rust-serde-derive-1.0)
+        ("rust-serde-json" ,rust-serde-json-1.0))
+       #:cargo-development-inputs
+       (;("rust-docopt" ,rust-docopt-0.8)
+        ("rust-clap" ,rust-clap-2))))))
+
 (define-public rust-cargon-0.0
   (package
     (name "rust-cargon")
@@ -1936,7 +2373,7 @@ used in argon2rs' bench suite.")
 (define-public rust-cast-0.2
   (package
     (name "rust-cast")
-    (version "0.2.2")
+    (version "0.2.3")
     (source
      (origin
        (method url-fetch)
@@ -1945,12 +2382,14 @@ used in argon2rs' bench suite.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "09yl2700crxa4n860b080msij25klvs1kfzazhp2aihchvr16q4j"))))
+         "1c5z7zryj0zwnhdgs6rw5dfvnlwc1vm19jzrlgx5055alnwk952b"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-rustc-version" ,rust-rustc-version-0.2))
        #:cargo-development-inputs
-       (("rust-quickcheck" ,rust-quickcheck-0.8))))
+       (("rust-quickcheck" ,rust-quickcheck-0.9))))
     (home-page "https://github.com/japaric/cast.rs")
     (synopsis
      "Ergonomic, checked cast functions for primitive types")
@@ -2012,7 +2451,7 @@ archive to be linked into Rustcode.")
 (define-public rust-cexpr-0.3
   (package
     (name "rust-cexpr")
-    (version "0.3.5")
+    (version "0.3.6")
     (source
      (origin
        (method url-fetch)
@@ -2021,7 +2460,7 @@ archive to be linked into Rustcode.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1by64ini3f058pwad3immx5cc12wr0m0kwgaxa8apzym03mj9ym7"))))
+         "07fdfj4ff2974y33yixrb657riq9zl9b9h9lr0h7ridhhvxvbrgw"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -2197,7 +2636,7 @@ for computer graphics.")
 (define-public rust-chrono-0.4
   (package
     (name "rust-chrono")
-    (version "0.4.7")
+    (version "0.4.11")
     (source
      (origin
        (method url-fetch)
@@ -2206,23 +2645,26 @@ for computer graphics.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1glam3iqhshbamzgf0npn7hgghski92r31lm7gg8841hnxc1zn3p"))))
+         "1cmmxamkzzs36zncqjjr7qm7xkb6zyrkjslnlj3axdgqki84y2c0"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-libc" ,rust-libc-0.2)
-        ("rust-num-integer" ,rust-num-integer-0.1)
+       (("rust-num-integer" ,rust-num-integer-0.1)
         ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-js-sys" ,rust-js-sys-0.3)
         ("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
         ("rust-serde" ,rust-serde-1.0)
-        ("rust-time" ,rust-time-0.1))
+        ("rust-time" ,rust-time-0.1)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2))
        #:cargo-development-inputs
-       (("rust-bincode" ,rust-bincode-1.1)
+       (;("rust-bincode" ,rust-bincode-0.8)
+        ("rust-criterion" ,rust-criterion-0.2)
         ("rust-doc-comment" ,rust-doc-comment-0.3)
         ("rust-num-iter" ,rust-num-iter-0.1)
         ("rust-serde-derive" ,rust-serde-derive-1.0)
-        ("rust-serde-json" ,rust-serde-json-1.0))))
+        ("rust-serde-json" ,rust-serde-json-1.0)
+        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.2))))
     (home-page
      "https://github.com/chronotope/chrono")
     (synopsis "Date and time library for Rust")
@@ -2315,6 +2757,21 @@ for computer graphics.")
                        (string-append clang "/lib")))
              #t)))))))
 
+(define-public rust-clang-sys-0.23
+  (package
+    (inherit rust-clang-sys-0.26)
+    (name "rust-clang-sys")
+    (version "0.23.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "clang-sys" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1hjr333izzhs6bic84qwnyzy5xzmvasib8f3zkzj4ln3a97c1xyp"))))))
+
 (define-public rust-clang-sys-0.22
   (package
     (inherit rust-clang-sys-0.26)
@@ -2512,6 +2969,35 @@ pitfalls in Rust.")
      "Low level interface to CloudABI.  Contains all syscalls and related types.")
     (license license:bsd-2)))
 
+(define-public rust-cloudflare-zlib-sys-0.2
+  (package
+    (name "rust-cloudflare-zlib-sys")
+    (version "0.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cloudflare-zlib-sys" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "01lwfd15ijw4d8jsqp87yv4wpmzcp84qm0qqwy3yxmm0fjr5q6by"))))
+    ;; This crate bundles cloudflare's fork of zlib, so we don't unbundle it.
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cc" ,rust-cc-1.0))))
+    (home-page "https://github.com/cloudflare/zlib")
+    (synopsis
+     "Cloudflare fork of zlib with massive performance improvements")
+    (description
+     "Cloudflare fork of zlib with massive performance improvements.")
+    (license
+      (list license:expat
+            license:asl2.0
+            license:zlib))))
+
 (define-public rust-cmake-0.1
   (package
     (name "rust-cmake")
@@ -2602,12 +3088,42 @@ CMAKE environmental variable is set.")
      "Color quantization library to reduce n colors to 256 colors.")
     (license license:expat)))
 
+(define-public rust-colored-1.9
+  (package
+    (name "rust-colored")
+    (version "1.9.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "colored" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0nbc1czs512h1k696y7glv1kjrb2b914zpxraic6q5fgv80wizzl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-atty" ,rust-atty-0.2)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1))
+       #:cargo-development-inputs
+       (("rust-ansi-term" ,rust-ansi-term-0.12)
+        ;("rust-rspec" ,rust-rspec-1.0)
+        )))
+    (home-page "https://github.com/mackwic/colored")
+    (synopsis "Add colors in your terminal")
+    (description
+     "The most simple way to add colors in your terminal.")
+    (license license:mpl2.0)))
+
 ;; This package requires features which are unavailable
 ;; on the stable releases of Rust.
 (define-public rust-compiler-builtins-0.1
   (package
     (name "rust-compiler-builtins")
-    (version "0.1.23")
+    (version "0.1.26")
     (source
       (origin
         (method url-fetch)
@@ -2615,14 +3131,13 @@ CMAKE environmental variable is set.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "0m8rfikg08av2plyp32drjfsv7i10nf2kwzajjjkvl13yhj9s5fn"))))
+          "1rhj6ccmfkh9gcxnxgjq4fg257yi4f9325nfzsphbmxwkrg06sq3"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0))
-       #:cargo-development-inputs
-       (("rust-cc" ,rust-cc-1.0))))
+       (("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0)
+        ("rust-cc" ,rust-cc-1.0))))
     (home-page "https://github.com/rust-lang/compiler-builtins")
     (synopsis "Compiler intrinsics used by the Rust compiler")
     (description
@@ -2711,6 +3226,36 @@ harness.")
         ("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
         ("rust-tempdir" ,rust-tempdir-0.3))))))
 
+(define-public rust-console-0.9
+  (package
+    (name "rust-console")
+    (version "0.9.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "console" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1h765951c9mywff534f0191slazykmif4290g2yarcwhd2cg7q25"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-unicode-width" ,rust-unicode-width-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-termios" ,rust-termios-0.3)
+        ("rust-encode-unicode" ,rust-encode-unicode-0.3)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-clicolors-control" ,rust-clicolors-control-1.0)
+        ("rust-regex" ,rust-regex-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1))))
+    (home-page "https://github.com/mitsuhiko/console")
+    (synopsis "Terminal and console abstraction for Rust")
+    (description
+     "This package provides a terminal and console abstraction for Rust")
+    (license license:expat)))
+
 (define-public rust-console-0.7
   (package
     (name "rust-console")
@@ -3010,7 +3555,7 @@ intrinsics.")
 (define-public rust-cpp-demangle-0.2
   (package
     (name "rust-cpp-demangle")
-    (version "0.2.12")
+    (version "0.2.14")
     (source
      (origin
        (method url-fetch)
@@ -3019,17 +3564,17 @@ intrinsics.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0a4hqsfc0sfdwy7pcr0rc1fjp2j47fxbkqfc2lfrbi4zlm5hq36k"))))
+         "1mm064x84868q06r4m4b7byf999nrkbhx7iyc4nchyssaxpsy5a1"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-afl" ,rust-afl-0.4)
-        ("rust-cfg-if" ,rust-cfg-if-0.1))
+        ("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-glob" ,rust-glob-0.3))
        #:cargo-development-inputs
        (("rust-clap" ,rust-clap-2)
-        ("rust-diff" ,rust-diff-0.1)
-        ("rust-glob" ,rust-glob-0.3))))
+        ("rust-diff" ,rust-diff-0.1))))
     (home-page "https://github.com/gimli-rs/cpp_demangle")
     (synopsis "Demangle C++ symbols")
     (description
@@ -3101,7 +3646,7 @@ intrinsics.")
 (define-public rust-criterion-0.3
   (package
     (name "rust-criterion")
-    (version "0.3.0")
+    (version "0.3.1")
     (source
      (origin
        (method url-fetch)
@@ -3110,7 +3655,7 @@ intrinsics.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1iig7r9c6bkn5qb6axxkblc1amif6k49lix35rhqs728cphh71wk"))))
+         "1lgpr82rlmg6rm4gr3c3pla2xgxnakbf8w9sabjsig8jkikmbiqz"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -3122,15 +3667,14 @@ intrinsics.")
         ("rust-itertools" ,rust-itertools-0.8)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-rand-core" ,rust-rand-core-0.5)
-        ("rust-rand-os" ,rust-rand-os-0.2)
-        ("rust-rand-xoshiro" ,rust-rand-xoshiro-0.3)
-        ("rust-rayon" ,rust-rayon-1.1)
+        ("rust-oorandom" ,rust-oorandom-11.1)
+        ("rust-plotters" ,rust-plotters-0.2)
+        ("rust-rayon" ,rust-rayon-1.3)
         ("rust-serde" ,rust-serde-1.0)
         ("rust-serde-derive" ,rust-serde-derive-1.0)
         ("rust-serde-json" ,rust-serde-json-1.0)
         ("rust-tinytemplate" ,rust-tinytemplate-1.0)
-        ("rust-walkdir" ,rust-walkdir-2.2))
+        ("rust-walkdir" ,rust-walkdir-2.3))
        #:cargo-development-inputs
        (("rust-approx" ,rust-approx-0.3)
         ("rust-quickcheck" ,rust-quickcheck-0.9)
@@ -3478,7 +4022,7 @@ intrinsics.")
 (define-public rust-crossbeam-utils-0.7
   (package
     (name "rust-crossbeam-utils")
-    (version "0.7.0")
+    (version "0.7.2")
     (source
      (origin
        (method url-fetch)
@@ -3487,7 +4031,7 @@ intrinsics.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1x1rn35q2v05qif14ijfg7800d3rf3ji2cg79awnacfw5jq6si6f"))))
+         "1a31wbrda1320gj2a6az1lin2d34xfc3xf88da4c17qy5lxcgiy3"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -3621,7 +4165,7 @@ Code} (MAC) algorithms.")
 (define-public rust-csv-1.1
   (package
     (name "rust-csv")
-    (version "1.1.0")
+    (version "1.1.3")
     (source
      (origin
        (method url-fetch)
@@ -3630,7 +4174,7 @@ Code} (MAC) algorithms.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0qxvzq030hi915dszazv6a7f0apzzi7gn193ni0g2lzkawjxck55"))))
+         "0yd2z55m2pg4al4yng4nl2y7c9dw2v7yhg5ynihxyrmmd9zzxbq0"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -3672,7 +4216,7 @@ Code} (MAC) algorithms.")
 (define-public rust-csv-core-0.1
   (package
     (name "rust-csv-core")
-    (version "0.1.6")
+    (version "0.1.10")
     (source
      (origin
        (method url-fetch)
@@ -3681,11 +4225,11 @@ Code} (MAC) algorithms.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0k5zs0x0qmmn27pa5kcg86lg84s29491fw5sh3zswxswnavasp4v"))))
+         "145wcc3560v1kmysqqspvddppiysr2rifqzy4nnlh3r6kxanc91b"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-memchr" ,rust-memchr-2.2))
+       (("rust-memchr" ,rust-memchr-2.3))
        #:cargo-development-inputs
        (("rust-arrayvec" ,rust-arrayvec-0.4))))
     (home-page "https://github.com/BurntSushi/rust-csv")
@@ -3695,6 +4239,34 @@ Code} (MAC) algorithms.")
      "Bare bones CSV parsing with no_std support.")
     (license (list license:unlicense license:expat))))
 
+(define-public rust-ctor-0.1
+  (package
+    (name "rust-ctor")
+    (version "0.1.13")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "ctor" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1qgwkwyxishpp3wkbwq5i27zdxz539ii0sz129xj061ffnnfbia7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-syn" ,rust-syn-1.0)
+        ("rust-quote" ,rust-quote-1.0))
+       ;#:cargo-development-inputs
+       ;(("rust-libc-print" ,rust-libc-print-0.1))
+       ))
+    (home-page "https://github.com/mmastrac/rust-ctor")
+    (synopsis "__attribute__((constructor)) for Rust")
+    (description
+     "This package provides an @code{__attribute__((constructor))} for Rust.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-ctrlc-3.1
   (package
     (name "rust-ctrlc")
@@ -3862,6 +4434,43 @@ hexadecimal, base32, and base64.")
 and arithmetic.")
     (license license:expat)))
 
+(define-public rust-dav1d-sys-0.3
+  (package
+    (name "rust-dav1d-sys")
+    (version "0.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "dav1d-sys" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1022czzp3s54r42x6rhr870w1fwzyp7b6qn0zirpz55zmqjpgnwa"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-bindgen" ,rust-bindgen-0.52)
+        ("rust-metadeps" ,rust-metadeps-1.1))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-environmental-variable
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((clang (assoc-ref inputs "libclang")))
+               (setenv "LIBCLANG_PATH"
+                       (string-append clang "/lib")))
+             #t)))))
+    (inputs
+     `(("dav1d" ,dav1d)
+       ("pkg-config" ,pkg-config)
+       ("libclang" ,clang)
+       ("llvm" ,llvm)))
+    (home-page "https://github.com/rust-av/dav1d-rs")
+    (synopsis "FFI bindings to dav1d")
+    (description "FFI bindings to dav1d")
+    (license license:expat)))
+
 (define-public rust-decimal-2.0
   (package
     (name "rust-decimal")
@@ -4109,7 +4718,7 @@ Windows, and the Standard Directory guidelines on macOS.")
   (package
     (inherit rust-dirs-2.0)
     (name "rust-dirs")
-    (version "1.0.3")
+    (version "1.0.5")
     (source
       (origin
         (method url-fetch)
@@ -4117,11 +4726,12 @@ Windows, and the Standard Directory guidelines on macOS.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "02vigc566z5i6n9wr2x8sch39qp4arn89xhhrh18fhpm3jfc0ygn"))))
+          "009rrhzj9pxyncmm2vhlj70npg0cgggv2hjbbkiwdl9vccq8kmrz"))))
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
+        ("rust-redox-users" ,rust-redox-users-0.3)
         ("rust-winapi" ,rust-winapi-0.3))))))
 
 (define-public rust-dirs-sys-0.3
@@ -4348,6 +4958,29 @@ from macros.")
 parameters, associated types, and type constraints.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-draw-state-0.8
+  (package
+    (name "rust-draw-state")
+    (version "0.8.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "draw_state" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0lfng4fz9x7bwsmzv9r20ply10w0iid6vfcrhx292s6hw8vrbkrk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1.0)
+        ("rust-bitflags" ,rust-bitflags-1))))
+    (home-page "https://github.com/gfx-rs/draw_state")
+    (synopsis "Graphics state blocks for gfx-rs")
+    (description "Graphics state blocks for gfx-rs.")
+    (license license:asl2.0)))
+
 (define-public rust-dtoa-0.4
   (package
     (name "rust-dtoa")
@@ -4494,7 +5127,7 @@ floating-point primitives to an @code{io::Write}.")
 (define-public rust-either-1.5
   (package
     (name "rust-either")
-    (version "1.5.2")
+    (version "1.5.3")
     (source
      (origin
        (method url-fetch)
@@ -4503,7 +5136,7 @@ floating-point primitives to an @code{io::Write}.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0yyggfd5yq9hyyp0bd5jj0fgz3rwws42d19ri0znxwwqs3hcy9sm"))))
+         "1qyz1b1acad6w0k5928jw5zaq900zhsk7p8dlcp4hh61w4f6n7xv"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -4545,7 +5178,7 @@ inclusion of Windows resources in the most resilient fashion imaginable.")
 (define-public rust-encode-unicode-0.3
   (package
     (name "rust-encode-unicode")
-    (version "0.3.5")
+    (version "0.3.6")
     (source
      (origin
        (method url-fetch)
@@ -4554,12 +5187,12 @@ inclusion of Windows resources in the most resilient fashion imaginable.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1g8a8pixkxz6r927f4sc4r15qyc0szxdxb1732v8q7h0di4wkclh"))))
+         "07w3vzrhxh9lpjgsg2y5bwzfar2aq35mdznvcp3zjl0ssj7d4mx3"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-ascii" ,rust-ascii-0.9)
+       (("rust-ascii" ,rust-ascii-1.0)
         ("rust-clippy" ,rust-clippy-0.0))
        #:cargo-development-inputs
        (("rust-lazy-static" ,rust-lazy-static-1))))
@@ -4946,7 +5579,7 @@ is configured via an environment variable.")
 (define-public rust-erased-serde-0.3
   (package
     (name "rust-erased-serde")
-    (version "0.3.9")
+    (version "0.3.11")
     (source
      (origin
        (method url-fetch)
@@ -4955,14 +5588,14 @@ is configured via an environment variable.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0q7bnxs5zskfq5iillig55g7891dllcxh2p8y8k1p2j72syf9viv"))))
+         "1lgkpkk7nx6f24gmr3psyj8d2avc9701r9jyw1i4ssp10lbnv2yq"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-serde" ,rust-serde-1.0))
        #:cargo-development-inputs
-       (("rust-serde-cbor" ,rust-serde-cbor-0.10)
+       (;("rust-serde-cbor" ,rust-serde-cbor-0.9)
         ("rust-serde-derive" ,rust-serde-derive-1.0)
         ("rust-serde-json" ,rust-serde-json-1.0))))
     (home-page "https://github.com/dtolnay/erased-serde")
@@ -4971,6 +5604,37 @@ is configured via an environment variable.")
      "Type-erased Serialize and Serializer traits.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-err-derive-0.2
+  (package
+    (name "rust-err-derive")
+    (version "0.2.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "err-derive" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0v6wxrshfpg7mwaxzq8jwxbfiyn7zk5rlm4m8kkrwh7dpf8nrx42"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-synstructure" ,rust-synstructure-0.12)
+        ("rust-skeptic" ,rust-skeptic-0.13)
+        ("rust-proc-macro-error" ,rust-proc-macro-error-0.4)
+        ("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-syn" ,rust-syn-1.0)
+        ("rust-rustversion" ,rust-rustversion-1.0)
+        ("rust-quote" ,rust-quote-1.0))
+       #:cargo-development-inputs
+       (("rust-skeptic" ,rust-skeptic-0.13))))
+    (home-page "https://gitlab.com/torkleyy/err-derive")
+    (synopsis "Derive macro for `std::error::Error`")
+    (description
+     "Derive macro for @code{std::error::Error}.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-errno-0.2
   (package
     (name "rust-errno")
@@ -5025,7 +5689,7 @@ is configured via an environment variable.")
 (define-public rust-error-chain-0.12
   (package
     (name "rust-error-chain")
-    (version "0.12.1")
+    (version "0.12.2")
     (source
      (origin
        (method url-fetch)
@@ -5034,23 +5698,60 @@ is configured via an environment variable.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1ndpw1ny2kxqpw6k1shq8k56z4vfpk4xz9zr8ay988k0rffrxd1s"))))
+         "1ka5y0fmymxzx3gz2yrd7rpz2i555m1iw4fpmcggpzcgr1n10wfk"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-backtrace" ,rust-backtrace-0.3)
-        ("rust-version-check" ,rust-version-check-0.1))))
+        ("rust-version-check" ,rust-version-check-0.9))))
     (home-page "https://github.com/rust-lang-nursery/error-chain")
     (synopsis "Yet another error boilerplate library")
     (description
      "Yet another error boilerplate library.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-error-chain-0.11
+  (package
+    (inherit rust-error-chain-0.12)
+    (name "rust-error-chain")
+    (version "0.11.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "error-chain" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1wykkr0naizbkwxjwia1rch8xhwvgij9khqvjzs07mrmqifislgz"))))
+    (arguments
+     `(#:tests? #f      ; Not all test files included.
+       #:cargo-inputs
+       (("rust-backtrace" ,rust-backtrace-0.3))))))
+
+(define-public rust-error-chain-0.10
+  (package
+    (inherit rust-error-chain-0.11)
+    (name "rust-error-chain")
+    (version "0.10.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "error-chain" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1y1gyj9g5c3k1nzkvxrgry8v9k86kcc585mczrm3qz019s35shyr"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-backtrace" ,rust-backtrace-0.3))))))
+
 (define-public rust-euclid-0.20
   (package
     (name "rust-euclid")
-    (version "0.20.7")
+    (version "0.20.10")
     (source
      (origin
        (method url-fetch)
@@ -5059,7 +5760,7 @@ is configured via an environment variable.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0pa8kxblvc0s9gia9n0966w7169aswpg7knw2pmwrqa204r2v19z"))))
+         "0c3hbl0kvc53k6nws0v9d46hi0giza1j079sqx2bgl4wfw65nshc"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -5127,7 +5828,7 @@ is configured via an environment variable.")
 (define-public rust-failure-0.1
   (package
     (name "rust-failure")
-    (version "0.1.5")
+    (version "0.1.7")
     (source
      (origin
        (method url-fetch)
@@ -5136,7 +5837,7 @@ is configured via an environment variable.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1qppmgv4i5jj6vrss91qackqnl0a12h7lnby4l7j5fdy78yxhnvr"))))
+         "0js6i6mb42q1g6q3csfbmi6q40s64k96705xbim0d8zg44j9qlmq"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -5152,7 +5853,7 @@ is configured via an environment variable.")
 (define-public rust-failure-derive-0.1
   (package
     (name "rust-failure-derive")
-    (version "0.1.5")
+    (version "0.1.7")
     (source
      (origin
        (method url-fetch)
@@ -5161,15 +5862,15 @@ is configured via an environment variable.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1q97n7dp51j5hndzic9ng2fgn6f3z5ya1992w84l7vypby8n647a"))))
+         "0cfjz0c9szqpxn43b2r722p6m3swzxj7aj6xhqw23ml7h8y762h3"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-proc-macro2" ,rust-proc-macro2-0.4)
-        ("rust-quote" ,rust-quote-0.6)
-        ("rust-syn" ,rust-syn-0.15)
-        ("rust-synstructure" ,rust-synstructure-0.10))
+       (("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-quote" ,rust-quote-1.0)
+        ("rust-syn" ,rust-syn-1.0)
+        ("rust-synstructure" ,rust-synstructure-0.12))
        #:cargo-development-inputs
        (("rust-failure" ,rust-failure-0.1))))
     (home-page "https://rust-lang-nursery.github.io/failure/")
@@ -5190,7 +5891,6 @@ is configured via an environment variable.")
          (base32
           "1xq759lsr8gqss7hva42azn3whgrbrs2sd9xpn92c5ickxm1fhs4"))))
     (build-system cargo-build-system)
-    (arguments '(#:skip-build? #t))
     (home-page "https://github.com/sfackler/rust-fallible-iterator")
     (synopsis "Fallible iterator traits")
     (description "If the @code{std} or @code{alloc} features are enabled, this
@@ -5200,6 +5900,38 @@ provides implementations for @code{HashMap} and @code{HashSet}.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-fern-0.5
+  (package
+    (name "rust-fern")
+    (version "0.5.9")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "fern" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1anslk0hx9an4ypcaxqff080hgbcxm7ji7d4qf4f6qx1mkav16p6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-reopen" ,rust-reopen-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-colored" ,rust-colored-1.9)
+        ("rust-syslog" ,rust-syslog-3.3)
+        ("rust-syslog" ,rust-syslog-4.0))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-2)
+        ("rust-tempdir" ,rust-tempdir-0.3))))
+    (home-page "https://github.com/daboross/fern")
+    (synopsis "Simple, efficient logging")
+    (description
+     "This package provides a simple, efficient logging system for Rust.")
+    (license license:expat)))
+
 (define-public rust-filetime-0.2
   (package
     (name "rust-filetime")
@@ -5334,7 +6066,7 @@ cross platform API.")
 (define-public rust-flate2-1.0
   (package
     (name "rust-flate2")
-    (version "1.0.9")
+    (version "1.0.14")
     (source
      (origin
        (method url-fetch)
@@ -5343,22 +6075,25 @@ cross platform API.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1n639gc7sbmrkir6pif608xqpwcv60kigmp5cn9x7m8892nk82am"))))
+         "0hlb2zmn5ixrgr0i1qvrd3a7j4fpp002d0kddn2hm7hjj49z9zrc"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-crc32fast" ,rust-crc32fast-1.2)
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-cloudflare-zlib-sys"
+         ,rust-cloudflare-zlib-sys-0.2)
+        ("rust-crc32fast" ,rust-crc32fast-1.2)
         ("rust-futures" ,rust-futures-0.1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-libz-sys" ,rust-libz-sys-1.0)
         ("rust-miniz-sys" ,rust-miniz-sys-0.1)
-        ("rust-miniz-oxide-c-api" ,rust-miniz-oxide-c-api-0.2)
+        ("rust-miniz-oxide" ,rust-miniz-oxide-0.3)
         ("rust-tokio-io" ,rust-tokio-io-0.1))
        #:cargo-development-inputs
        (("rust-futures" ,rust-futures-0.1)
-        ("rust-quickcheck" ,rust-quickcheck-0.8)
-        ("rust-rand" ,rust-rand-0.4)
+        ("rust-quickcheck" ,rust-quickcheck-0.9)
+        ("rust-rand" ,rust-rand-0.7)
         ("rust-tokio-io" ,rust-tokio-io-0.1)
         ("rust-tokio-tcp" ,rust-tokio-tcp-0.1)
         ("rust-tokio-threadpool" ,rust-tokio-threadpool-0.1))))
@@ -5454,6 +6189,48 @@ implementation that is more efficient for smaller hash keys.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-font-kit-0.4
+  (package
+    (name "rust-font-kit")
+    (version "0.4.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "font-kit" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1fmg1jmqdvsjxjbyz8chpx1mhp544mwq128ns1shhrha5a6zzdqp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-lyon-path" ,rust-lyon-path-0.14)
+        ("rust-core-graphics" ,rust-core-graphics-0.17)
+        ("rust-float-ord" ,rust-float-ord-0.2)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-euclid" ,rust-euclid-0.20)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-servo-fontconfig"
+         ,rust-servo-fontconfig-0.4)
+        ("rust-freetype" ,rust-freetype-0.4)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-core-foundation"
+         ,rust-core-foundation-0.6)
+        ("rust-memmap" ,rust-memmap-0.7)
+        ("rust-dwrote" ,rust-dwrote-0.9)
+        ("rust-dirs" ,rust-dirs-1.0)
+        ("rust-byteorder" ,rust-byteorder-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-core-text" ,rust-core-text-13)
+        ("rust-walkdir" ,rust-walkdir-2.3))))
+    (home-page "https://github.com/servo/font-kit")
+    (synopsis "Cross-platform font loading library")
+    (description
+     "This package provides a cross-platform font loading library.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-foreign-types-0.5
   (package
     (name "rust-foreign-types")
@@ -5606,6 +6383,31 @@ implementation that is more efficient for smaller hash keys.")
 values to other threads.")
     (license license:asl2.0)))
 
+(define-public rust-freetype-0.4
+  (package
+    (name "rust-freetype")
+    (version "0.4.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "freetype" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0a70x03n68997f08bi3n47q9wyi3pv5s9v4rjc79sihb84mnp4hi"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-servo-freetype-sys" ,rust-servo-freetype-sys-4))))
+    (home-page "https://github.com/servo/rust-freetype")
+    (synopsis "Bindings for Freetype used by Servo")
+    (description
+     "Bindings for Freetype used by Servo.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-freetype-rs-0.23
   (package
     (name "rust-freetype-rs")
@@ -5764,6 +6566,31 @@ for file changes notifications")
 macOS API for file changes notifications")
     (license license:expat)))
 
+(define-public rust-fst-0.4
+  (package
+    (name "rust-fst")
+    (version "0.4.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "fst" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0ybmdzkknhv1wx6ws86iyixfyzc04l4nm71b9va7953r1m3i6z1z"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-utf8-ranges" ,rust-utf8-ranges-1.0))))
+    (home-page "https://github.com/BurntSushi/fst")
+    (synopsis "Represent sets or maps of large numbers of strings.")
+    (description
+     "Use finite state transducers to compactly represent sets or maps of many
+strings (> 1 billion is possible).")
+    (license (list license:unlicense license:expat))))
+
 (define-public rust-fuchsia-cprng-0.1
   (package
     (name "rust-fuchsia-cprng")
@@ -6616,7 +7443,7 @@ API library @code{gdi32}.")
 (define-public rust-getrandom-0.1
   (package
     (name "rust-getrandom")
-    (version "0.1.6")
+    (version "0.1.14")
     (source
      (origin
        (method url-fetch)
@@ -6625,16 +7452,19 @@ API library @code{gdi32}.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0macrjfkgsjn6ikr94agapp4fkxmr8w7y2g7qis4icc4a17cwp76"))))
+         "1sq30li71h19rhnhs1h6576ja68insajx8wvh1nn088r8pc8vg3s"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1)
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-log" ,rust-log-0.4)
         ("rust-stdweb" ,rust-stdweb-0.4)
-        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2))))
+        ("rust-wasi" ,rust-wasi-0.9)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0))))
     (home-page "https://github.com/rust-random/getrandom")
     (synopsis "Retrieve random data from system source")
     (description
@@ -6642,6 +7472,109 @@ API library @code{gdi32}.")
 retrieving random data from system source.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-gfx-0.18
+  (package
+    (name "rust-gfx")
+    (version "0.18.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gfx" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0nqmxqi3x4ni0g78g77a6aldrv8cfvzhnpqhxyd2ap4aa3wldph1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-mint" ,rust-mint-0.5)
+        ("rust-draw-state" ,rust-draw-state-0.8)
+        ("rust-gfx-core" ,rust-gfx-core-0.9))))
+    (home-page "https://github.com/gfx-rs/gfx")
+    (synopsis "High-performance, bindless graphics API")
+    (description
+     "This package provides a high-performance, bindless graphics API.")
+    (license license:asl2.0)))
+
+(define-public rust-gfx-core-0.9
+  (package
+    (name "rust-gfx-core")
+    (version "0.9.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gfx_core" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0haldr99n12d90vqgvl77n59hywlklhdff85j2aljaz1yapdvyvm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-mint" ,rust-mint-0.5)
+        ("rust-draw-state" ,rust-draw-state-0.8)
+        ("rust-serde" ,rust-serde-1.0)
+        ("rust-bitflags" ,rust-bitflags-1))))
+    (home-page "https://github.com/gfx-rs/gfx")
+    (synopsis "Core library of Gfx-rs")
+    (description "This package is a core library of Gfx-rs.")
+    (license license:asl2.0)))
+
+(define-public rust-gfx-device-gl-0.16
+  (package
+    (name "rust-gfx-device-gl")
+    (version "0.16.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gfx_device_gl" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1g5yg19jvxdmviljyakhd6253bnb2qg7v8iscf48ihc0ldgki70h"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-gfx-gl" ,rust-gfx-gl-0.6)
+        ("rust-gfx-core" ,rust-gfx-core-0.9))))
+    (home-page "https://github.com/gfx-rs/gfx")
+    (synopsis "OpenGL backend for gfx-rs")
+    (description "This package provides the openGL backend for gfx-rs.")
+    (license license:asl2.0)))
+
+(define-public rust-gfx-gl-0.6
+  (package
+    (name "rust-gfx-gl")
+    (version "0.6.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gfx_gl" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0ppzj4bgjawdqz3fvnscqk8lnmgh95pwzh0v96vwy809cxj83lzj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-gl-generator" ,rust-gl-generator-0.14))))
+    (home-page "https://github.com/gfx-rs/gfx_gl")
+    (synopsis "OpenGL bindings for gfx, based on gl-rs")
+    (description
+     "This package provides OpenGL bindings for gfx, based on gl-rs.")
+    (license license:asl2.0)))
+
 (define-public rust-gif-0.10
   (package
     (name "rust-gif")
@@ -6669,6 +7602,37 @@ retrieving random data from system source.")
     (description "This package provides a GIF decoder and encoder in Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-gimli-0.20
+  (package
+    (name "rust-gimli")
+    (version "0.20.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gimli" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0cz6wg1niwfqf0mk28igsdnsm92cs57cai9jpzdmvw6hma863pc1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-fallible-iterator"
+         ,rust-fallible-iterator-0.2)
+        ("rust-arrayvec" ,rust-arrayvec-0.5)
+        ("rust-stable-deref-trait"
+         ,rust-stable-deref-trait-1.1)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-indexmap" ,rust-indexmap-1.3)
+        ("rust-byteorder" ,rust-byteorder-1.3))))
+    (home-page "https://github.com/gimli-rs/gimli")
+    (synopsis "Library for reading and writing the DWARF debugging format")
+    (description
+     "This package provides a library for reading and writing the DWARF debugging format.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-gimli-0.18
   (package
     (name "rust-gimli")
@@ -6868,6 +7832,29 @@ reading and writing git repositories.")
         ("rust-thread-id" ,rust-thread-id-3.3)
         ("rust-time" ,rust-time-0.1))))))
 
+(define-public rust-gl-0.11
+  (package
+    (name "rust-gl")
+    (version "0.11.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gl" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1wcqpyhck0xriffkmgmldy33lwk2044hb4l02d44vm4fbvicin6p"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-gl-generator" ,rust-gl-generator-0.10))))
+    (home-page "https://github.com/brendanzab/gl-rs/")
+    (synopsis "OpenGL bindings for rust")
+    (description "This package provides OpenGL bindings for rust.")
+    (license license:asl2.0)))
+
 (define-public rust-gl-generator-0.14
   (package
     (name "rust-gl-generator")
@@ -6923,6 +7910,33 @@ reading and writing git repositories.")
        (base32
         "1gdchvay0k0g931b2ki33mkfixcw4radk5b8sqsm29rahxg3v8ir"))))))
 
+(define-public rust-gl-generator-0.10
+  (package
+    (name "rust-gl-generator")
+    (version "0.10.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gl_generator" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0146yd4i9wbgfrhnkc04w7n7civbanznc0q87skp6v7p7hbszzx0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-xml-rs" ,rust-xml-rs-0.8)
+        ("rust-khronos-api" ,rust-khronos-api-3))))
+    (home-page "https://github.com/brendanzab/gl-rs/")
+    (synopsis
+     "Code generators for creating bindings to the Khronos OpenGL APIs")
+    (description
+     "Code generators for creating bindings to the Khronos OpenGL APIs.")
+    (license license:asl2.0)))
+
 (define-public rust-gleam-0.6
   (package
     (name "rust-gleam")
@@ -7365,6 +8379,53 @@ path simultaneously, and returning all of the globs that matched.")
     (description "This package provides FFI bindings to libgobject-2.0.")
     (license license:expat)))
 
+(define-public rust-goblin-0.2
+  (package
+    (name "rust-goblin")
+    (version "0.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "goblin" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1j38fkqadbsjxawr3wnj9m0qaihcwp6pmfakmhsar881509y7mfx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-scroll" ,rust-scroll-0.10)
+        ("rust-plain" ,rust-plain-0.2)
+        ("rust-log" ,rust-log-0.4))))
+    (home-page "https://github.com/m4b/goblin")
+    (synopsis "ELF, Mach-o, and PE binary parsing and loading crate")
+    (description "This package provides an ELF, Mach-o, and PE binary parsing
+and loading crate.")
+    (license license:expat)))
+
+(define-public rust-goblin-0.1
+  (package
+    (inherit rust-goblin-0.2)
+    (name "rust-goblin")
+    (version "0.1.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "goblin" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1nn0aa2jf207gbyccxnrzm7n217di025z5y1ybblp7nkk11j309h"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-scroll" ,rust-scroll-0.10)
+        ("rust-plain" ,rust-plain-0.2)
+        ("rust-log" ,rust-log-0.4))))))
+
 (define-public rust-goblin-0.0
   (package
     (name "rust-goblin")
@@ -7845,7 +8906,7 @@ consistent, and reasonably well performing.")
 (define-public rust-hermit-abi-0.1
   (package
     (name "rust-hermit-abi")
-    (version "0.1.6")
+    (version "0.1.10")
     (source
       (origin
         (method url-fetch)
@@ -7854,7 +8915,7 @@ consistent, and reasonably well performing.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-         "0wippj5nkw9q5yyyaqpdrgdhag3l3nbrwja7149cwn7ii1nnbwpg"))))
+          "0blmmzik5cs79ivq70s9gal8ypgzj50wnl2hwsaam46gjjbz2p3j"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -8364,6 +9425,38 @@ for the most common image formats.")
         ("rust-num-complex" ,rust-num-complex-0.2)
         ("rust-quickcheck" ,rust-quickcheck-0.6))))))
 
+(define-public rust-indexmap-1.3
+  (package
+    (name "rust-indexmap")
+    (version "1.3.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "indexmap" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "14i2gmq9pwaafvlxmsc12j6539hjgqk4j4jz40fz763vbcn08vq7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-autocfg" ,rust-autocfg-1.0)
+        ("rust-serde" ,rust-serde-1.0)
+        ("rust-rayon" ,rust-rayon-1.3))))
+    (home-page "https://github.com/bluss/indexmap")
+    (synopsis "Hash table with consistent order and fast iteration.")
+    (description
+     "This package provides a hash table with consistent order and fast iteration.
+
+The indexmap is a hash table where the iteration order of the key-value
+pairs is independent of the hash values of the keys.  It has the usual
+hash table functionality, it preserves insertion order except after
+removals, and it allows lookup of its elements by either hash table key
+or numerical index.  A corresponding hash set type is also provided.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-indexmap-1.0
   (package
     (name "rust-indexmap")
@@ -8546,6 +9639,53 @@ in Rust.")
 that works on WASM too.")
     (license license:bsd-3)))
 
+(define-public rust-interpolate-name-0.2
+  (package
+    (name "rust-interpolate-name")
+    (version "0.2.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "interpolate_name" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "05vzsiqb69d1mbpaphcg4ifjsjs6g03b8pacskfcydqhh555zcxl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-syn" ,rust-syn-1.0)
+        ("rust-quote" ,rust-quote-1.0))))
+    (home-page "https://github.com/lu-zero/interpolate_name")
+    (synopsis "Simple procedural macro attribute for repetitive tests")
+    (description
+     "Simple procedural macro attribute for repetitive tests.")
+    (license license:expat)))
+
+(define-public rust-interpolation-0.2
+  (package
+    (name "rust-interpolation")
+    (version "0.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "interpolation" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "00icvvgc72zdgyrwwg2p0wad4hry4d2vd6l9iqpyjpmw5dykbdyk"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/pistondevelopers/interpolation")
+    (synopsis "Library for interpolation")
+    (description
+     "This package provides a library for interpolation.")
+    (license license:expat)))
+
 (define-public rust-intervaltree-0.2
   (package
     (name "rust-intervaltree")
@@ -8620,7 +9760,7 @@ immutable interval tree.")
 (define-public rust-itertools-0.8
   (package
     (name "rust-itertools")
-    (version "0.8.0")
+    (version "0.8.2")
     (source
      (origin
        (method url-fetch)
@@ -8629,7 +9769,7 @@ immutable interval tree.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0n2k13b6w4x2x6np2lykh9bj3b3z4hwh2r4cn3z2dgnfq7cng12v"))))
+         "1154j48aw913v5jnyhpxialxhdn2sfpl4d7bwididyb1r05jsspm"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -8637,8 +9777,8 @@ immutable interval tree.")
        (("rust-either" ,rust-either-1.5))
        #:cargo-development-inputs
        (("rust-permutohedron" ,rust-permutohedron-0.2)
-        ("rust-quickcheck" ,rust-quickcheck-0.8)
-        ("rust-rand" ,rust-rand-0.4))))
+        ("rust-quickcheck" ,rust-quickcheck-0.7)
+        ("rust-rand" ,rust-rand-0.6))))
     (home-page
      "https://github.com/rust-itertools/itertools")
     (synopsis
@@ -8700,7 +9840,7 @@ and functions.")
 (define-public rust-itoa-0.4
   (package
     (name "rust-itoa")
-    (version "0.4.4")
+    (version "0.4.5")
     (source
       (origin
         (method url-fetch)
@@ -8708,7 +9848,7 @@ and functions.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "0zvg2d9qv3avhf3d8ggglh6fdyw8kkwqg3r4622ly5yhxnvnc4jh"))))
+          "13nxqrfnh83a7x5rw4wq2ilp8nxvwy74dxzysdg59dbxqk0agdxq"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/dtolnay/itoa")
     (synopsis "Fast functions for printing integer primitives")
@@ -8746,6 +9886,29 @@ primitives to an @code{io::Write}.")
         (base32
          "18g7p2hrb3dk84z3frfgmszfc9hjb4ps9vp99qlb1kmf9gm8hc5f"))))))
 
+(define-public rust-ivf-0.1
+  (package
+    (name "rust-ivf")
+    (version "0.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "ivf" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1wfjf3rilqavrhvwagzinvng9dg28wcjk3c6c6p5qmc1xy65qfh1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitstream-io" ,rust-bitstream-io-0.8))))
+    (home-page "https://github.com/xiph/rav1e")
+    (synopsis "Simple ivf muxer")
+    (description "This package provides a simple ivf muxer.")
+    (license license:bsd-2)))
+
 (define-public rust-jemalloc-sys-0.3
   (package
     (name "rust-jemalloc-sys")
@@ -8919,7 +10082,7 @@ primitives to an @code{io::Write}.")
 (define-public rust-js-sys-0.3
   (package
     (name "rust-js-sys")
-    (version "0.3.35")
+    (version "0.3.37")
     (source
      (origin
        (method url-fetch)
@@ -8928,7 +10091,7 @@ primitives to an @code{io::Write}.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1ybwazllkbif71i195dadgrsw64k6l04ggk5yimiy5c2cb1wg2bq"))))
+         "0mbhpbw3zjjl51m24qx3ilq4y8xipm5sfa5hsavaabqs6wsx89va"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -9181,7 +10344,7 @@ requires non-const function calls to be computed.")
 (define-public rust-libc-0.2
   (package
     (name "rust-libc")
-    (version "0.2.66")
+    (version "0.2.68")
     (source
      (origin
        (method url-fetch)
@@ -9189,7 +10352,7 @@ requires non-const function calls to be computed.")
        (file-name (string-append name "-" version ".crate"))
        (sha256
         (base32
-         "0n0mwry21fxfwc063k33mvxk8xj7ia5ar8m42c9ymbam2ksb25fm"))))
+         "1w6z9krcqn7p200sb80dxx76iyvw3jdz949zxr1sgfr3a50c186y"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -9462,6 +10625,30 @@ known as zlib).")
 graphics and video games.")
     (license license:expat)))
 
+(define-public rust-line-wrap-0.1
+  (package
+    (name "rust-line-wrap")
+    (version "0.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "line-wrap" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1ffa2whkyh9mwvdlpk6v8pjkg8p8mlzyjfymq5adll9a18sl80zk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-safemem" ,rust-safemem-0.3))))
+    (home-page "https://bitbucket.org/marshallpierce/line-wrap-rs/src")
+    (synopsis "Efficiently insert line separators")
+    (description
+     "Efficiently insert line separators.")
+    (license license:asl2.0)))
+
 (define-public rust-linked-hash-map-0.5
   (package
     (name "rust-linked-hash-map")
@@ -9717,7 +10904,7 @@ by inspecting the system for user preference.")
   (package
     (inherit rust-log-0.4)
     (name "rust-log")
-    (version "0.3.8")
+    (version "0.3.9")
     (source
       (origin
         (method url-fetch)
@@ -9725,7 +10912,10 @@ by inspecting the system for user preference.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0nsn28syc49vvjhxcfc8261rd1frhjc0r4bn9v3mqvps3ra7f3w8"))))))
+          "0jq23hhn5h35k7pa8r7wqnsywji6x3wn1q5q7lif5q536if8v7p1"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-log" ,rust-log-0.4))))))
 
 (define-public rust-loom-0.1
   (package
@@ -9780,6 +10970,58 @@ by inspecting the system for user preference.")
      "Colorize paths using the LS_COLORS environment variable.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-lyon-geom-0.14
+  (package
+    (name "rust-lyon-geom")
+    (version "0.14.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "lyon_geom" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "178z4cqqmyw0rsabbgx9phkjxjzcnq0604062lqjlq87k063216a"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-euclid" ,rust-euclid-0.20)
+        ("rust-arrayvec" ,rust-arrayvec-0.4)
+        ("rust-serde" ,rust-serde-1.0))))
+    (home-page "https://github.com/nical/lyon")
+    (synopsis "2D graphics rendering on the GPU using tessellation")
+    (description
+     "This package provides 2D graphics rendering on the GPU using tessellation.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-lyon-path-0.14
+  (package
+    (name "rust-lyon-path")
+    (version "0.14.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "lyon_path" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0qk8x46w0sf6j04l6gvhgn9kr4ymcqkmkh67w8wqahm54jn5gjqb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-lyon-geom" ,rust-lyon-geom-0.14)
+        ("rust-serde" ,rust-serde-1.0))))
+    (home-page "https://github.com/nical/lyon")
+    (synopsis "Types and utilities to store, build and iterate over 2D paths")
+    (description
+     "Types and utilities to store, build and iterate over 2D paths.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-lzma-sys-0.1
   (package
     (name "rust-lzma-sys")
@@ -10082,6 +11324,30 @@ parallelize and optimize.")
         (base32
          "0j2s8aqdkhwhy7awga2bmv5n8qq8bgy8672iha9f3y871dm6vibr"))))))
 
+(define-public rust-memchr-2.3
+  (package
+    (name "rust-memchr")
+    (version "2.3.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "memchr" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0074pvsfl938ndl5js14ibc7i9q0k3zp390z843w8nlyv4bxha1p"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/BurntSushi/rust-memchr")
+    (synopsis "Safe interface to memchr")
+    (description "The @code{memchr} crate provides heavily optimized routines
+for searching bytes.")
+    (license (list license:unlicense license:expat))))
+
 (define-public rust-memchr-2.2
   (package
     (name "rust-memchr")
@@ -10252,6 +11518,31 @@ for Rust structs.")
          "1cvm2z7dy138s302ii7wlzcxbka5a8yfl5pl5di7lbdnw9hw578g"))))
     (arguments `(#:skip-build? #t))))
 
+(define-public rust-metadeps-1.1
+  (package
+    (name "rust-metadeps")
+    (version "1.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "metadeps" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1hjla9ypycqw1snd2qf87cckcc0d5z5qvxpcijn5yrrs3f825cbk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-error-chain" ,rust-error-chain-0.10)
+        ("rust-toml" ,rust-toml-0.2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (home-page "https://github.com/joshtriplett/metadeps")
+    (synopsis "Run pkg-config from declarative dependencies in Cargo.toml")
+    (description "Run pkg-config from declarative dependencies in Cargo.toml.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-metal-0.14
   (package
     (name "rust-metal")
@@ -10311,14 +11602,15 @@ for Rust structs.")
 (define-public rust-miniz-oxide-0.3
   (package
     (name "rust-miniz-oxide")
-    (version "0.3.3")
+    (version "0.3.6")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "miniz_oxide" version))
         (file-name (string-append name "-" version ".crate"))
         (sha256
-         (base32 "1bmanbbcdmssfbgik3fs323g7vljc5wkjz7s61jsbbz2kg0nckrh"))))
+         (base32
+          "198n4hfpq0qcxf275l6fpzh7b9cl7ck2xs6pjgpds74bazv9yrxa"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -10664,6 +11956,29 @@ checking.")
       "Chaining APIs for both self -> Self and &mut self methods.")
     (license license:expat)))
 
+(define-public rust-nasm-rs-0.1
+  (package
+    (name "rust-nasm-rs")
+    (version "0.1.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "nasm-rs" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0r34hiy1pc0aksrfc02zsl0zyw33i9yi7kyx8l214l7nm0mzm97y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-rayon" ,rust-rayon-1.3))))
+    (home-page "https://github.com/medek/nasm-rs")
+    (synopsis "Run NASM during your Cargo build")
+    (description "Run NASM during your Cargo build.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-nalgebra-0.18
   (package
     (name "rust-nalgebra")
@@ -11081,6 +12396,29 @@ combinators library.")
       ;; This is an ancient version and all inputs are optional.
      `(#:skip-build? #t))))
 
+(define-public rust-noop-proc-macro-0.2
+  (package
+    (name "rust-noop-proc-macro")
+    (version "0.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "noop_proc_macro" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "0in1l0rjxzs4fylb6zad484z1c58jxyzchhc12k0cjrvm0y6zwsz"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page
+      "https://github.com/lu-zero/noop_proc_macro")
+    (synopsis
+      "No-op proc_macro, literally does nothing")
+    (description
+      "No-op proc_macro, literally does nothing")
+    (license license:expat)))
+
 (define-public rust-notify-4
   (package
     (name "rust-notify")
@@ -11318,6 +12656,31 @@ including bigint, complex, rational, range iterators, generic integers, and more
        #:cargo-development-inputs
        (("rust-doc-comment" ,rust-doc-comment-0.3))))))
 
+(define-public rust-num-derive-0.3
+  (package
+    (name "rust-num-derive")
+    (version "0.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "num-derive" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0imprwv8cs01k46g56ajlvc97dp8kz51y2vn6cp9jkw1c6r1b2qc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-syn" ,rust-syn-1.0)
+        ("rust-quote" ,rust-quote-1.0))))
+    (home-page "https://github.com/rust-num/num-derive")
+    (synopsis "Numeric syntax extensions")
+    (description "This package provides numeric syntax extensions.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-num-derive-0.2
   (package
     (name "rust-num-derive")
@@ -11671,6 +13034,37 @@ Foundation framework.")
      "This package provides utilities for testing Objective-C interop.")
     (license license:expat)))
 
+(define-public rust-object-0.17
+  (package
+    (name "rust-object")
+    (version "0.17.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "object" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1bmgbg4k0725lchfy9j1wnpfmywh5qhs0k4k6j2g7c0acvys8i7a"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-goblin" ,rust-goblin-0.1)
+        ("rust-target-lexicon" ,rust-target-lexicon-0.10)
+        ("rust-scroll" ,rust-scroll-0.10)
+        ("rust-parity-wasm" ,rust-parity-wasm-0.41)
+        ("rust-uuid" ,rust-uuid-0.8)
+        ("rust-flate2" ,rust-flate2-1.0)
+        ("rust-crc32fast" ,rust-crc32fast-1.2)
+        ("rust-indexmap" ,rust-indexmap-1.3))))
+    (home-page "https://github.com/gimli-rs/object")
+    (synopsis "Unified interface for reading and writing object file formats")
+    (description "This package provides a unified interface for reading and
+writing object file formats.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-object-0.12
   (package
     (name "rust-object")
@@ -11735,6 +13129,67 @@ slices (@code{.find()}, @code{RevSlice}), strings and other things.
 Things in odds may move to more appropriate crates if we find them.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-onig-5.0
+  (package
+    (name "rust-onig")
+    (version "5.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "onig" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0ivr0wq1zlyjhhkxpsnmpncg92sjx3rha8pnp3m1mzvgk7y27rz4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-onig-sys" ,rust-onig-sys-69.2))))
+    (home-page "http://github.com/iwillspeak/rust-onig")
+    (synopsis
+     "Rust bindings for the Oniguruma regular expression library")
+    (description
+     "Rust-Onig is a set of Rust bindings for the Oniguruma regular expression
+library.  Oniguruma is a modern regex library with support for multiple
+character encodings and regex syntaxes.")
+    (license license:expat)))
+
+(define-public rust-onig-sys-69.2
+  (package
+    (name "rust-onig-sys")
+    (version "69.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "onig_sys" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0kjijq29yx05xxg9snvqnfn53dl52hchb4sk3zhfr77mypxlx38a"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-bindgen" ,rust-bindgen-0.50)
+        ("rust-cc" ,rust-cc-1.0))))
+    (home-page "http://github.com/iwillspeak/rust-onig")
+    (synopsis
+     "Rust bindings to the oniguruma library.")
+    (description
+      "The @code{onig_sys} crate contains raw rust bindings to the oniguruma
+library.  This crate exposes a set of unsafe functions which can then be used by
+other crates to create safe wrappers around Oniguruma.
+You probably don't want to link to this crate directly; instead check out the
+@code{onig} crate.")
+    (license license:expat)))
+
 (define-public rust-once-cell-1.2
   (package
     (name "rust-once-cell")
@@ -11763,6 +13218,27 @@ Things in odds may move to more appropriate crates if we find them.")
      "Single assignment cells and lazy values.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-oorandom-11.1
+  (package
+    (name "rust-oorandom")
+    (version "11.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "oorandom" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "01clxfnz1zwg4maynvbgj09wlkj5m3c8kjqfrp3sqp59qb4wgkpb"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://hg.sr.ht/~icefox/oorandom")
+    (synopsis "A tiny, robust PRNG implementation.")
+    (description
+      "This package provides a tiny, robust PRNG implementation.")
+    (license license:expat)))
+
 (define-public rust-opaque-debug-0.2
   (package
     (name "rust-opaque-debug")
@@ -12088,6 +13564,31 @@ under its new name.")
      "A cross-platform library for opening OS pipes.")
     (license license:expat)))
 
+(define-public rust-output-vt100-0.1
+  (package
+    (name "rust-output-vt100")
+    (version "0.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "output_vt100" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1ygqplpxz4gg3i8f3rkan2q69pqll7gv65l2mmd8r9dphnvwbkak"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/Phundrak/output-vt100-rs")
+    (synopsis
+     "Utility to activate escape codes in Windows' CMD and PowerShell")
+    (description
+     "Utility to activate escape codes in Windows' CMD and PowerShell.")
+    (license license:expat)))
+
 (define-public rust-osmesa-sys-0.1
   (package
     (name "rust-osmesa-sys")
@@ -12187,6 +13688,61 @@ normally prevent moving a type that has been borrowed from.")
       "This package provides a library for padding strings at runtime.")
     (license license:expat)))
 
+(define-public rust-palette-0.5
+  (package
+    (name "rust-palette")
+    (version "0.5.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "palette" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0nfc4ycdsx2qgf2wkcpxqxc0vmx7188jjjx3ppgs8qlf8qs06p50"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-approx" ,rust-approx-0.3)
+        ("rust-palette-derive" ,rust-palette-derive-0.5)
+        ("rust-phf" ,rust-phf-0.8)
+        ("rust-phf-codegen" ,rust-phf-codegen-0.8)
+        ("rust-serde" ,rust-serde-1.0))))
+    (home-page "https://github.com/Ogeon/palette")
+    (synopsis "Linear color calculations and conversion")
+    (description
+     "This package makes linear color calculations and conversion accessible.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-palette-derive-0.5
+  (package
+    (name "rust-palette-derive")
+    (version "0.5.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "palette_derive" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1x5icddb877923rpl27bg4cjsf1x0d3layxmgwa3mpb01rh5yjqb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-syn" ,rust-syn-1.0)
+        ("rust-quote" ,rust-quote-1.0))))
+    (home-page "https://github.com/Ogeon/palette")
+    (synopsis "Automatically implement traits from the palette crate")
+    (description
+     "Automatically implement traits from the palette crate.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-pango-0.7
   (package
     (name "rust-pango")
@@ -12320,6 +13876,28 @@ normally prevent moving a type that has been borrowed from.")
     (description "This package provides FFI bindings to libgtk-3.")
     (license license:expat)))
 
+(define-public rust-parity-wasm-0.41
+  (package
+    (name "rust-parity-wasm")
+    (version "0.41.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "parity-wasm" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "0rfqgjyxrxrfjq5r5n81mdklahl8g4az6yhyyvw25nh0mj6qgz6x"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page
+      "https://github.com/paritytech/parity-wasm")
+    (synopsis "WebAssembly low-level format library")
+    (description
+      "WebAssembly low-level format library")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-parity-wasm-0.40
   (package
     (name "rust-parity-wasm")
@@ -12573,7 +14151,7 @@ synchronization primitives.")
 (define-public rust-paste-0.1
   (package
     (name "rust-paste")
-    (version "0.1.7")
+    (version "0.1.10")
     (source
      (origin
        (method url-fetch)
@@ -12582,12 +14160,15 @@ synchronization primitives.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0in0dqar8s16w6gbwyzwvckm80ala02pq87innx1w6yp73kszqb3"))))
+         "0yk4zbi7128dcrklsbwfa63d39x0dv8f7pdbrylvdlcj0s9v2kxb"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-paste-impl" ,rust-paste-impl-0.1)
-        ("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5))))
+        ("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5))
+       #:cargo-development-inputs
+       (("rust-rustversion" ,rust-rustversion-1.0)
+        ("rust-trybuild" ,rust-trybuild-1.0))))
     (home-page "https://github.com/dtolnay/paste")
     (synopsis "Macros for all your token pasting needs")
     (description
@@ -12597,7 +14178,7 @@ synchronization primitives.")
 (define-public rust-paste-impl-0.1
   (package
     (name "rust-paste-impl")
-    (version "0.1.7")
+    (version "0.1.10")
     (source
      (origin
        (method url-fetch)
@@ -12606,7 +14187,7 @@ synchronization primitives.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1fwj11j5lhya5fjr4gfljxfm74ahlr09c8xbb8f22hzpyskw8kbd"))))
+         "12jsm83dnsqnrcabfacnwcxh3h4kykl622vi7glv2wg527hqc956"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -12895,6 +14476,32 @@ algorithm.")
 algorithms.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-phf-0.8
+  (package
+    (name "rust-phf")
+    (version "0.8.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "phf" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "04pyv8bzqvw69rd5dynd5nb85py1hf7wa4ixyhrvdz1l5qin3yrx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)
+        ("rust-phf-shared" ,rust-phf-shared-0.8)
+        ("rust-phf-macros" ,rust-phf-macros-0.8))))
+    (home-page "https://github.com/sfackler/rust-phf")
+    (synopsis "Runtime support for perfect hash function data structures")
+    (description "This package provides runtime support for perfect hash
+function data structures.")
+    (license license:expat)))
+
 (define-public rust-phf-0.7
   (package
     (name "rust-phf")
@@ -12920,6 +14527,30 @@ algorithms.")
      "Runtime support for perfect hash function data structures.")
     (license license:expat)))
 
+(define-public rust-phf-codegen-0.8
+  (package
+    (name "rust-phf-codegen")
+    (version "0.8.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "phf_codegen" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "05d8w7aqqjb6039pfm6404gk5dlwrrf97kiy1n21212vb1hyxzyb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-phf-generator" ,rust-phf-generator-0.8)
+        ("rust-phf-shared" ,rust-phf-shared-0.8))))
+    (home-page "https://github.com/sfackler/rust-phf")
+    (synopsis "Codegen library for PHF types")
+    (description "Codegen library for PHF types.")
+    (license license:expat)))
+
 (define-public rust-phf-codegen-0.7
   (package
     (name "rust-phf-codegen")
@@ -12944,6 +14575,31 @@ algorithms.")
     (description "Codegen library for PHF types.")
     (license license:expat)))
 
+(define-public rust-phf-generator-0.8
+  (package
+    (name "rust-phf-generator")
+    (version "0.8.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "phf_generator" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "09i5338d1kixq6a60fcayz6awgxjlxcfw9ic5f02abbgr067ydhp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-phf-shared" ,rust-phf-shared-0.8))))
+    (home-page "https://github.com/sfackler/rust-phf")
+    (synopsis "PHF generation logic")
+    (description "PHF generation logic.")
+    (license license:expat)))
+
 (define-public rust-phf-generator-0.7
   (package
     (name "rust-phf-generator")
@@ -12967,6 +14623,35 @@ algorithms.")
     (description "PHF generation logic")
     (license license:expat)))
 
+(define-public rust-phf-macros-0.8
+  (package
+    (name "rust-phf-macros")
+    (version "0.8.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "phf_macros" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "170qm6yqn6b9mjlwb2xmm3iad9d5nzwgfawfwy7zr7s2zwcdwvvz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)
+        ("rust-phf-generator" ,rust-phf-generator-0.8)
+        ("rust-phf-shared" ,rust-phf-shared-0.8)
+        ("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-syn" ,rust-syn-1.0)
+        ("rust-quote" ,rust-quote-1.0))))
+    (home-page "https://github.com/sfackler/rust-phf")
+    (synopsis "Macros to generate types in the phf crate")
+    (description
+     "This package contains macros to generate types in the phf crate.")
+    (license license:expat)))
+
 (define-public rust-phf-macros-0.7
   (package
     (name "rust-phf-macros")
@@ -12999,6 +14684,31 @@ algorithms.")
      "Macros to generate types in the phf crate.")
     (license license:expat)))
 
+(define-public rust-phf-shared-0.8
+  (package
+    (name "rust-phf-shared")
+    (version "0.8.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "phf_shared" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1xssnqrrcn0nr9ayqrnm8xm37ac4xvwcx8pax7jxss7yxawzh360"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-siphasher" ,rust-siphasher-0.3)
+        ("rust-unicase" ,rust-unicase-2.6))))
+    (home-page "https://github.com/sfackler/rust-phf")
+    (synopsis "Support code shared by PHF libraries")
+    (description
+     "This package provides support code shared by PHF libraries.")
+    (license license:expat)))
+
 (define-public rust-phf-shared-0.7
   (package
     (name "rust-phf-shared")
@@ -13062,6 +14772,368 @@ algorithms.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-piston-0.49
+  (package
+    (name "rust-piston")
+    (version "0.49.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "piston" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1y0rbw92mzagqmwk79wv9axq0m7aid0s0d5cppyzh33wrxhdl3xj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-pistoncore-input" ,rust-pistoncore-input-0.28)
+        ("rust-pistoncore-window" ,rust-pistoncore-window-0.44)
+        ("rust-pistoncore-event-loop" ,rust-pistoncore-event-loop-0.49))))
+    (home-page "https://github.com/PistonDevelopers/piston")
+    (synopsis "Piston game engine core libraries")
+    (description
+     "The Piston game engine core libraries.")
+    (license license:expat)))
+
+(define-public rust-piston-float-1.0
+  (package
+    (name "rust-piston-float")
+    (version "1.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "piston-float" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "0r35aasycms79hf2vf1ap40kkp8ywgl4hmfkf762dq8jwd3vw07r"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page
+      "https://github.com/pistondevelopers/float")
+    (synopsis
+      "Traits for generic floats in game development")
+    (description
+      "Traits for generic floats in game development")
+    (license license:expat)))
+
+(define-public rust-piston-gfx-texture-0.40
+  (package
+    (name "rust-piston-gfx-texture")
+    (version "0.40.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "piston-gfx_texture" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1nr5awdgk3njfvfanszrv4gxz93f6skid1c8yijswccygripchqz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-gfx" ,rust-gfx-0.18)
+        ("rust-image" ,rust-image-0.22)
+        ("rust-piston-texture" ,rust-piston-texture-0.8)
+        ("rust-gfx-core" ,rust-gfx-core-0.9))))
+    (home-page "https://github.com/pistondevelopers/gfx_texture")
+    (synopsis
+      "Gfx texture representation that works nicely with Piston libraries")
+    (description "This package provides a Gfx texture representation that works
+nicely with Piston libraries.")
+    (license license:expat)))
+
+(define-public rust-piston-graphics-api-version-0.2
+  (package
+    (name "rust-piston-graphics-api-version")
+    (version "0.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "piston-graphics_api_version" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "1b5p6s45jqv057lpbxkiq3yrdjjhvcynmi2vjf8292rf0yh4hky5"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page
+      "https://github.com/PistonDevelopers/graphics_api_version")
+    (synopsis
+      "A library for storing graphics API versions")
+    (description
+      "This package provides a library for storing graphics API versions")
+    (license license:expat)))
+
+(define-public rust-piston-shaders-graphics2d-0.3
+  (package
+    (name "rust-piston-shaders-graphics2d")
+    (version "0.3.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "piston-shaders_graphics2d" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "1dhh9bv4q19gdnj9d1nqq0yrvzs6gcn0c5j1p1f3xzyzq7d1gg4p"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page
+      "https://github.com/PistonDevelopers/shaders")
+    (synopsis "Shaders for 2D graphics in Rust")
+    (description "Shaders for 2D graphics in Rust")
+    (license license:expat)))
+
+(define-public rust-piston-texture-0.8
+  (package
+    (name "rust-piston-texture")
+    (version "0.8.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "piston-texture" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "1pcv5my49b8xzqcb87wqh2ndgvr4s9ipys96s0h9j2plxrj3bjb2"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page
+      "https://github.com/pistondevelopers/texture")
+    (synopsis "A generic library for textures")
+    (description
+      "This package provides a generic library for textures")
+    (license license:expat)))
+
+(define-public rust-piston-viewport-1.0
+  (package
+    (name "rust-piston-viewport")
+    (version "1.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "piston-viewport" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "16378hcy41b7x3zj2z4har0wq6fl4r62kf9p106jjl8hg2dv3aq1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-piston-float" ,rust-piston-float-1.0))))
+    (home-page "https://github.com/PistonDevelopers/viewport")
+    (synopsis "Library for storing viewport information")
+    (description
+     "This package provides a library for storing viewport information.")
+    (license license:expat)))
+
+(define-public rust-piston-window-0.105
+  (package
+    (name "rust-piston-window")
+    (version "0.105.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "piston_window" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "05n2905gkp5ck25kbq95ia6pj1xz63dpp247jz3xcw1d41xpvi95"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-gfx-device-gl" ,rust-gfx-device-gl-0.16)
+        ("rust-gfx" ,rust-gfx-0.18)
+        ("rust-piston2d-graphics" ,rust-piston2d-graphics-0.35)
+        ("rust-piston" ,rust-piston-0.49)
+        ("rust-shader-version" ,rust-shader-version-0.6)
+        ("rust-pistoncore-glutin-window" ,rust-pistoncore-glutin-window-0.63)
+        ("rust-piston2d-gfx-graphics" ,rust-piston2d-gfx-graphics-0.66)
+        ("rust-piston-texture" ,rust-piston-texture-0.8))))
+    (home-page "https://github.com/pistondevelopers/piston_window")
+    (synopsis "Official Piston window wrapper for the Piston game engine")
+    (description
+     "The official Piston window wrapper for the Piston game engine.")
+    (license license:expat)))
+
+(define-public rust-piston2d-gfx-graphics-0.66
+  (package
+    (name "rust-piston2d-gfx-graphics")
+    (version "0.66.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "piston2d-gfx_graphics" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1pmlkf5rl6pr0c1lqm0059xwj9pwlws7gaq9w6r9d916di6fzki1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-gfx" ,rust-gfx-0.18)
+        ("rust-piston-shaders-graphics2d" ,rust-piston-shaders-graphics2d-0.3)
+        ("rust-piston-gfx-texture" ,rust-piston-gfx-texture-0.40)
+        ("rust-shader-version" ,rust-shader-version-0.6)
+        ("rust-draw-state" ,rust-draw-state-0.8))))
+    (home-page "https://github.com/PistonDevelopers/gfx_graphics")
+    (synopsis "Gfx 2D back-end for the Piston game engine")
+    (description
+     "This package provides a Gfx 2D back-end for the Piston game engine.")
+    (license license:expat)))
+
+(define-public rust-piston2d-graphics-0.35
+  (package
+    (name "rust-piston2d-graphics")
+    (version "0.35.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "piston2d-graphics" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1dx2fanxc2pj76hc5l72x0fh4qg9gchjlr8rmbhdk6jpggcmq56g"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-interpolation" ,rust-interpolation-0.2)
+        ("rust-rusttype" ,rust-rusttype-0.7)
+        ("rust-piston-texture" ,rust-piston-texture-0.8)
+        ("rust-piston-viewport" ,rust-piston-viewport-1.0)
+        ("rust-read-color" ,rust-read-color-1.0)
+        ("rust-vecmath" ,rust-vecmath-1.0)
+        ("rust-fnv" ,rust-fnv-1.0))))
+    (home-page "https://github.com/pistondevelopers/graphics")
+    (synopsis "Library for 2D graphics that works with multiple back-ends")
+    (description "This package provides a library for 2D graphics that works
+with multiple back-ends.")
+    (license license:expat)))
+
+(define-public rust-pistoncore-event-loop-0.49
+  (package
+    (name "rust-pistoncore-event-loop")
+    (version "0.49.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pistoncore-event_loop" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1h9ij9vx42xg39198yxdlpk842pli5jqm2kwswiv3bqqcji0fwsm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-pistoncore-input" ,rust-pistoncore-input-0.28)
+        ("rust-pistoncore-window" ,rust-pistoncore-window-0.44))))
+    (home-page "https://github.com/PistonDevelopers/piston")
+    (synopsis "Piston event loop for games and interactive applications")
+    (description "This package provides a Piston event loop for games and
+interactive applications.")
+    (license license:expat)))
+
+(define-public rust-pistoncore-glutin-window-0.63
+  (package
+    (name "rust-pistoncore-glutin-window")
+    (version "0.63.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pistoncore-glutin_window" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0dhbyxarv5i742d400bmqdqq3f8c25kcgcg0xavrc18dc913rixc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-gl" ,rust-gl-0.11)
+        ("rust-glutin" ,rust-glutin-0.21)
+        ("rust-pistoncore-input" ,rust-pistoncore-input-0.28)
+        ("rust-pistoncore-window" ,rust-pistoncore-window-0.44)
+        ("rust-shader-version" ,rust-shader-version-0.6))))
+    (home-page "https://github.com/pistondevelopers/glutin_window")
+    (synopsis "Piston window back-end using the Glutin library")
+    (description
+     "This package provides a Piston window back-end using the Glutin library.")
+    (license license:expat)))
+
+(define-public rust-pistoncore-input-0.28
+  (package
+    (name "rust-pistoncore-input")
+    (version "0.28.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pistoncore-input" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1rrcz9px098m3nx98gvrvzirfdp3vg03cblfkcrp4wnvswc0hwq5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-piston-viewport" ,rust-piston-viewport-1.0)
+        ("rust-serde" ,rust-serde-1.0)
+        ("rust-serde-derive" ,rust-serde-derive-1.0)
+        ("rust-bitflags" ,rust-bitflags-1))))
+    (home-page "https://github.com/PistonDevelopers/piston")
+    (synopsis "Structure for user input")
+    (description
+     "This package provides a structure for user input.")
+    (license license:expat)))
+
+(define-public rust-pistoncore-window-0.44
+  (package
+    (name "rust-pistoncore-window")
+    (version "0.44.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pistoncore-window" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "18qy3nnpb9jczvkiyzzznamck0pzgiyi6073jrkldnci6b3in10q"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-piston-graphics-api-version"
+         ,rust-piston-graphics-api-version-0.2)
+        ("rust-pistoncore-input" ,rust-pistoncore-input-0.28))))
+    (home-page "https://github.com/PistonDevelopers/piston")
+    (synopsis "Library for window abstraction")
+    (description
+     "This package provides a library for window abstraction.")
+    (license license:expat)))
+
 (define-public rust-pkg-config-0.3
   (package
     (name "rust-pkg-config")
@@ -13108,6 +15180,72 @@ used in Cargo build scripts.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-plist-0.4
+  (package
+    (name "rust-plist")
+    (version "0.4.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "plist" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0zqnxc5i4y6mj119vr0lzpb5j67vffpx2phhgh711533bw3ryajz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-line-wrap" ,rust-line-wrap-0.1)
+        ("rust-base64" ,rust-base64-0.10)
+        ("rust-xml-rs" ,rust-xml-rs-0.8)
+        ("rust-serde" ,rust-serde-1.0)
+        ("rust-humantime" ,rust-humantime-1.3)
+        ("rust-byteorder" ,rust-byteorder-1.3))))
+    (home-page "https://github.com/ebarnard/rust-plist/")
+    (synopsis "Rusty plist parser")
+    (description
+     "This package provides a rusty plist parser.  Supports Serde serialization.")
+    (license license:expat)))
+
+(define-public rust-plotters-0.2
+  (package
+    (name "rust-plotters")
+    (version "0.2.12")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "plotters" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1ssycy9an23vs9hq098c7kl1dvp5ych20d994lhsw9vx4kdbhfsf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-gif" ,rust-gif-0.10)
+        ("rust-piston-window" ,rust-piston-window-0.105)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
+        ("rust-image" ,rust-image-0.22)
+        ("rust-js-sys" ,rust-js-sys-0.3)
+        ("rust-web-sys" ,rust-web-sys-0.3)
+        ("rust-font-kit" ,rust-font-kit-0.4)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-palette" ,rust-palette-0.5)
+        ("rust-cairo-rs" ,rust-cairo-rs-0.7)
+        ("rust-rusttype" ,rust-rusttype-0.8)
+        ("rust-lazy-static" ,rust-lazy-static-1))))
+    (home-page "https://github.com/38/plotters")
+    (synopsis "Rust drawing library focus on data plotting")
+    (description
+     "This package provides a Rust drawing library focus on data plotting for
+both WASM and native applications")
+    (license license:expat)))
+
 (define-public rust-plugin-0.2
   (package
     (name "rust-plugin")
@@ -13332,11 +15470,119 @@ for x86.")
 dependency to expose a precomputed hash.")
     (license license:expat)))
 
-;; Cyclic dependencies with rust-demo-hack.
+(define-public rust-pretty-assertions-0.6
+  (package
+    (name "rust-pretty-assertions")
+    (version "0.6.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pretty_assertions" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "09yl14gnmpygiqrdlsa64lcl4w6ydjl9m8jri6kgam0v9rjf309z"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-ctor" ,rust-ctor-0.1)
+        ("rust-output-vt100" ,rust-output-vt100-0.1)
+        ("rust-ansi-term" ,rust-ansi-term-0.11)
+        ("rust-difference" ,rust-difference-2.0))))
+    (home-page "https://github.com/colin-kiegel/rust-pretty-assertions")
+    (synopsis "Drop-in replacements for assert_eq! and assert_ne!")
+    (description
+     "Overwrite @code{assert_eq!} and @code{assert_ne!} with drop-in
+replacements, adding colorful diffs.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-pretty-env-logger-0.3
+  (package
+    (name "rust-pretty-env-logger")
+    (version "0.3.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pretty_env_logger" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0x4hyjlnvvhyk9m74iypzybm22w3dl2k8img4b956239n5vf8zki"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-env-logger" ,rust-env-logger-0.6))))
+    (home-page "https://github.com/seanmonstar/pretty-env-logger")
+    (synopsis "Visually pretty env_logger")
+    (description "This package provides a visually pretty env_logger.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-proc-macro-error-0.4
+  (package
+    (name "rust-proc-macro-error")
+    (version "0.4.12")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "proc-macro-error" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1rvpaadwv7vmsp142qqh2axqrr9v78f1nvdsi9nhmfhy10kk1wqq"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-proc-macro-error-attr" ,rust-proc-macro-error-attr-0.4)
+         ("rust-version-check" ,rust-version-check-0.9)
+         ("rust-proc-macro2" ,rust-proc-macro2-1.0)
+         ("rust-syn" ,rust-syn-1.0)
+         ("rust-quote" ,rust-quote-1.0))))
+    (home-page "https://gitlab.com/CreepySkeleton/proc-macro-error")
+    (synopsis "Almost drop-in replacement to panics in proc-macros")
+    (description
+     "Almost drop-in replacement to panics in proc-macros.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-proc-macro-error-attr-0.4
+  (package
+    (name "rust-proc-macro-error-attr")
+    (version "0.4.12")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "proc-macro-error-attr" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1pk9mwcfnpf8favgc2cl4sqlmi818p96hg8pfb51wg5nzmvlnnwa"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-syn-mid" ,rust-syn-mid-0.5)
+        ("rust-version-check" ,rust-version-check-0.9)
+        ("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-syn" ,rust-syn-1.0)
+        ("rust-quote" ,rust-quote-1.0))))
+    (home-page "https://gitlab.com/CreepySkeleton/proc-macro-error")
+    (synopsis "Attribute macro for proc-macro-error crate")
+    (description
+     "Attribute macro for proc-macro-error crate.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-proc-macro-hack-0.5
   (package
     (name "rust-proc-macro-hack")
-    (version "0.5.11")
+    (version "0.5.15")
     (source
      (origin
        (method url-fetch)
@@ -13345,15 +15591,15 @@ dependency to expose a precomputed hash.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1idz5vmnjjhvr51yvwyjb45mza18wa53fr05m1skqvbdyw15gm7c"))))
+         "0qqbfm1byabjkph56r2rlvv4cliz4960j6hav3ljazyjqvkryr8d"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-proc-macro2" ,rust-proc-macro2-1.0)
-        ("rust-quote" ,rust-quote-1.0)
-        ("rust-syn" ,rust-syn-1.0))
-       #:cargo-development-inputs
-       (("rust-demo-hack" ,rust-demo-hack-0.0)
+     `(#:cargo-development-inputs
+       (("rust-quote" ,rust-quote-1.0)
+        ("rust-rustversion" ,rust-rustversion-1.0)
+        ("rust-syn" ,rust-syn-1.0)
+        ("rust-trybuild" ,rust-trybuild-1.0)
+        ("rust-demo-hack" ,rust-demo-hack-0.0)
         ("rust-demo-hack-impl" ,rust-demo-hack-impl-0.0))))
     (home-page "https://github.com/dtolnay/proc-macro-hack")
     (synopsis
@@ -13429,7 +15675,7 @@ dependency to expose a precomputed hash.")
 (define-public rust-proc-macro2-1.0
   (package
     (name "rust-proc-macro2")
-    (version "1.0.8")
+    (version "1.0.10")
     (source
       (origin
         (method url-fetch)
@@ -13437,7 +15683,7 @@ dependency to expose a precomputed hash.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "0j45p176fnw0d02dzcky9sxyr4fadiggq07skmblwspqdxy33jrs"))))
+          "1qxbnl8i3a5b2nxb8kdxbq6kj3pd1ckhm35wm7z3jd7n5wlns96z"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -13465,11 +15711,39 @@ in terms of the upstream unstable API.")
          (base32
           "0nd71fl24sys066jrha6j7i34nfkjv44yzw8yww9742wmc8j0gfg"))))
     (arguments
-     `(#:cargo-inputs
+     `(#:tests? #f      ; doc tests fail
+       #:cargo-inputs
        (("rust-unicode-xid" ,rust-unicode-xid-0.1))
        #:cargo-development-inputs
        (("rust-quote" ,rust-quote-0.6))))))
 
+(define-public rust-proc-macro2-0.3
+  (package
+    (name "rust-proc-macro2")
+    (version "0.3.8")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "proc-macro2" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1ryaynnaj39l4zphcg5w8wszndd80vsrv89m5d2293gl6pry41hv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-unicode-xid" ,rust-unicode-xid-0.1))))
+    (home-page "https://github.com/alexcrichton/proc-macro2")
+    (synopsis
+     "Substitute implementation of the compiler's `proc_macro` API")
+    (description
+     "This package provides a substitute implementation of the compiler's
+@code{proc_macro} API to decouple token-based libraries from the procedural
+macro use case.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-procedural-masquerade-0.1
   (package
     (name "rust-procedural-masquerade")
@@ -13617,6 +15891,31 @@ stack pointer and inspect the properties of the stack.")
      "This package provides a pull parser for CommonMark.")
     (license license:expat)))
 
+(define-public rust-pulldown-cmark-0.2
+  (package
+    (name "rust-pulldown-cmark")
+    (version "0.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pulldown-cmark" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "05gfnqa0wzix5m17jrmgj0yyr9sflqm0knn79ndppsnhcan2zxgf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-getopts" ,rust-getopts-0.2)
+        ("rust-bitflags" ,rust-bitflags-1))))
+    (home-page "https://github.com/raphlinus/pulldown-cmark")
+    (synopsis "Pull parser for CommonMark")
+    (description
+     "This package provides a pull parser for CommonMark.")
+    (license license:expat)))
+
 (define-public rust-quantiles-0.7
   (package
     (name "rust-quantiles")
@@ -13916,7 +16215,7 @@ integers, floats, tuples, booleans, lists, strings, options and results.")
 (define-public rust-quote-1.0
   (package
     (name "rust-quote")
-    (version "1.0.2")
+    (version "1.0.3")
     (source
       (origin
         (method url-fetch)
@@ -13924,13 +16223,13 @@ integers, floats, tuples, booleans, lists, strings, options and results.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "1zkc46ryacf2jdkc6krsy2z615xbk1x8kp1830rcxz3irj5qqfh5"))))
+          "0zwd6fp74xfg4jnnnwj4v84lkzif2giwj4ch1hka9g35ghc6rp1b"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1.0))
        #:cargo-development-inputs
-       (("rust-rustversion" ,rust-rustversion-0.1)
+       (("rust-rustversion" ,rust-rustversion-1.0)
         ("rust-trybuild" ,rust-trybuild-1.0))))
     (home-page "https://github.com/dtolnay/quote")
     (synopsis "Quasi-quoting macro quote!(...)")
@@ -13953,6 +16252,25 @@ integers, floats, tuples, booleans, lists, strings, options and results.")
     (arguments
      `(#:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-0.4))))))
 
+(define-public rust-quote-0.5
+  (package
+    (inherit rust-quote-0.6)
+    (name "rust-quote")
+    (version "0.5.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "quote" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1s01fh0jl8qv4xggs85yahw0h507nzrxkjbf7vay3zw8d3kcyjcr"))))
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-proc-macro2" ,rust-proc-macro2-0.3))))))
+
 (define-public rust-quote-0.3
   (package
     (inherit rust-quote-0.6)
@@ -14107,7 +16425,7 @@ useful types and distributions, and some randomness-related algorithms.")
 (define-public rust-rand-chacha-0.2
   (package
     (name "rust-rand-chacha")
-    (version "0.2.1")
+    (version "0.2.2")
     (source
      (origin
        (method url-fetch)
@@ -14116,7 +16434,7 @@ useful types and distributions, and some randomness-related algorithms.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0lv8imzzl4h2glm6sjj8mkvasgi8jym23ya48dakyln7m06sk8h3"))))
+         "00il36fkdbsmpr99p9ksmmp6dn1md7rmnwmz0rr77jbrca2yvj7l"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -14811,6 +17129,29 @@ reference counting.")
 @code{rdrand} and @code{rdseed} instructions")
     (license license:isc)))
 
+(define-public rust-read-color-1.0
+  (package
+    (name "rust-read-color")
+    (version "1.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "read_color" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "1np0pk31ak7hni4hri3m75mbf8py1wdfjshmrj5krbd4p9c8hk4z"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page
+      "https://github.com/pistondevelopers/read_color")
+    (synopsis
+      "A simple library for reading hex colors")
+    (description
+      "This package provides a simple library for reading hex colors")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-recycler-0.1
   (package
     (name "rust-recycler")
@@ -14880,7 +17221,7 @@ system calls.")
 (define-public rust-redox-users-0.3
   (package
     (name "rust-redox-users")
-    (version "0.3.1")
+    (version "0.3.4")
     (source
      (origin
        (method url-fetch)
@@ -14889,15 +17230,14 @@ system calls.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0vdn688q9wg997b1x5abx2gf7406rn1lvd62ypcgh1gj7g5dpkjf"))))
+         "0cbl5w16l3bqm22i4vszclf6hzpljxicghmllw7j13az4s9k1ch9"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-failure" ,rust-failure-0.1)
-        ("rust-rand-os" ,rust-rand-os-0.1)
+       (("rust-getrandom" ,rust-getrandom-0.1)
         ("rust-redox-syscall" ,rust-redox-syscall-0.1)
-        ("rust-rust-argon2" ,rust-rust-argon2-0.5))))
+        ("rust-rust-argon2" ,rust-rust-argon2-0.7))))
     (home-page "https://gitlab.redox-os.org/redox-os/users")
     (synopsis "Access Redox users and groups")
     (description
@@ -15000,7 +17340,7 @@ functionality.")
 (define-public rust-regex-1.3
   (package
     (name "rust-regex")
-    (version "1.3.4")
+    (version "1.3.6")
     (source
      (origin
        (method url-fetch)
@@ -15009,12 +17349,12 @@ functionality.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1a1mh9mgr8jipnxdaykla6xlw4a6kjn2bzkq3cifx8xy4ivzjb1j"))))
+         "1cx4lcgy7vdi2kij2n1dp2whl33d7974g1kxwiklhs192nclcsbz"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-aho-corasick" ,rust-aho-corasick-0.7)
-        ("rust-memchr" ,rust-memchr-2.2)
+        ("rust-memchr" ,rust-memchr-2.3)
         ("rust-regex-syntax" ,rust-regex-syntax-0.6)
         ("rust-thread-local" ,rust-thread-local-1.0))
        #:cargo-development-inputs
@@ -15115,7 +17455,7 @@ uses finite automata and guarantees linear time matching on all inputs.")
 (define-public rust-regex-automata-0.1
   (package
     (name "rust-regex-automata")
-    (version "0.1.7")
+    (version "0.1.9")
     (source
      (origin
        (method url-fetch)
@@ -15124,21 +17464,22 @@ uses finite automata and guarantees linear time matching on all inputs.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "11hzn3rz02vdgvx3ykhrbzkvs5c5sm59fyi3xwljn9qc48br5l1y"))))
+         "1r3aqa9c0s9sfrmd2w0mli16ldjzbar0rzb1x7srfjkasrqys7df"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1.3)
-        ("rust-regex-syntax" ,rust-regex-syntax-0.6)
-        ("rust-utf8-ranges" ,rust-utf8-ranges-1.0))
+       (("rust-fst" ,rust-fst-0.4)
+        ("rust-byteorder" ,rust-byteorder-1.3)
+        ("rust-regex-syntax" ,rust-regex-syntax-0.6))
        #:cargo-development-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1)
+       (("rust-bstr" ,rust-bstr-0.2)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-regex" ,rust-regex-1.1)
         ("rust-serde" ,rust-serde-1.0)
         ("rust-serde-bytes" ,rust-serde-bytes-0.11)
         ("rust-serde-derive" ,rust-serde-derive-1.0)
-        ("rust-toml" ,rust-toml-0.5))))
+        ("rust-toml" ,rust-toml-0.5)))) ; 0.4
     (home-page "https://github.com/BurntSushi/regex-automata")
     (synopsis
      "Automata construction and matching using regular expressions")
@@ -15149,7 +17490,7 @@ uses finite automata and guarantees linear time matching on all inputs.")
 (define-public rust-regex-syntax-0.6
   (package
     (name "rust-regex-syntax")
-    (version "0.6.14")
+    (version "0.6.17")
     (source
       (origin
         (method url-fetch)
@@ -15157,7 +17498,7 @@ uses finite automata and guarantees linear time matching on all inputs.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "01myl8xqpbnird23xnsb92sjmz1cmp69r6m7y3dwbpmsx4zzx3dj"))))
+          "1blmlgzcg7in3kcxqabpfzzrbnamr2i671flbrmlqhfps5bvvrbz"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/rust-lang/regex")
     (synopsis "Regular expression parser")
@@ -15230,6 +17571,30 @@ uses finite automata and guarantees linear time matching on all inputs.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-reopen-0.3
+  (package
+    (name "rust-reopen")
+    (version "0.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "reopen" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "12b3mfxkwb8akdfa701nzvqr6lsc6n84vrq088gmjy8lxlmr4an6"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-signal-hook" ,rust-signal-hook-0.1)
+         ("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/vorner/reopen")
+    (synopsis "File reopening utility")
+    (description "File reopening utility.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-resolv-conf-0.6
   (package
     (name "rust-resolv-conf")
@@ -15284,6 +17649,35 @@ uses finite automata and guarantees linear time matching on all inputs.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-rust-argon2-0.7
+  (package
+    (name "rust-rust-argon2")
+    (version "0.7.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "rust-argon2" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "05xh5wfxgzq3b6jys8r34f3hmqqfs8ylvf934n9z87wfv95szj1b"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-constant-time-eq" ,rust-constant-time-eq-0.1)
+        ("rust-base64" ,rust-base64-0.11)
+        ("rust-blake2b-simd" ,rust-blake2b-simd-0.5)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7))))
+    (home-page "https://github.com/sru-systems/rust-argon2")
+    (synopsis
+     "Rust implementation of the Argon2 password hashing function")
+    (description
+     "This package provides a Rust implementation of the Argon2 password
+hashing function.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-rust-argon2-0.5
   (package
     (name "rust-rust-argon2")
@@ -15312,6 +17706,112 @@ uses finite automata and guarantees linear time matching on all inputs.")
 password hashing function.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-rust-hawktracer-0.7
+  (package
+    (name "rust-rust-hawktracer")
+    (version "0.7.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "rust_hawktracer" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1h9an3b73pmhhpzc2kk93nh93lplkvsffysj0rp6rxi7p4lhlj73"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-rust-hawktracer-normal-macro"
+         ,rust-rust-hawktracer-normal-macro-0.4)
+        ("rust-rust-hawktracer-proc-macro"
+         ,rust-rust-hawktracer-proc-macro-0.4))))
+    (home-page "https://github.com/AlexEne/rust_hawktracer")
+    (synopsis "Rust bindings for hawktracer profiling library")
+    (description
+     "Rust bindings for hawktracer profiling library.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-rust-hawktracer-proc-macro-0.4
+  (package
+    (name "rust-rust-hawktracer-proc-macro")
+    (version "0.4.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "rust_hawktracer_proc_macro" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1qfksscfv8rbbzv2zb0i9sbbqmig0dr0vrma3c1kzsfmpsynlqnb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-rust-hawktracer-sys" ,rust-rust-hawktracer-sys-0.4))))
+    (home-page "https://github.com/AlexEne/rust_hawktracer_proc_macro")
+    (synopsis
+     "Helper crate for hawktracer profiling library")
+    (description
+     "This package is a helper crate for hawktracer profiling library.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-rust-hawktracer-normal-macro-0.4
+  (package
+    (name "rust-rust-hawktracer-normal-macro")
+    (version "0.4.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri
+               "rust_hawktracer_normal_macro"
+               version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1sfjmipdbb5s498c150czr6wihjlkwwgla2jyg3cs7cyjich0mwa"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-rust-hawktracer-sys" ,rust-rust-hawktracer-sys-0.4))))
+    (home-page "https://github.com/AlexEne/rust_hawktracer_normal_macro")
+    (synopsis "Helper crate for hawktracer profiling library")
+    (description
+     "This package provides a helper crate for hawktracer profiling library.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-rust-hawktracer-sys-0.4
+  (package
+    (name "rust-rust-hawktracer-sys")
+    (version "0.4.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "rust_hawktracer_sys" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "15acrj881y2g7cwsgf1nr22cixrknp8m4x08dkx1an6zf4q8bk37"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cmake" ,rust-cmake-0.1)
+        ("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-bindgen" ,rust-bindgen-0.37)
+        ("rust-itertools" ,rust-itertools-0.8))))
+    (home-page "https://github.com/AlexEne/rust_hawktracer_sys")
+    (synopsis
+     "Sys crate for the rust_hawktracer library")
+    (description
+     "This package provides a sys crate for the rust_hawktracer library.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-rustc-demangle-0.1
   (package
     (name "rust-rustc-demangle")
@@ -15337,6 +17837,29 @@ password hashing function.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-rustc-hash-1.1
+  (package
+    (name "rust-rustc-hash")
+    (version "1.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "rustc-hash" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "1qkc5khrmv5pqi5l5ca9p5nl5hs742cagrndhbrlk3dhlrx3zm08"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page
+      "https://github.com/rust-lang-nursery/rustc-hash")
+    (synopsis
+      "speed, non-cryptographic hash used in rustc")
+    (description
+      "speed, non-cryptographic hash used in rustc")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-rustc-hash-1.0
   (package
     (name "rust-rustc-hash")
@@ -15728,7 +18251,7 @@ using a fork-like interface.")
 (define-public rust-ryu-1.0
   (package
     (name "rust-ryu")
-    (version "1.0.2")
+    (version "1.0.3")
     (source
       (origin
         (method url-fetch)
@@ -15736,14 +18259,15 @@ using a fork-like interface.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "1j0h74f1xqf9hjkhanp8i20mqc1aw35kr1iq9i79q7713mn51a5z"))))
+          "0xlx9ybzncrb7d6r9533g8ydlg6mr252pfzl4g9cqaqkpvk24mjk"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-no-panic" ,rust-no-panic-0.1))
        #:cargo-development-inputs
        (("rust-num-cpus" ,rust-num-cpus-1.11)
-        ("rust-rand" ,rust-rand-0.5))))
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-rand-xorshift" ,rust-rand-xorshift-0.2))))
     (home-page "https://github.com/dtolnay/ryu")
     (synopsis "Fast floating point to string conversion")
     (description
@@ -15820,6 +18344,30 @@ paths point to the same file.")
        #:cargo-development-inputs
        (("rust-rand" ,rust-rand-0.3))))))
 
+(define-public rust-scan-fmt-0.2
+  (package
+    (name "rust-scan-fmt")
+    (version "0.2.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "scan_fmt" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1gmaa07z8bkkdv5xhq2lrgml6ri7fqyyrjpiks3phmpmq3p8d0i4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-regex" ,rust-regex-1.3))))
+    (home-page "https://github.com/wlentz/scan_fmt")
+    (synopsis "Simple scanf()-like input for Rust")
+    (description
+     "This package provides a simple scanf()-like input for Rust")
+    (license license:expat)))
+
 (define-public rust-schannel-0.1
   (package
     (name "rust-schannel")
@@ -15949,6 +18497,31 @@ with one of the implemented strategies.")
          (base32
           "09sy9wbqp409pkwmqni40qmwa99ldqpl48pp95m1xw8sc19qy9cl"))))))
 
+(define-public rust-scroll-0.10
+  (package
+    (name "rust-scroll")
+    (version "0.10.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "scroll" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1cbcns8538sqmfnmdbphqy0fd4j8z75z802pvmz3zlwmnln37cmb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-scroll-derive" ,rust-scroll-derive-0.10))))
+    (home-page "https://github.com/m4b/scroll")
+    (synopsis "Endian-aware Read/Write traits for byte buffers")
+    (description
+     "This package provides a suite of powerful, extensible, generic,
+endian-aware Read/Write traits for byte buffers.")
+    (license license:expat)))
+
 (define-public rust-scroll-0.9
   (package
     (name "rust-scroll")
@@ -15978,6 +18551,33 @@ with one of the implemented strategies.")
 endian-aware Read/Write traits for byte buffers.")
     (license license:expat)))
 
+(define-public rust-scroll-derive-0.10
+  (package
+    (name "rust-scroll-derive")
+    (version "0.10.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "scroll_derive" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0a7f0xybi27p1njs4bqmxh9zyb2dqal4dbvgnhjjix4zkgm4wn7q"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-syn" ,rust-syn-1.0)
+        ("rust-quote" ,rust-quote-1.0))))
+    (home-page "https://github.com/m4b/scroll")
+    (synopsis "Pread and Pwrite traits from the scroll crate")
+    (description
+     "This package provides a macros 1.1 derive implementation for Pread and
+Pwrite traits from the scroll crate.")
+    (license license:expat)))
+
 (define-public rust-scroll-derive-0.9
   (package
     (name "rust-scroll-derive")
@@ -16182,7 +18782,7 @@ proven statistical guarantees.")
 (define-public rust-serde-1.0
   (package
     (name "rust-serde")
-    (version "1.0.104")
+    (version "1.0.105")
     (source
       (origin
         (method url-fetch)
@@ -16190,7 +18790,7 @@ proven statistical guarantees.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "0ja4mgw4p42syjk7jkzwhj2yg6llfrfm7vn8rvy7v3c1bzr1aha1"))))
+          "1zrj157dxvmymp5ii60anap2qqks4pkr3fwsp71wi3sv4nzzn1z7"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -16425,7 +19025,7 @@ for the serde framework.")
 (define-public rust-serde-derive-1.0
   (package
     (name "rust-serde-derive")
-    (version "1.0.104")
+    (version "1.0.105")
     (source
       (origin
         (method url-fetch)
@@ -16433,7 +19033,7 @@ for the serde framework.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "0r7gjlwfry44b4ylz524ynjp9v3qiwdj4c588lh94aas78q9x3qj"))))
+          "1y5gzwpy8yjv9pwh1js11vr18nfz4gg1g2kmyr6p58hvavy00pdc"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -16480,7 +19080,7 @@ for the serde framework.")
 (define-public rust-serde-json-1.0
   (package
     (name "rust-serde-json")
-    (version "1.0.44")
+    (version "1.0.50")
     (source
       (origin
         (method url-fetch)
@@ -16488,18 +19088,21 @@ for the serde framework.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "1mysl675nqhzzkbcrqy4x63cbbsrrx3gcc7k8ydx1gajrkh7bia8"))))
+          "0rs8rsk59kgkgsrw8hyyjrlhas9k1by2jwxxqcz3c2bq2qna39vq"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-indexmap" ,rust-indexmap-1.0)
+       (("rust-indexmap" ,rust-indexmap-1.3)
         ("rust-itoa" ,rust-itoa-0.4)
         ("rust-ryu" ,rust-ryu-1.0)
         ("rust-serde" ,rust-serde-1.0))
        #:cargo-development-inputs
-       (("rust-serde-bytes" ,rust-serde-bytes-0.11)
+       (;("rust-automod" ,rust-automod-0.1)
+        ("rust-rustversion" ,rust-rustversion-1.0)
+        ("rust-serde-bytes" ,rust-serde-bytes-0.11)
         ("rust-serde-derive" ,rust-serde-derive-1.0)
+        ;("rust-serde-stacker" ,rust-serde-stacker-0.1)
         ("rust-trybuild" ,rust-trybuild-1.0))))
     (home-page "https://github.com/serde-rs/json")
     (synopsis "JSON serialization file format")
@@ -16571,7 +19174,7 @@ for the serde framework.")
 (define-public rust-serde-test-1.0
   (package
     (name "rust-serde-test")
-    (version "1.0.101")
+    (version "1.0.105")
     (source
      (origin
        (method url-fetch)
@@ -16580,7 +19183,7 @@ for the serde framework.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0070ycbh47yhxb5vxwa15vi2wpdkw3v1m14v4mjryz1568fqkbsa"))))
+         "1vnp0wld20z1wjr8qp2hxcy6yh2zhicg1mfb0qrzxgwq2a4n6raa"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -16876,6 +19479,32 @@ for the serde framework.")
      "Assembly implementation of SHA-1 compression function.")
     (license license:expat)))
 
+(define-public rust-shader-version-0.6
+  (package
+    (name "rust-shader-version")
+    (version "0.6.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "shader_version" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1yk651xc9irl3pl0rlplypzyzy44d0j03ji0j7hjjdjknwzpi3j7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-piston-graphics-api-version"
+         ,rust-piston-graphics-api-version-0.2))))
+    (home-page "https://github.com/pistondevelopers/shader_version")
+    (synopsis
+     "Helper library for detecting and picking compatible shaders")
+    (description "This package provides a helper library for detecting and
+picking compatible shaders.")
+    (license license:expat)))
+
 (define-public rust-shared-child-0.3
   (package
     (name "rust-shared-child")
@@ -17097,6 +19726,54 @@ CPUs, as well as raw interfaces to platform-specific instructions.
        #:cargo-development-inputs
        (("rust-cfg-if" ,rust-cfg-if-0.1))))))
 
+(define-public rust-simd-helpers-0.1
+  (package
+    (name "rust-simd-helpers")
+    (version "0.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "simd_helpers" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "19idqicn9k4vhd04ifh2ff41wvna79zphdf2c81rlmpc7f3hz2cm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-quote" ,rust-quote-1.0))))
+    (home-page "https://github.com/lu-zero/simd_helpers")
+    (synopsis "Helpers to write more compact simd code")
+    (description
+     "This package provides helpers to write more compact simd code.")
+    (license license:expat)))
+
+(define-public rust-siphasher-0.3
+  (package
+    (name "rust-siphasher")
+    (version "0.3.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "siphasher" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "08xvk3yi4vawppm1f81s4zrkksf95psz8gczh36y808candgi24f"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-serde" ,rust-serde-1.0))))
+    (home-page "https://docs.rs/siphasher")
+    (synopsis "SipHash-2-4, SipHash-1-3 and 128-bit variants in pure Rust")
+    (description "This package provides SipHash-2-4, SipHash-1-3 and 128-bit
+variants in pure Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-siphasher-0.2
   (package
     (name "rust-siphasher")
@@ -17117,6 +19794,37 @@ CPUs, as well as raw interfaces to platform-specific instructions.
      "SipHash functions from rust-core < 1.13.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-skeptic-0.13
+  (package
+    (name "rust-skeptic")
+    (version "0.13.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "skeptic" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0rai61hbs65nbvbhqlk1nap5hlav5qx3zmjjjzh9rhgxagc8xyyn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-error-chain" ,rust-error-chain-0.12)
+        ("rust-pulldown-cmark" ,rust-pulldown-cmark-0.2)
+        ("rust-glob" ,rust-glob-0.2)
+        ("rust-tempdir" ,rust-tempdir-0.3)
+        ("rust-bytecount" ,rust-bytecount-0.4)
+        ("rust-cargo-metadata" ,rust-cargo-metadata-0.6)
+        ("rust-serde-json" ,rust-serde-json-1.0)
+        ("rust-walkdir" ,rust-walkdir-2.3))))
+    (home-page "https://github.com/budziq/rust-skeptic")
+    (synopsis "Test your Rust markdown documentation via Cargo")
+    (description
+     "Test your Rust markdown documentation via Cargo.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-slab-0.4
   (package
     (name "rust-slab")
@@ -17166,6 +19874,33 @@ data type.")
      "Rust FFI bindings to the SLEEF Vectorized Math Library.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-slog-2.5
+  (package
+    (name "rust-slog")
+    (version "2.5.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "slog" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "16bv6zrdn1sm315vbnia02g31xvsmbjyz5gv3z0vrgxdli0cdj8w"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-erased-serde" ,rust-erased-serde-0.3))))
+    (home-page "https://github.com/slog-rs/slog")
+    (synopsis "Structured, extensible, composable logging for Rust")
+    (description
+     "This package provides structured, extensible, composable logging for Rust.")
+    (license
+      (list license:mpl2.0
+            license:expat
+            license:asl2.0))))
+
 (define-public rust-slog-2.4
   (package
     (name "rust-slog")
@@ -17936,6 +20671,32 @@ and Jaro-Winkler.")
         (base32
          "0z3zzvmilfldp4xw42qbkjf901dcnbk58igrzsvivydjzd24ry37"))))))
 
+(define-public rust-structopt-0.3
+  (package
+    (name "rust-structopt")
+    (version "0.3.12")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "structopt" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "178m7wxnjyy9a8a961z74nazjsg79rfv3gv9g3bykfrrjmqs5yn8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-structopt-derive" ,rust-structopt-derive-0.4)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-clap" ,rust-clap-2))))
+    (home-page "https://github.com/TeXitoi/structopt")
+    (synopsis "Parse command line argument by defining a struct")
+    (description
+     "Parse command line argument by defining a struct.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-structopt-0.2
   (package
     (name "rust-structopt")
@@ -17960,6 +20721,34 @@ and Jaro-Winkler.")
      "Parse command line arguments by defining a struct.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-structopt-derive-0.4
+  (package
+    (name "rust-structopt-derive")
+    (version "0.4.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "structopt-derive" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0c04bbzc5bmr2ns6qy35yz55nn3xvlq4dpwxdynnljb9ikhvi21z"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-heck" ,rust-heck-0.3)
+        ("rust-proc-macro-error" ,rust-proc-macro-error-0.4)
+        ("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-syn" ,rust-syn-1.0)
+        ("rust-quote" ,rust-quote-1.0))))
+    (home-page "https://github.com/TeXitoi/structopt")
+    (synopsis "Parse command line argument by defining a struct, derive crate")
+    (description
+     "Parse command line argument by defining a struct, derive crate.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-structopt-derive-0.2
   (package
     (name "rust-structopt-derive")
@@ -18008,10 +20797,61 @@ and Jaro-Winkler.")
 cryptographic implementations.")
     (license license:bsd-3)))
 
+(define-public rust-sval-0.4
+  (package
+    (name "rust-sval")
+    (version "0.4.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "sval" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1aljggx64481q4wp3wx9hxsfh2bs7d64nqsrwbb2zxcpmdnbn6yk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-sval-derive" ,rust-sval-derive-0.4)
+        ("rust-smallvec" ,rust-smallvec-0.6)
+        ("rust-serde" ,rust-serde-1.0))))
+    (home-page "https://github.com/sval-rs/sval")
+    (synopsis "No-std, object-safe serialization framework")
+    (description
+     "This package provides a no-std, object-safe serialization framework.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-sval-derive-0.4
+  (package
+    (name "rust-sval-derive")
+    (version "0.4.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "sval_derive" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "07s7jqsdczsg0wnydfnxyrsj8zyrjmiwl4is1dfgn8dfvyi8n2bj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-syn" ,rust-syn-1.0)
+        ("rust-quote" ,rust-quote-1.0))))
+    (home-page "https://github.com/sval-rs/sval")
+    (synopsis "Custom derive for sval")
+    (description "Custom derive for sval.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-syn-1.0
   (package
     (name "rust-syn")
-    (version "1.0.5")
+    (version "1.0.17")
     (source
       (origin
         (method url-fetch)
@@ -18019,12 +20859,28 @@ cryptographic implementations.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "1gw03w7lzrlqmp2vislcybikgl5wkhrqi6sy70w93xss2abhx1b6"))))
+          "00xvf772ys4fj9fr8kplmsqb9if215dsipi3nv54aw9q7xkfpw0d"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-unicode-xid" ,rust-unicode-xid-0.2)
+        ("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-quote" ,rust-quote-1.0))
+       #:cargo-development-inputs
+       (("rust-anyhow" ,rust-anyhow-1.0)
+        ("rust-flate2" ,rust-flate2-1.0)
+        ;("rust-insta" ,rust-insta-0.12)
+        ("rust-rayon" ,rust-rayon-1.3)
+        ("rust-ref-cast" ,rust-ref-cast-1.0)
+        ("rust-regex" ,rust-regex-1.3)
+        ;("rust-reqwest" ,rust-reqwest-0.10)
+        ("rust-tar" ,rust-tar-0.4)
+        ("rust-termcolor" ,rust-termcolor-1.0)
+        ("rust-walkdir" ,rust-walkdir-2.3))))
     (home-page "https://github.com/dtolnay/syn")
     (synopsis "Parser for Rust source code")
     (description "Parser for Rust source code")
-    (properties '((hidden? . #t)))
     (license (list license:expat license:asl2.0))))
 
 (define-public rust-syn-0.15
@@ -18088,6 +20944,33 @@ cryptographic implementations.")
         ("rust-tempdir" ,rust-tempdir-0.3)
         ("rust-walkdir" ,rust-walkdir-1.0))))))
 
+(define-public rust-syn-mid-0.5
+  (package
+    (name "rust-syn-mid")
+    (version "0.5.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "syn-mid" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "12ikg5jfklixq0wsgfl7sdzjqlxgq50ygklxy4f972hjdjgm7qvv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-syn" ,rust-syn-1.0)
+        ("rust-quote" ,rust-quote-1.0))))
+    (home-page "https://github.com/taiki-e/syn-mid")
+    (synopsis
+     "Provide the features between \"full\" and \"derive\" of syn.")
+    (description
+     "This package provides the features between \"full\" and \"derive\" of syn.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-synom-0.11
   (package
     (name "rust-synom")
@@ -18121,6 +21004,33 @@ cryptographic implementations.")
      "Stripped-down Nom parser used by Syn.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-synstructure-0.12
+  (package
+    (name "rust-synstructure")
+    (version "0.12.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "synstructure" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0igmc5fzpk6fg7kgff914j05lbpc6ai2wmji312v2h8vvjhnwrb7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-unicode-xid" ,rust-unicode-xid-0.2)
+        ("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-syn" ,rust-syn-1.0)
+        ("rust-quote" ,rust-quote-1.0))))
+    (home-page "https://github.com/mystor/synstructure")
+    (synopsis "Helper methods and macros for custom derives")
+    (description
+     "This package provides helper methods and macros for custom derives.")
+    (license license:expat)))
+
 (define-public rust-synstructure-0.10
   (package
     (name "rust-synstructure")
@@ -18168,6 +21078,44 @@ cryptographic implementations.")
      "This package provides helper test traits for synstructure doctests.")
     (license license:expat)))
 
+(define-public rust-syntect-3.3
+  (package
+    (name "rust-syntect")
+    (version "3.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "syntect" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1f6qn1yy15b0hq9h6q1rikqnm3lh56ic6bq3ywsmdsjy8ni9splm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-plist" ,rust-plist-0.4)
+        ("rust-yaml-rust" ,rust-yaml-rust-0.4)
+        ("rust-regex-syntax" ,rust-regex-syntax-0.6)
+        ("rust-serde" ,rust-serde-1.0)
+        ("rust-serde-derive" ,rust-serde-derive-1.0)
+        ("rust-flate2" ,rust-flate2-1.0)
+        ("rust-serde-json" ,rust-serde-json-1.0)
+        ("rust-fnv" ,rust-fnv-1.0)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-lazycell" ,rust-lazycell-1.2)
+        ("rust-bincode" ,rust-bincode-1.2)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-walkdir" ,rust-walkdir-2.3)
+        ("rust-onig" ,rust-onig-5.0))))
+    (home-page "https://github.com/trishume/syntect")
+    (synopsis "Library for syntax highlighting and code intelligence")
+    (description
+     "This package provides a library for syntax highlighting and code
+intelligence using Sublime Text's grammars.")
+    (license license:expat)))
+
 (define-public rust-syntex-0.58
  (package
    (name "rust-syntex")
@@ -18320,6 +21268,58 @@ syntax extension expansion.")
         ("rust-errno" ,rust-errno-0.2)
         ("rust-libc" ,rust-libc-0.2))))))
 
+(define-public rust-syslog-4.0
+  (package
+    (name "rust-syslog")
+    (version "4.0.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "syslog" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "09ykcbvwx8icvf303mqyz76ji8j6fgyyx97zpr23s788ni112r50"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-time" ,rust-time-0.1)
+        ("rust-error-chain" ,rust-error-chain-0.11)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4))))
+    (home-page "https://github.com/Geal/rust-syslog")
+    (synopsis "Send log messages to syslog")
+    (description "Send log messages to syslog.")
+    (license license:expat)))
+
+(define-public rust-syslog-3.3
+  (package
+    (name "rust-syslog")
+    (version "3.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "syslog" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0hpdnk2zm6xawpz6fv6qbn0ncfm5p0wm5c6gq7yhaz2gvsnb1jdv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-time" ,rust-time-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.3)
+        ("rust-unix-socket" ,rust-unix-socket-0.5))))
+    (home-page "https://github.com/Geal/rust-syslog")
+    (synopsis "Send log messages to syslog")
+    (description "Send log messages to syslog.")
+    (license license:expat)))
+
 (define-public rust-takeable-option-0.4
   (package
     (name "rust-takeable-option")
@@ -18399,6 +21399,29 @@ memory all at once.")
 @code{build.rs} scripts.")
     (license (list license:isc license:asl2.0))))
 
+(define-public rust-target-lexicon-0.10
+  (package
+    (name "rust-target-lexicon")
+    (version "0.10.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "target-lexicon" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "17diw9c3d1vb5rmwwk2ghsyhfs0gj5jm78hrwxxhmd67vhw743mb"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page
+      "https://github.com/CraneStation/target-lexicon")
+    (synopsis
+      "Targeting utilities for compilers and related tools")
+    (description
+      "Targeting utilities for compilers and related tools")
+    (license license:asl2.0)))
+
 (define-public rust-tempdir-0.3
   (package
     (name "rust-tempdir")
@@ -19083,7 +22106,7 @@ in Rust.")
 (define-public rust-tinytemplate-1.0
   (package
     (name "rust-tinytemplate")
-    (version "1.0.2")
+    (version "1.0.3")
     (source
      (origin
        (method url-fetch)
@@ -19092,7 +22115,7 @@ in Rust.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "084w41m75i95sdid1wwlnav80jsl1ggyryl4nawxvb6amigvfx25"))))
+         "06ipxjwl1w6synvql8b50qxbqv0w04agvmmfqcdynr9ygmkcd8sp"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -19100,7 +22123,7 @@ in Rust.")
        (("rust-serde" ,rust-serde-1.0)
         ("rust-serde-json" ,rust-serde-json-1.0))
        #:cargo-development-inputs
-       (("rust-criterion" ,rust-criterion-0.2)
+       (("rust-criterion" ,rust-criterion-0.3)
         ("rust-serde-derive" ,rust-serde-derive-1.0))))
     (home-page "https://github.com/bheisler/TinyTemplate")
     (synopsis "Simple, lightweight template engine")
@@ -19328,7 +22351,7 @@ the current thread.")
 (define-public rust-tokio-io-0.1
   (package
     (name "rust-tokio-io")
-    (version "0.1.12")
+    (version "0.1.13")
     (source
      (origin
        (method url-fetch)
@@ -19337,7 +22360,7 @@ the current thread.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "09jrz1hh4h1vj45qy09y7m7m8jsy1hl6g32clnky25mdim3dp42h"))))
+         "0x06zyzinans1pn90g6i150lgixijdf1cg8y2gipjd09ms58dz2p"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -19768,6 +22791,34 @@ serializing Rust structures.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-toml-0.2
+  (package
+    (name "rust-toml")
+    (version "0.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "toml" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1d1cz43bxrx4fd6j2p6myckf81f72bp47akg36y3flxjkhj60svk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
+        ("rust-serde" ,rust-serde-0.8))))
+    (home-page "https://github.com/alexcrichton/toml-rs")
+    (synopsis "Rust encoder and decoder of TOML-formatted files and streams")
+    (description
+     "This package provides a native Rust encoder and decoder of TOML-formatted
+files and streams.  Provides implementations of the standard
+Serialize/Deserialize traits for TOML data to facilitate deserializing and
+serializing Rust str")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-tracing-core-0.1
   (package
     (name "rust-tracing-core")
@@ -20053,6 +23104,30 @@ with the Unicode character database.")
      "Unchecked indexing wrapper using regular index syntax.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-unicase-2.6
+  (package
+    (name "rust-unicase")
+    (version "2.6.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "unicase" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1xmlbink4ycgxrkjspp0mf7pghcx4m7vxq7fpfm04ikr2zk7pwsh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-version-check" ,rust-version-check-0.9))))
+    (home-page "https://github.com/seanmonstar/unicase")
+    (synopsis "Case-insensitive wrapper around strings")
+    (description
+     "This package provides a case-insensitive wrapper around strings.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-unicase-2.4
   (package
     (name "rust-unicase")
@@ -20283,6 +23358,30 @@ whitespace from a string.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-unix-socket-0.5
+  (package
+    (name "rust-unix-socket")
+    (version "0.5.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "unix_socket" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0r0mxf3mmqvimnx4mpks1f6c4haj6jcxc0k9bs7w61f42w2718ka"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/rust-lang-nursery/unix-socket")
+    (synopsis "Unix domain socket bindings")
+    (description "This package provides unix domain socket bindings.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-unreachable-1.0
   (package
     (name "rust-unreachable")
@@ -20508,7 +23607,7 @@ Unix users and groups.")
 (define-public rust-utf8-ranges-1.0
   (package
     (name "rust-utf8-ranges")
-    (version "1.0.3")
+    (version "1.0.4")
     (source
      (origin
        (method url-fetch)
@@ -20517,7 +23616,7 @@ Unix users and groups.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1ppzjsxmv1p1xfid8wwn07ciikk84k30frl28bwsny6za1vall4x"))))
+         "1fpc32znar5v02nwsw7icl41jzzzzhy0si6ngqjylzrbxxpi3bml"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -20568,6 +23667,35 @@ Unix users and groups.")
     (description "This package provides a table-driven UTF-8 parser.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-uuid-0.8
+  (package
+    (name "rust-uuid")
+    (version "0.8.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "uuid" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "049w16qwk3d3b9cmpgvd7fvcnwgs75l8rlsagh06w7ga9dm2zplz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-winapi" ,rust-winapi-0.3)
+        ("rust-sha1" ,rust-sha1-0.6)
+        ("rust-md5" ,rust-md5-0.6)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-serde" ,rust-serde-1.0)
+        ("rust-slog" ,rust-slog-2.5))))
+    (home-page "https://github.com/uuid-rs/uuid")
+    (synopsis "Library to generate and parse UUIDs")
+    (description
+     "This package provides a library to generate and parse UUIDs.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-uuid-0.7
   (package
     (name "rust-uuid")
@@ -20674,6 +23802,57 @@ Unix users and groups.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-vecmath-1.0
+  (package
+    (name "rust-vecmath")
+    (version "1.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "vecmath" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0shmj76rj7rqv377vy365xwr5rx23kxqgkqxxrymdjjvv3hf2slm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-piston-float" ,rust-piston-float-1.0))))
+    (home-page "https://github.com/pistondevelopers/vecmath")
+    (synopsis "Library for vector math designed for reexporting")
+    (description
+     "This package provides a simple and type agnostic library for vector math
+designed for reexporting.")
+    (license license:expat)))
+
+(define-public rust-vergen-3.1
+  (package
+    (name "rust-vergen")
+    (version "3.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "vergen" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1jrr0wihm9si98qz8ghjfnalfvmfv8rqvkgj2npqa7yzjs4hvrac"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-chrono" ,rust-chrono-0.4)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-bitflags" ,rust-bitflags-1))))
+    (home-page "http://github.com/rustyhorde/vergen")
+    (synopsis "Generate version related functions")
+    (description
+     "Generate version related functions.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-version-check-0.9
   (package
     (name "rust-version-check")
@@ -20860,6 +24039,31 @@ updated when the crate version changes.")
 specified across Unix and Windows platforms.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-walkdir-2.3
+  (package
+    (name "rust-walkdir")
+    (version "2.3.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "walkdir" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0z9g39f49cycdm9vzjf8hnfh3f1csxgd65kmlphj8r2vffy84wbp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-winapi-util" ,rust-winapi-util-0.1)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-same-file" ,rust-same-file-1.0))))
+    (home-page "https://github.com/BurntSushi/walkdir")
+    (synopsis "Recursively walk a directory")
+    (description "Recursively walk a directory.")
+    (license (list license:unlicense license:expat))))
+
 (define-public rust-walkdir-2.2
   (package
     (name "rust-walkdir")
@@ -20911,6 +24115,33 @@ specified across Unix and Windows platforms.")
         ("rust-rand" ,rust-rand-0.3)
         ("rust-rustc-serialize" ,rust-rustc-serialize-0.3))))))
 
+(define-public rust-wasi-0.9
+  (package
+    (name "rust-wasi")
+    (version "0.9.0+wasi-snapshot-preview1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "wasi" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "06g5v3vrdapfzvfq662cij7v8a1flwr2my45nnncdv2galrdzkfc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1.0)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0))))
+    (home-page "https://github.com/bytecodealliance/wasi")
+    (synopsis "Experimental WASI API bindings for Rust")
+    (description
+     "This package provides an experimental WASI API bindings for Rust.")
+    (license (list license:asl2.0
+                   license:expat))))
+
 (define-public rust-wasi-0.5
   (package
     (name "rust-wasi")
@@ -20934,7 +24165,7 @@ in Rust.")
 (define-public rust-wasm-bindgen-0.2
   (package
     (name "rust-wasm-bindgen")
-    (version "0.2.58")
+    (version "0.2.60")
     (source
      (origin
        (method url-fetch)
@@ -20943,7 +24174,7 @@ in Rust.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0v31s91andxcj73w63g3fkbw3ld6cfsaa4135qcjna22vypyj1aj"))))
+         "0zx42zryw03w3maz8p65gr5bhhybr2sdzgcck5p3gy47abh7ri9c"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -20969,7 +24200,7 @@ in Rust.")
 (define-public rust-wasm-bindgen-backend-0.2
   (package
     (name "rust-wasm-bindgen-backend")
-    (version "0.2.58")
+    (version "0.2.60")
     (source
      (origin
        (method url-fetch)
@@ -20978,7 +24209,7 @@ in Rust.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0icskn0qlj30np6x6nbyl1i9dndckx0pczaq69dm42r92rcbkk8i"))))
+         "1k9p8a7ng6nqan0m9555wj936lm2s1qz0fnafclwlv61yrxx6ryr"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -21056,7 +24287,7 @@ in Rust.")
 (define-public rust-wasm-bindgen-macro-0.2
   (package
     (name "rust-wasm-bindgen-macro")
-    (version "0.2.58")
+    (version "0.2.60")
     (source
      (origin
        (method url-fetch)
@@ -21065,7 +24296,7 @@ in Rust.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1hwxw0nhi2n4izhjn2fvnrrn59xqjxs3ybkgzdv1b4p65ivr8h2p"))))
+         "1973xr0vr2aj85fkp3smk61z5ki7c4fhxlicfjxq3a0y7sv53lcb"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f      ; 'Async blocks are unstable'
@@ -21087,7 +24318,7 @@ dependency.")
 (define-public rust-wasm-bindgen-macro-support-0.2
   (package
     (name "rust-wasm-bindgen-macro-support")
-    (version "0.2.58")
+    (version "0.2.60")
     (source
      (origin
        (method url-fetch)
@@ -21096,7 +24327,7 @@ dependency.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0s3n7v741i4wkzib41m126li40qlhqyirnxpigkypsi59wsk2l78"))))
+         "0ca9bb9hnyzcmjww83x8asb76drf55ijhqv8yrl7igpixqv5p2nn"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -21115,7 +24346,7 @@ attribute that is not in the shared backend crate.")
 (define-public rust-wasm-bindgen-shared-0.2
   (package
     (name "rust-wasm-bindgen-shared")
-    (version "0.2.58")
+    (version "0.2.60")
     (source
       (origin
         (method url-fetch)
@@ -21123,9 +24354,8 @@ attribute that is not in the shared backend crate.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "00cnbabf4k9bahb217vkilmjwqwzpwp112vlvgfw1x19r4gydrzm"))))
+          "0ffn4152w8n629f29lwjgj3adiyixvdbff3mld49gisssbknzxys"))))
     (build-system cargo-build-system)
-    ;(arguments '(#:skip-build? #t))
     (home-page "https://rustwasm.github.io/wasm-bindgen/")
     (synopsis "Shared support between wasm-bindgen and wasm-bindgen cli")
     (description "This package provides shared support between
@@ -21617,7 +24847,7 @@ protocol extensions.  Look at the crate wayland-client for usable bindings.")
 (define-public rust-web-sys-0.3
   (package
     (name "rust-web-sys")
-    (version "0.3.35")
+    (version "0.3.37")
     (source
      (origin
        (method url-fetch)
@@ -21626,16 +24856,12 @@ protocol extensions.  Look at the crate wayland-client for usable bindings.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0fzmxcyahy3ghl8lkjkchj9krmnr56shvbqgr7db3hm8dappryda"))))
+         "1jy4q5jawzg3dxzhfwa0g3fsz7h4j0ra6y232ikc6mlcimj52vrd"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-js-sys" ,rust-js-sys-0.3)
-        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
-        ("rust-anyhow" ,rust-anyhow-1.0)
-        ("rust-env-logger" ,rust-env-logger-0.7)
-        ("rust-sourcefile" ,rust-sourcefile-0.1)
-        ("rust-wasm-bindgen-webidl" ,rust-wasm-bindgen-webidl-0.2))
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2))
        #:cargo-development-inputs
        (("rust-wasm-bindgen-futures" ,rust-wasm-bindgen-futures-0.4)
         ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))
@@ -21668,6 +24894,32 @@ protocol extensions.  Look at the crate wayland-client for usable bindings.")
      "This package provides a WebIDL Parser.")
     (license license:expat)))
 
+(define-public rust-which-3.1
+  (package
+    (name "rust-which")
+    (version "3.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "which" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "094pw9pi48szshn9ln69z2kg7syq1jp80h5ps1qncbsaw4d0f4fh"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-failure" ,rust-failure-0.1)
+         ("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/harryfei/which-rs.git")
+    (synopsis "Rust equivalent of Unix command \"which\"")
+    (description
+     "This package provides a Rust equivalent of Unix command \"which\".  Locate
+installed executable in cross platforms.")
+    (license license:expat)))
+
 (define-public rust-which-2.0
   (package
     (name "rust-which")
@@ -21826,7 +25078,7 @@ i686-pc-windows-gnu target.  Please don't use this crate directly, depend on
 (define-public rust-winapi-util-0.1
   (package
     (name "rust-winapi-util")
-    (version "0.1.2")
+    (version "0.1.4")
     (source
       (origin
         (method url-fetch)
@@ -21834,7 +25086,7 @@ i686-pc-windows-gnu target.  Please don't use this crate directly, depend on
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "1j839dc6y8vszvrsb7yk0qvs0w6asnahxzbyans37vnsw6vbls3i"))))
+          "0vj3984cxwnf1ys3fdz6bpl7p0kdsgykpzbhmcmwi759cd8mqlgs"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs (("rust-winapi" ,rust-winapi-0.3))))
@@ -22246,7 +25498,7 @@ to XDG Base Directory specification")
 (define-public rust-xml-rs-0.8
   (package
     (name "rust-xml-rs")
-    (version "0.8.0")
+    (version "0.8.1")
     (source
      (origin
        (method url-fetch)
@@ -22255,14 +25507,37 @@ to XDG Base Directory specification")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1db4v716rbpgjiasaim2s17rmvsfcq1qzwg6nji6mdf5k34i46sl"))))
+         "0c905wsmk995xypxljpxzq6vv660r1pzgyrpsfiz13kw3hf0dzcs"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1))))
     (home-page "https://github.com/netvl/xml-rs")
     (synopsis "XML library in pure Rust")
     (description "An XML library in pure Rust.")
     (license license:expat)))
 
+(define-public rust-y4m-0.5
+  (package
+    (name "rust-y4m")
+    (version "0.5.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "y4m" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "06g8c53qk4cla3xczywx5qlklvzsw54x77vm727mhizlsp5n93ar"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/image-rs/y4m")
+    (synopsis "YUV4MPEG2 (.y4m) Encoder/Decoder.")
+    (description "YUV4MPEG2 (.y4m) Encoder/Decoder.")
+    (license license:expat)))
+
 (define-public rust-yaml-rust-0.4
   (package
     (name "rust-yaml-rust")
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index af51c0fcfc..5d0521a216 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -290,7 +291,7 @@ gitignore rules.")
         ("serde" ,rust-serde-1.0)
         ("serde-json" ,rust-serde-json-1.0)
         ("syn" ,rust-syn-1.0)
-        ("tempfile" ,rust-tempfile-3.0)
+        ("tempfile" ,rust-tempfile-3.1)
         ("toml" ,rust-toml-0.5))))
     (home-page "https://github.com/eqrion/cbindgen/")
     (synopsis "Tool for generating C bindings to Rust code")
@@ -298,6 +299,21 @@ gitignore rules.")
      "This package provides a tool for generating C/C++ bindings to Rust code.")
     (license license:mpl2.0)))
 
+(define-public rust-cbindgen-0.12
+  (package
+    (inherit rust-cbindgen)
+    (name "rust-cbindgen")
+    (version "0.12.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cbindgen" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "13jzbmjz1bmmfr0i80hw6ar484mgabx3hbpb2ynhk0ddqi0yr58m"))))))
+
 (define-public tokei
   (package
     (name "tokei")
@@ -358,3 +374,36 @@ gitignore rules.")
 show number of files, total lines within those files and code, comments, and
 blanks grouped by language.")
     (license (list license:expat license:asl2.0))))
+
+(define-public rust-cargo-c
+  (package
+    (name "rust-cargo-c")
+    (version "0.5.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cargo-c" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1is72jm0r73pqx2g3h1n6lvrcirwd91mmajsmb3jjg4jnayfkp0w"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cbindgen" ,rust-cbindgen-0.12)
+        ("rust-pretty-env-logger" ,rust-pretty-env-logger-0.3)
+        ("rust-structopt" ,rust-structopt-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-toml" ,rust-toml-0.5)
+        ("rust-cargo-metadata" ,rust-cargo-metadata-0.9)
+        ("rust-serde" ,rust-serde-1.0)
+        ("rust-serde-derive" ,rust-serde-derive-1.0)
+        ("rust-regex" ,rust-regex-1.3))))
+    (home-page "https://github.com/lu-zero/cargo-c")
+    (synopsis "Build and install C-compatible libraries")
+    (description
+     "This package produces and installs a correct pkg-config file, a static
+library and a dynamic library, and a C header to be used by any C (and
+C-compatible) software.")
+    (license license:expat)))
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 84b051832a..ce5261c788 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -66,6 +66,7 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix svn-download)
+  #:use-module (guix build-system cargo)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system copy)
   #:use-module (guix build-system gnu)
@@ -90,6 +91,7 @@
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpp)
+  #:use-module (gnu packages crates-io)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages dejagnu)
   #:use-module (gnu packages dns)
@@ -140,6 +142,7 @@
   #:use-module (gnu packages qt)
   #:use-module (gnu packages rdesktop)
   #:use-module (gnu packages ruby)
+  #:use-module (gnu packages rust-apps)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages serialization)
@@ -3949,3 +3952,87 @@ result in several formats:
 @end itemize\n")
     (home-page "https://www.gen2vdr.de/wirbel/w_scan/index2.html")
     (license license:gpl2+)))
+
+(define-public rav1e
+  (package
+    (name "rav1e")
+    (version "0.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "rav1e" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1bsmj8kqzs5pf8dl98rsl6a67cljj1gkj3b5hmd8hn8wdy4ya173"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-simd-helpers" ,rust-simd-helpers-0.1)
+        ("rust-ivf" ,rust-ivf-0.1)
+        ("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-paste" ,rust-paste-0.1)
+        ("rust-signal-hook" ,rust-signal-hook-0.1)
+        ("rust-aom-sys" ,rust-aom-sys-0.1)
+        ("rust-nasm-rs" ,rust-nasm-rs-0.1)
+        ("rust-arbitrary" ,rust-arbitrary-0.2)
+        ("rust-better-panic" ,rust-better-panic-0.2)
+        ("rust-noop-proc-macro"
+         ,rust-noop-proc-macro-0.2)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-rand-chacha" ,rust-rand-chacha-0.2)
+        ("rust-err-derive" ,rust-err-derive-0.2)
+        ("rust-interpolate-name"
+         ,rust-interpolate-name-0.2)
+        ("rust-rustc-version" ,rust-rustc-version-0.2)
+        ("rust-scan-fmt" ,rust-scan-fmt-0.2)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-image" ,rust-image-0.22)
+        ("rust-arg-enum-proc-macro"
+         ,rust-arg-enum-proc-macro-0.3)
+        ("rust-num-derive" ,rust-num-derive-0.3)
+        ("rust-dav1d-sys" ,rust-dav1d-sys-0.3)
+        ("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-y4m" ,rust-y4m-0.5)
+        ("rust-arrayvec" ,rust-arrayvec-0.5)
+        ("rust-toml" ,rust-toml-0.5)
+        ("rust-fern" ,rust-fern-0.5)
+        ("rust-rust-hawktracer"
+         ,rust-rust-hawktracer-0.7)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-itertools" ,rust-itertools-0.8)
+        ("rust-bitstream-io" ,rust-bitstream-io-0.8)
+        ("rust-console" ,rust-console-0.9)
+        ("rust-serde" ,rust-serde-1.0)
+        ("rust-cc" ,rust-cc-1.0)
+        ("rust-rayon" ,rust-rayon-1.3)
+        ("rust-byteorder" ,rust-byteorder-1.3)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-vergen" ,rust-vergen-3.1))
+       #:cargo-development-inputs
+       (("rust-rand-chacha" ,rust-rand-chacha-0.2)
+        ("rust-interpolate-name"
+         ,rust-interpolate-name-0.2)
+        ("rust-criterion" ,rust-criterion-0.3)
+        ("rust-pretty-assertions"
+         ,rust-pretty-assertions-0.6)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-semver" ,rust-semver-0.9))
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'build
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (invoke "cargo" "cinstall" "--release"
+                       (string-append "--prefix=" out))))))))
+    (native-inputs
+     `(("cargo-c" ,rust-cargo-c)))
+    (inputs
+     `(("nasm" ,nasm)))
+    (home-page "https://github.com/xiph/rav1e/")
+    (synopsis "The fastest and safest AV1 encoder")
+    (description
+     "The fastest and safest AV1 encoder.")
+    (license license:bsd-2)))