summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--etc/teams.scm.in1
-rw-r--r--gnu/local.mk2
-rw-r--r--gnu/packages/crates-graphics.scm1068
-rw-r--r--gnu/packages/crates-gtk.scm57
-rw-r--r--gnu/packages/crates-io.scm8830
-rw-r--r--gnu/packages/gdb.scm28
-rw-r--r--gnu/packages/gnome.scm17
-rw-r--r--gnu/packages/gtk.scm6
-rw-r--r--gnu/packages/patches/rust-adblock-ignore-live-tests.patch69
-rw-r--r--gnu/packages/patches/rust-webbrowser-remove-unsupported-os.patch24
-rw-r--r--gnu/packages/python-xyz.scm97
-rw-r--r--gnu/packages/rust-apps.scm190
-rw-r--r--gnu/packages/rust.scm118
-rw-r--r--gnu/packages/sequoia.scm2
-rw-r--r--gnu/packages/syndication.scm8
-rw-r--r--gnu/packages/terminals.scm65
-rw-r--r--gnu/packages/tree-sitter.scm13
-rw-r--r--gnu/packages/video.scm81
-rw-r--r--guix/build/cargo-build-system.scm24
19 files changed, 7622 insertions, 3078 deletions
diff --git a/etc/teams.scm.in b/etc/teams.scm.in
index dec175f630..d21f1ff67b 100644
--- a/etc/teams.scm.in
+++ b/etc/teams.scm.in
@@ -263,6 +263,7 @@ asdf-build-system."
   (team 'rust
         #:name "Rust"
         #:scope (list (make-regexp "^gnu/packages/(crates|rust)(-.+|)\\.scm$")
+                      "gnu/packages/sequoia.scm"
                       "guix/build/cargo-build-system.scm"
                       "guix/build/cargo-utils.scm"
                       "guix/build-system/cargo.scm"
diff --git a/gnu/local.mk b/gnu/local.mk
index 660d2eea2f..77abf61d3c 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1862,7 +1862,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/ruby-mustache-1.1.1-fix-race-condition-tests.patch \
   %D%/packages/patches/rustc-1.54.0-src.patch			\
   %D%/packages/patches/rust-1.64-fix-riscv64-bootstrap.patch	\
-  %D%/packages/patches/rust-adblock-ignore-live-tests.patch		\
   %D%/packages/patches/i3status-rust-enable-unstable-features.patch	\
   %D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch	\
   %D%/packages/patches/rust-ndarray-0.13-remove-blas-src.patch	\
@@ -1870,6 +1869,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/rust-nettle-disable-vendor.patch		 \
   %D%/packages/patches/rust-nettle-sys-disable-vendor.patch	 \
   %D%/packages/patches/rust-openssl-sys-no-vendor.patch	\
+  %D%/packages/patches/rust-webbrowser-remove-unsupported-os.patch	\
   %D%/packages/patches/rust-wl-clipboard-rs-newer-wl.patch      \
   %D%/packages/patches/rw-igraph-0.10.patch			\
   %D%/packages/patches/sbc-fix-build-non-x86.patch		\
diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index 2f072354a0..ba502982ad 100644
--- a/gnu/packages/crates-graphics.scm
+++ b/gnu/packages/crates-graphics.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2020 Valentin Ignatev <valentignatev@gmail.com>
 ;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
-;;; Copyright © 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2020, 2021, 2023 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
 ;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com>
 ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
@@ -36,12 +36,14 @@
   #:use-module (guix packages)
   #:use-module (gnu packages)
   #:use-module (gnu packages assembly)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages crates-io)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages video))
 
 ;;;
@@ -199,7 +201,7 @@ text or blue underlined text, on ANSI terminals.")
 (define-public rust-aom-sys-0.3
   (package
     (name "rust-aom-sys")
-    (version "0.3.0")
+    (version "0.3.2")
     (source
       (origin
         (method url-fetch)
@@ -207,17 +209,16 @@ text or blue underlined text, on ANSI terminals.")
         (file-name
           (string-append name "-" version ".tar.gz"))
         (sha256
-          (base32
-            "0dhikfl7l5nacspajbllbhhysad3vl845cpfplqgm5mf67nmx9w8"))))
+         (base32 "0swg90iwypakh7vq77zwh34238c1r7vd5smj0vza7dv7xa22wh0g"))))
     (build-system cargo-build-system)
     (arguments
       `(#:cargo-inputs
-        (("rust-bindgen" ,rust-bindgen-0.54)
-         ("rust-metadeps" ,rust-metadeps-1))))
+        (("rust-bindgen" ,rust-bindgen-0.61)
+         ("rust-system-deps" ,rust-system-deps-6))))
     (native-inputs
      (list pkg-config))
     (inputs
-     (list libaom clang llvm))
+     (list clang libaom llvm))
     (home-page "https://github.com/rust-av/aom-rs")
     (synopsis "FFI bindings to aom")
     (description "This package provides FFI bindings to aom.")
@@ -248,8 +249,38 @@ the term library to handle the ANSI nonsense and hence it works on Windows,
 Mac, and Unix.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-avif-parse-1
+  (package
+    (name "rust-avif-parse")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "avif-parse" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1vhd4n06g5mbf4sznz67mk352pw9hh97f4ysafp737xvzfd3zyw7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitreader" ,rust-bitreader-0.3)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-fallible-collections" ,rust-fallible-collections-0.4)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-static-assertions" ,rust-static-assertions-1))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.9)
+        ("rust-walkdir" ,rust-walkdir-2))))
+    (home-page "https://github.com/kornelski/avif-parse")
+    (synopsis "Parser for AVIF image files")
+    (description "This AVIF parser allows extracting the AV1 payload and alpha
+channel metadata out of AVIF image files.  The parser is a fork of Mozilla's
+MP4 parser used in Firefox, so it's designed to be robust and safely handle
+untrusted data.")
+    (license license:mpl2.0)))
+
 (define-public rust-avif-parse-0.13
   (package
+    (inherit rust-avif-parse-1)
     (name "rust-avif-parse")
     (version "0.13.2")
     (source
@@ -261,7 +292,6 @@ Mac, and Unix.")
        (sha256
         (base32
          "1vylrjq77mpl6flmd85j5f2qimh6vjn03syvq8agb62x56khm0xj"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-bitreader" ,rust-bitreader-0.3)
@@ -271,17 +301,35 @@ Mac, and Unix.")
         ("rust-static-assertions" ,rust-static-assertions-1))
        #:cargo-development-inputs
        (("rust-env-logger" ,rust-env-logger-0.8)
-        ("rust-walkdir" ,rust-walkdir-2))))
-    (home-page "https://github.com/kornelski/avif-parse")
-    (synopsis "Parser for AVIF image files")
-    (description "This AVIF parser allows extracting the AV1 payload and alpha
-channel metadata out of AVIF image files.  The parser is a fork of Mozilla's
-MP4 parser used in Firefox, so it's designed to be robust and safely handle
-untrusted data.")
-    (license license:mpl2.0)))
+        ("rust-walkdir" ,rust-walkdir-2))))))
+
+(define-public rust-avif-serialize-0.7
+  (package
+    (name "rust-avif-serialize")
+    (version "0.7.7")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "avif-serialize" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0d2makdw756978i8s3qhlhh1h91y5maxriay6r4kmsmk8pky2qfc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f              ; Undeclared dependencies
+       #:cargo-inputs (("rust-arrayvec" ,rust-arrayvec-0.7))
+       #:cargo-development-inputs (("rust-avif-parse" ,rust-avif-parse-1))))
+    (home-page "https://lib.rs/avif-serialize")
+    (synopsis "Writer for AVIF header structure (MPEG/HEIF/MIAF/ISO-BMFF)")
+    (description
+     "This package provides a minimal writer for AVIF header structure.  This
+is a tiny alternative to @code{libavif}.  It creates the jungle of
+MPEG/HEIF/MIAF/ISO-BMFF ``boxes'' as appropriate for AVIF files.  It supports
+alpha channel embedding.")
+    (license license:bsd-3)))
 
 (define-public rust-avif-serialize-0.6
   (package
+    (inherit rust-avif-serialize-0.7)
     (name "rust-avif-serialize")
     (version "0.6.5")
     (source
@@ -291,19 +339,10 @@ untrusted data.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "130wq838lslkcqcp2kjci7q3aq9qpir07pvxndc81xqbn63wvdjg"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-arrayvec" ,rust-arrayvec-0.5))))
-    (home-page "https://lib.rs/avif-serialize")
-    (synopsis "Writer for AVIF header structure (MPEG/HEIF/MIAF/ISO-BMFF)")
-    (description
-     "This package provides a minimal writer for AVIF header structure.  This
-is a tiny alternative to @code{libavif}.  It creates the jungle of
-MPEG/HEIF/MIAF/ISO-BMFF ``boxes'' as appropriate for AVIF files.  It supports
-alpha channel embedding.")
-    (license license:bsd-3)))
+       (("rust-arrayvec" ,rust-arrayvec-0.5))))))
 
 (define-public rust-cgl-0.3
   (package
@@ -434,14 +473,14 @@ for computer graphics.")
 (define-public rust-core-graphics-0.22
   (package
     (name "rust-core-graphics")
-    (version "0.22.2")
+    (version "0.22.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "core-graphics" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "11lx6xw8nc9fpd552g60qa0cxh0maah8j2m26vkq0aslkgv3b7r6"))))
+        (base32 "1yz4xzbz36vbmlra0viazzlicp8kap1ldgshsp5nzz4g7fmvp095"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -574,10 +613,59 @@ types.")
 and iOS.")
     (license license:expat)))
 
+(define-public rust-dav1d-0.6
+  (package
+    (name "rust-dav1d")
+    (version "0.6.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "dav1d" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0qz2lx37pmx798lysgh6k5lk5y20ckr7pp8c1p6v2z0p721i913j"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-dav1d-sys" ,rust-dav1d-sys-0.3))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list dav1d clang llvm))
+    (home-page "https://github.com/rust-av/dav1d-rs")
+    (synopsis "Libdav1d bindings")
+    (description "This package provides libdav1d bindings in rust.")
+    (license license:expat)))
+
+(define-public rust-dav1d-sys-0.7
+  (package
+    (name "rust-dav1d-sys")
+    (version "0.7.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "dav1d-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "16gzjsfnvfd5zr8mrx5n9mdd4vjvwfwpk9hfscgz7sjyzjdjzcm0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-system-deps" ,rust-system-deps-6))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list dav1d))
+    (home-page "https://github.com/rust-av/dav1d-rs")
+    (synopsis "FFI bindings to dav1d")
+    (description "This package provides FFI bindings to dav1d.")
+    (license license:expat)))
+
 (define-public rust-dav1d-sys-0.3
   (package
+    (inherit rust-dav1d-sys-0.7)
     (name "rust-dav1d-sys")
-    (version "0.3.4")
+    (version "0.3.5")
     (source
      (origin
        (method url-fetch)
@@ -585,20 +673,42 @@ and iOS.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "020lla2l703iy69gbksq18snj2b1sp7vmjf39qqykd4242d4msr5"))))
-    (build-system cargo-build-system)
+        (base32 "10y8637snqc3kb9mhs8p9zi8171ba2hlbvhk06vs6hfifx60rr48"))))
     (arguments
      `(#:cargo-inputs
-       (("rust-bindgen" ,rust-bindgen-0.58)
-        ("rust-system-deps" ,rust-system-deps-3))))
+       (("rust-bindgen" ,rust-bindgen-0.59)
+        ("rust-system-deps" ,rust-system-deps-6))))
     (native-inputs
      (list pkg-config))
     (inputs
-     (list dav1d clang llvm))
-    (home-page "https://github.com/rust-av/dav1d-rs")
-    (synopsis "FFI bindings to dav1d")
-    (description "This package provides FFI bindings to dav1d.")
-    (license license:expat)))
+     (list dav1d clang llvm))))
+
+(define-public rust-dcv-color-primitives-0.4
+  (package
+    (name "rust-dcv-color-primitives")
+    (version "0.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "dcv-color-primitives" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "01c0ag8dwzz00hyq9qam9d5j6yzdh8xpidcn37vgkzlmhgfz8mql"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-paste" ,rust-paste-1)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-getrandom" ,rust-getrandom-0.2)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))
+    (home-page "https://github.com/aws/dcv-color-primitives")
+    (synopsis "Library to perform image color model conversion")
+    (description
+     "This package provides a library to perform image color model conversion.")
+    (license license:expat-0)))
 
 (define-public rust-euclid-0.22
   (package
@@ -673,6 +783,39 @@ EUI-64, also known as MAC-48 media access control addresses.")
        (("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
         ("rust-serde" ,rust-serde-1))))))
 
+(define-public rust-exr-1
+  (package
+    (name "rust-exr")
+    (version "1.5.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "exr" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1ssgq9zkf53mhwvhj9khvrlh0f9h3dl1pg7cs0irvn1fgvs5xbz8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                  ; Not all files included
+       #:cargo-inputs
+       (("rust-bit-field" ,rust-bit-field-0.10)
+        ("rust-flume" ,rust-flume-0.10)
+        ("rust-half" ,rust-half-2)
+        ("rust-lebe" ,rust-lebe-0.5)
+        ("rust-miniz-oxide" ,rust-miniz-oxide-0.6)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-threadpool" ,rust-threadpool-1)
+        ("rust-zune-inflate" ,rust-zune-inflate-0.2))
+       #:cargo-development-inputs
+       (("rust-bencher" ,rust-bencher-0.1)
+        ("rust-image" ,rust-image-0.24)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-walkdir" ,rust-walkdir-2))))
+    (home-page "https://github.com/johannesvollmer/exrs")
+    (synopsis "Read and write OpenEXR files without any unsafe code")
+    (description "Read and write OpenEXR files without any unsafe code")
+    (license license:bsd-3)))
+
 (define-public rust-gfx-0.18
   (package
     (name "rust-gfx")
@@ -794,25 +937,6 @@ EUI-64, also known as MAC-48 media access control addresses.")
     (description "This package provides OpenGL bindings for rust.")
     (license license:asl2.0)))
 
-(define-public rust-gl-0.11
-  (package
-    (inherit rust-gl-0.14)
-    (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"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-gl-generator" ,rust-gl-generator-0.10))))))
-
 (define-public rust-gl-generator-0.14
   (package
     (name "rust-gl-generator")
@@ -868,33 +992,6 @@ EUI-64, also known as MAC-48 media access control addresses.")
        (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")
@@ -918,8 +1015,43 @@ EUI-64, also known as MAC-48 media access control addresses.")
      "Generated OpenGL bindings and wrapper for Servo.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-glutin-0.30
+  (package
+    (name "rust-glutin")
+    (version "0.30.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glutin" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "05gzw9icj4s0p9db9srnwrd3m3plcs7260jlblyy2pbiqygap6zq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cfg-aliases" ,rust-cfg-aliases-0.1)
+        ("rust-cgl" ,rust-cgl-0.3)
+        ("rust-core-foundation" ,rust-core-foundation-0.9)
+        ("rust-dispatch" ,rust-dispatch-0.2)
+        ("rust-glutin-egl-sys" ,rust-glutin-egl-sys-0.4)
+        ("rust-glutin-glx-sys" ,rust-glutin-glx-sys-0.4)
+        ("rust-glutin-wgl-sys" ,rust-glutin-wgl-sys-0.4)
+        ("rust-libloading" ,rust-libloading-0.7)
+        ("rust-objc2" ,rust-objc2-0.3)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-raw-window-handle" ,rust-raw-window-handle-0.5)
+        ("rust-wayland-sys" ,rust-wayland-sys-0.30)
+        ("rust-windows-sys" ,rust-windows-sys-0.45)
+        ("rust-x11-dl" ,rust-x11-dl-2))))
+    (home-page "https://github.com/tomaka/glutin")
+    (synopsis "Cross-platform OpenGL context provider")
+    (description "This package provides an OpenGL context provider.")
+    (license license:asl2.0)))
+
 (define-public rust-glutin-0.28
   (package
+    (inherit rust-glutin-0.30)
     (name "rust-glutin")
     (version "0.28.0")
     (source
@@ -929,7 +1061,6 @@ EUI-64, also known as MAC-48 media access control addresses.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1lpnf61x4jbm55bpdr10k1a1pl3cs719i9y4qibsdj2bajz9vsh0"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-android-glue" ,rust-android-glue-0.2)
@@ -951,11 +1082,7 @@ EUI-64, also known as MAC-48 media access control addresses.")
         ("rust-winapi" ,rust-winapi-0.3)
         ("rust-winit" ,rust-winit-0.26))))
     (inputs
-     (list rust-wayland-client-0.29 rust-wayland-egl-0.29))
-    (home-page "https://github.com/tomaka/glutin")
-    (synopsis "Cross-platform OpenGL context provider")
-    (description "This package provides an OpenGL context provider.")
-    (license license:asl2.0)))
+     (list rust-wayland-client-0.29 rust-wayland-egl-0.29))))
 
 (define-public rust-glutin-0.26
   (package
@@ -1063,10 +1190,10 @@ EUI-64, also known as MAC-48 media access control addresses.")
         ("rust-winapi" ,rust-winapi-0.3)
         ("rust-winit" ,rust-winit-0.19))))))
 
-(define-public rust-glutin-egl-sys-0.1
+(define-public rust-glutin-egl-sys-0.4
   (package
     (name "rust-glutin-egl-sys")
-    (version "0.1.5")
+    (version "0.4.0")
     (source
      (origin
        (method url-fetch)
@@ -1075,17 +1202,36 @@ EUI-64, also known as MAC-48 media access control addresses.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "04f2ci9kb8q4dv4kviigvgfy54lr4jmbnmjsvi50qj13anjnmfra"))))
+         "0z9nm3d6qcgqg7f6qkbnsfs4cy90d8raw09inf2qc564nnmz1ap5"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-winapi" ,rust-winapi-0.3)
-        ("rust-gl-generator" ,rust-gl-generator-0.13))))
+       (("rust-gl-generator" ,rust-gl-generator-0.14)
+        ("rust-windows-sys" ,rust-windows-sys-0.45))))
     (home-page "https://github.com/rust-windowing/glutin")
     (synopsis "Egl bindings for glutin")
     (description "The egl bindings for glutin.")
     (license license:asl2.0)))
 
+(define-public rust-glutin-egl-sys-0.1
+  (package
+    (inherit rust-glutin-egl-sys-0.4)
+    (name "rust-glutin-egl-sys")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glutin-egl-sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "04f2ci9kb8q4dv4kviigvgfy54lr4jmbnmjsvi50qj13anjnmfra"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-winapi" ,rust-winapi-0.3)
+        ("rust-gl-generator" ,rust-gl-generator-0.13))))))
+
 (define-public rust-glutin-emscripten-sys-0.1
   (package
     (name "rust-glutin-emscripten-sys")
@@ -1126,21 +1272,20 @@ EUI-64, also known as MAC-48 media access control addresses.")
     (description "This package provides gles2 bindings for glutin.")
     (license license:asl2.0)))
 
-(define-public rust-glutin-glx-sys-0.1
+(define-public rust-glutin-glx-sys-0.4
   (package
     (name "rust-glutin-glx-sys")
-    (version "0.1.7")
+    (version "0.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "glutin_glx_sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0l8kk60kq5v6hl1qr6ym2arzvbsgkh71aa8485cp901bq27kqfby"))))
+        (base32 "150l397l64p4r46wshh8zdlwifpcqpm93fm3csh4m5k8wmgwnlqv"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-gl-generator" ,rust-gl-generator-0.14)
         ("rust-x11-dl" ,rust-x11-dl-2))))
     (home-page "https://github.com/tomaka/glutin")
@@ -1148,27 +1293,61 @@ EUI-64, also known as MAC-48 media access control addresses.")
     (description "This package provides glx bindings for glutin.")
     (license license:asl2.0)))
 
-(define-public rust-glutin-wgl-sys-0.1
+(define-public rust-glutin-glx-sys-0.1
+  (package
+    (inherit rust-glutin-glx-sys-0.4)
+    (name "rust-glutin-glx-sys")
+    (version "0.1.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glutin_glx_sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0l8kk60kq5v6hl1qr6ym2arzvbsgkh71aa8485cp901bq27kqfby"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-gl-generator" ,rust-gl-generator-0.14)
+        ("rust-x11-dl" ,rust-x11-dl-2))))))
+
+(define-public rust-glutin-wgl-sys-0.4
   (package
     (name "rust-glutin-wgl-sys")
-    (version "0.1.5")
+    (version "0.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "glutin_wgl_sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "15hns8b3i7iy366m61dg7jlr7wgzz8z8cakgbj3apnv92ld9b99x"))))
+        (base32 "0rc1c585ai9gav2nvdd5pn1x9gxv57yl5gg9cnyccgq3j273k2gg"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-gl-generator" ,rust-gl-generator-0.14))))
     (home-page "https://github.com/tomaka/glutin")
     (synopsis "Wgl bindings for glutin")
     (description "This package provides wgl bindings for glutin.")
     (license license:asl2.0)))
 
+(define-public rust-glutin-wgl-sys-0.1
+  (package
+    (inherit rust-glutin-wgl-sys-0.4)
+    (name "rust-glutin-wgl-sys")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glutin_wgl_sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "15hns8b3i7iy366m61dg7jlr7wgzz8z8cakgbj3apnv92ld9b99x"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-gl-generator" ,rust-gl-generator-0.14))))))
+
 (define-public rust-ical-0.7
   (package
     (name "rust-ical")
@@ -1192,8 +1371,54 @@ EUI-64, also known as MAC-48 media access control addresses.")
 similar formats like VCard.")
     (license license:asl2.0)))
 
+(define-public rust-image-0.24
+  (package
+    (name "rust-image")
+    (version "0.24.5")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "image" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0iarjrn9rimnri1g0hagdzljq3v9fy6gy7qlmz80yyskkfafmdv9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f              ; Not all files included.
+       #:cargo-inputs
+       (("rust-bytemuck" ,rust-bytemuck-1)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-color-quant" ,rust-color-quant-1)
+        ("rust-dav1d" ,rust-dav1d-0.6)
+        ("rust-dcv-color-primitives" ,rust-dcv-color-primitives-0.4)
+        ("rust-exr" ,rust-exr-1)
+        ("rust-gif" ,rust-gif-0.11)
+        ("rust-jpeg-decoder" ,rust-jpeg-decoder-0.3)
+        ("rust-mp4parse" ,rust-mp4parse-0.12)
+        ("rust-num-rational" ,rust-num-rational-0.4)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-png" ,rust-png-0.17)
+        ("rust-ravif" ,rust-ravif-0.8)
+        ("rust-rgb" ,rust-rgb-0.8)
+        ("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1)
+        ("rust-tiff" ,rust-tiff-0.8)
+        ("rust-webp" ,rust-webp-0.2))
+       #:cargo-development-inputs
+       (("rust-crc32fast" ,rust-crc32fast-1)
+        ("rust-criterion" ,rust-criterion-0.3)
+        ("rust-glob" ,rust-glob-0.3)
+        ("rust-jpeg-decoder" ,rust-jpeg-decoder-0.3)
+        ("rust-num-complex" ,rust-num-complex-0.4)
+        ("rust-quickcheck" ,rust-quickcheck-1))))
+    (home-page "https://github.com/image-rs/image")
+    (synopsis "Imaging library written in Rust")
+    (description
+     "This package is an imaging library written in Rust.  It provides basic
+filters and decoders for the most common image formats.")
+    (license license:expat)))
+
 (define-public rust-image-0.23
   (package
+    (inherit rust-image-0.24)
     (name "rust-image")
     (version "0.23.14")
     (source
@@ -1203,7 +1428,6 @@ similar formats like VCard.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "18gn2f7xp30pf9aqka877knlq308khxqiwjvsccvzaa4f9zcpzr4"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -1219,13 +1443,7 @@ similar formats like VCard.")
         ("rust-ravif" ,rust-ravif-0.6)
         ("rust-rgb" ,rust-rgb-0.8)
         ("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1)
-        ("rust-tiff" ,rust-tiff-0.6))))
-    (home-page "https://github.com/image-rs/image")
-    (synopsis "Imaging library written in Rust")
-    (description
-     "This package is an imaging library written in Rust.  It provides basic
-filters and decoders for the most common image formats.")
-    (license license:expat)))
+        ("rust-tiff" ,rust-tiff-0.6))))))
 
 (define-public rust-image-0.22
   (package
@@ -1324,16 +1542,15 @@ filters and decoders for the most common image formats.")
 (define-public rust-imgref-1
   (package
     (name "rust-imgref")
-    (version "1.7.1")
+    (version "1.9.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "imgref" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "19dd5xss3nd40avv8az2kzicpxx71c2akiqznr616hki30w9vj07"))))
+        (base32 "0b3czpz206z4nvpq7yq0v58bwjmqjwjmkr302hbzpp4523glkkxj"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
     (home-page "https://github.com/kornelski/imgref")
     (synopsis "2D slice of a @code{Vec}")
     (description
@@ -1341,8 +1558,40 @@ filters and decoders for the most common image formats.")
 pixel buffers with width, height and stride.")
     (license license:cc0)))
 
+(define-public rust-jpeg-decoder-0.3
+  (package
+    (name "rust-jpeg-decoder")
+    (version "0.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "jpeg-decoder" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0gkv0zx95i4fr40fj1a10d70lqi6lfyia8r5q8qjxj8j4pj0005w"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (substitute* "Cargo.toml"
+                    (("=0\\.2\\.83") "^0.2.83"))))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                  ; Not all files included
+       #:cargo-inputs
+       (("rust-rayon" ,rust-rayon-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-png" ,rust-png-0.16)
+        ("rust-walkdir" ,rust-walkdir-2)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
+        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))
+    (home-page "https://github.com/image-rs/jpeg-decoder")
+    (synopsis "JPEG decoder")
+    (description "JPEG decoder written in Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-jpeg-decoder-0.1
   (package
+    (inherit rust-jpeg-decoder-0.3)
     (name "rust-jpeg-decoder")
     (version "0.1.22")
     (source
@@ -1353,7 +1602,6 @@ pixel buffers with width, height and stride.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1wnh0bmmswpgwhgmlizz545x8334nlbmkq8imy9k224ri3am7792"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:tests? #f      ; Some test files missing.
        #:cargo-inputs
@@ -1362,11 +1610,29 @@ pixel buffers with width, height and stride.")
        #:cargo-development-inputs
        (("rust-criterion" ,rust-criterion-0.3)
         ("rust-png" ,rust-png-0.14)
-        ("rust-walkdir" ,rust-walkdir-2))))
-    (home-page "https://github.com/image-rs/jpeg-decoder")
-    (synopsis "JPEG decoder")
-    (description "JPEG decoder written in Rust.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-walkdir" ,rust-walkdir-2))))))
+
+(define-public rust-libwebp-sys-0.4
+  (package
+    (name "rust-libwebp-sys")
+    (version "0.4.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "libwebp-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1gvjaqhjpzdskx8x4q1lfgw24jnbjgkx4s6dxpkkg2d2ba4d37s3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags
+       '("--release" "--"
+         "--skip=tests::poke")
+       #:cargo-inputs
+       (("rust-cc" ,rust-cc-1))))
+    (home-page "https://github.com/NoXF/libwebp-sys")
+    (synopsis "Bindings to libwebp (bindgen, static linking)")
+    (description "Bindings to libwebp (bindgen, static linking)")
+    (license license:expat)))
 
 (define-public rust-line-drawing-0.7
   (package
@@ -1473,6 +1739,36 @@ graphics and video games.")
     (description "This package provides SVG helpers for the lyon crates.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-mp4parse-0.12
+  (package
+    (name "rust-mp4parse")
+    (version "0.12.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "mp4parse" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1ppqv60qiyrnbb996gb1sik08c0j2i317llv3rrcwb1cjg3bdlk7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f              ; Not all files included.
+       #:cargo-inputs
+       (("rust-bitreader" ,rust-bitreader-0.3)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-env-logger" ,rust-env-logger-0.8)
+        ("rust-fallible-collections" ,rust-fallible-collections-0.4)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-static-assertions" ,rust-static-assertions-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-test-assembler" ,rust-test-assembler-0.1)
+        ("rust-walkdir" ,rust-walkdir-2))))
+    (home-page "https://github.com/mozilla/mp4parse-rust")
+    (synopsis "Parser for ISO base media file format (mp4)")
+    (description "Parser for ISO base media file format (mp4)")
+    (license license:mpl2.0)))
+
 (define-public rust-osmesa-sys-0.1
   (package
     (name "rust-osmesa-sys")
@@ -1717,14 +2013,14 @@ interactive applications.")
 (define-public rust-png-0.17
   (package
     (name "rust-png")
-    (version "0.17.5")
+    (version "0.17.7")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "png" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1fp3vnaxmjdv71dcakc21k07ir5s31dlx1mrazfqddzgaynw0f6w"))))
+        (base32 "0f66slx641p7an277xskz8vq7syy9cmhsx1qwnfb268ahspqww2x"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #false                  ;XXX missing files in tarball
@@ -1732,7 +2028,7 @@ interactive applications.")
        (("rust-bitflags" ,rust-bitflags-1)
         ("rust-crc32fast" ,rust-crc32fast-1)
         ("rust-deflate" ,rust-deflate-1)
-        ("rust-miniz-oxide" ,rust-miniz-oxide-0.5))
+        ("rust-miniz-oxide" ,rust-miniz-oxide-0.6))
        #:cargo-development-inputs
        (("rust-criterion" ,rust-criterion-0.3)
         ("rust-getopts" ,rust-getopts-0.2)
@@ -1852,8 +2148,43 @@ interactive applications.")
         ("rust-glob" ,rust-glob-0.2)
         ("rust-term" ,rust-term-0.4))))))
 
+(define-public rust-ravif-0.8
+  (package
+    (name "rust-ravif")
+    (version "0.8.10+rust-1.67.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ravif" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1r3s78781kb9lwysdvpdc80gavly33dcs4inhhp2dawml9g3rjss"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-avif-serialize" ,rust-avif-serialize-0.7)
+        ("rust-imgref" ,rust-imgref-1)
+        ("rust-loop9" ,rust-loop9-0.1)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-quick-error" ,rust-quick-error-2)
+        ("rust-rav1e" ,rav1e)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-rgb" ,rust-rgb-0.8))
+       #:cargo-development-inputs
+       (("rust-avif-parse" ,rust-avif-parse-1))))
+    (native-inputs
+     (list nasm pkg-config))
+    (inputs
+     (list libgit2 zlib))
+    (home-page "https://lib.rs/ravif")
+    (synopsis "Rust library for encoding images in AVIF format")
+    (description
+     "This package provides a rav1e-based pure Rust library for encoding images in
+AVIF format (powers the `cavif` tool).")
+    (license license:bsd-3)))
+
 (define-public rust-ravif-0.6
   (package
+    (inherit rust-ravif-0.8)
     (name "rust-ravif")
     (version "0.6.4")
     (source
@@ -1863,7 +2194,6 @@ interactive applications.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1gyc7w1fz3qdk95cdpkj185dm6lskxfp329xm69waxc565fcz9rx"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-avif-serialize" ,rust-avif-serialize-0.6)
@@ -1877,16 +2207,12 @@ interactive applications.")
        (("rust-avif-parse" ,rust-avif-parse-0.13))))
     (native-inputs
      (list nasm))                 ;for building rav1e
-    (home-page "https://lib.rs/ravif")
-    (synopsis "Library for encoding images in AVIF format")
-    (description "This package is a rav1e-based pure Rust library for encoding
-images in AVIF format.")
-    (license license:bsd-3)))
+    (inputs '())))
 
-(define-public rust-raw-window-handle-0.4
+(define-public rust-raw-window-handle-0.5
   (package
     (name "rust-raw-window-handle")
-    (version "0.4.3")
+    (version "0.5.2")
     (source
      (origin
        (method url-fetch)
@@ -1894,17 +2220,31 @@ images in AVIF format.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0hgvrqbr2b62zhq4ryv08h92mwis9v8f7j9pwcgxzlp7nswvw05q"))))
+         "1f9k10fgda464ia1b2hni8f0sa8i0bphdsbs3di032x80qgrmzzj"))))
     (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-cty" ,rust-cty-0.2))))
     (home-page "https://github.com/rust-windowing/raw-window-handle")
     (synopsis "Interoperability library for Rust Windowing applications")
     (description
      "Interoperability library for Rust Windowing applications.")
     (license license:expat)))
 
+(define-public rust-raw-window-handle-0.4
+  (package
+    (inherit rust-raw-window-handle-0.5)
+    (name "rust-raw-window-handle")
+    (version "0.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "raw-window-handle" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0hgvrqbr2b62zhq4ryv08h92mwis9v8f7j9pwcgxzlp7nswvw05q"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cty" ,rust-cty-0.2))))))
+
 (define-public rust-raw-window-handle-0.3
   (package
     (inherit rust-raw-window-handle-0.4)
@@ -1925,7 +2265,7 @@ images in AVIF format.")
 (define-public rust-rgb-0.8
   (package
     (name "rust-rgb")
-    (version "0.8.25")
+    (version "0.8.36")
     (source
      (origin
        (method url-fetch)
@@ -1933,7 +2273,7 @@ images in AVIF format.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1lrv3x5h1lvdzg1qqr8aiysz978m35zpjdkyicnvkarnh8zkqzr8"))))
+         "0ncgzkgifbyfx7vpnygfl4mgpdhhbaywxybx6pnjraf77wz2vv10"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -1951,8 +2291,97 @@ implements standard Rust traits to make `RGB`/`RGBA` pixels and slices
 first-class Rust objects.")
     (license license:expat)))
 
+(define-public rust-sdl2-0.35
+  (package
+    (name "rust-sdl2")
+    (version "0.35.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "sdl2" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "06ivcavxhc7zyhbfmy2544dz0lnaqf33d9xf0jggpw93nrvr55gp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t     ; Building requires several SDL2 inputs.
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-c-vec" ,rust-c-vec-2)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-raw-window-handle" ,rust-raw-window-handle-0.4)
+        ("rust-sdl2-sys" ,rust-sdl2-sys-0.35))))
+    (home-page "https://github.com/Rust-SDL2/rust-sdl2")
+    (synopsis "SDL2 bindings for Rust")
+    (description "This package provides SDL2 bindings for Rust.")
+    (license license:expat)))
+
+(define-public rust-sdl2-sys-0.35
+  (package
+    (name "rust-sdl2-sys")
+    (version "0.35.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "sdl2-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1w7ranfpmbvsnviq0y8d1cz9pajp8c4b84lslycq02kcrzi6nn73"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin (delete-file-recursively "SDL")))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t     ; Building requires several SDL2 inputs.
+       #:cargo-inputs
+       (("rust-bindgen" ,rust-bindgen-0.53)
+        ("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-cmake" ,rust-cmake-0.1)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-vcpkg" ,rust-vcpkg-0.2)
+        ("rust-version-compare" ,rust-version-compare-0.1))))
+    (home-page "https://github.com/rust-sdl2/rust-sdl2")
+    (synopsis "Raw SDL2 bindings for Rust, used internally rust-sdl2")
+    (description "This package provides raw SDL2 bindings for Rust, used
+internally rust-sdl2.")
+    (license license:expat)))
+
+(define-public rust-smithay-client-toolkit-0.16
+  (package
+    (name "rust-smithay-client-toolkit")
+    (version "0.16.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "smithay-client-toolkit" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0m7l0zhl9s3321yj8z6hf1g0w3l2ay85irgcw2r5wwfj69yw81zk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-calloop" ,rust-calloop-0.10)
+        ("rust-dlib" ,rust-dlib-0.5)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-memmap2" ,rust-memmap2-0.5)
+        ("rust-nix" ,rust-nix-0.24)
+        ("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-wayland-client" ,rust-wayland-client-0.29)
+        ("rust-wayland-cursor" ,rust-wayland-cursor-0.29)
+        ("rust-wayland-protocols" ,rust-wayland-protocols-0.29))
+       #:cargo-development-inputs (("rust-image" ,rust-image-0.24))))
+    (home-page "https://github.com/smithay/client-toolkit")
+    (synopsis "Toolkit for making client Wayland applications")
+    (description
+     "This package provides a toolkit for making client Wayland applications.")
+    (license license:expat)))
+
 (define-public rust-smithay-client-toolkit-0.15
   (package
+    (inherit rust-smithay-client-toolkit-0.16)
     (name "rust-smithay-client-toolkit")
     (version "0.15.4")
     (source
@@ -1962,7 +2391,6 @@ first-class Rust objects.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "18wxla80y6m4l3dwawi7bl1d9m9dfcg4sxxjcgjqq3psjxmg2a4a"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -1976,12 +2404,7 @@ first-class Rust objects.")
         ("rust-pkg-config" ,rust-pkg-config-0.3)
         ("rust-wayland-client" ,rust-wayland-client-0.29)
         ("rust-wayland-cursor" ,rust-wayland-cursor-0.29)
-        ("rust-wayland-protocols" ,rust-wayland-protocols-0.29))))
-    (home-page "https://github.com/smithay/client-toolkit")
-    (synopsis "Toolkit for making client Wayland applications")
-    (description
-     "This package provides a toolkit for making client Wayland applications.")
-    (license license:expat)))
+        ("rust-wayland-protocols" ,rust-wayland-protocols-0.29))))))
 
 (define-public rust-smithay-client-toolkit-0.12
   (package
@@ -2073,20 +2496,21 @@ first-class Rust objects.")
 (define-public rust-smithay-clipboard-0.6
   (package
     (name "rust-smithay-clipboard")
-    (version "0.6.2")
+    (version "0.6.6")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "smithay-clipboard" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "14dwisd56cbr80zf719l3fh0n8pm1fjmvry9lsbhdbccf8cv525b"))))
+        (base32 "1s5hyhbmnk75i0sm14wy4dy7c576a4dyi1chfwdhpbhz1a3mqd0a"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.12)
-        ("rust-wayland-client" ,rust-wayland-client-0.28))))
+     `(#:cargo-inputs
+       (("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.16)
+        ("rust-wayland-client" ,rust-wayland-client-0.29))
+       #:cargo-development-inputs
+       (("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.16))))
     (home-page "https://github.com/smithay/smithay-clipboard")
     (synopsis "Access to the Wayland clipboard for client applications")
     (description
@@ -2094,8 +2518,34 @@ first-class Rust objects.")
 applications.")
     (license license:expat)))
 
+(define-public rust-tiff-0.8
+  (package
+    (name "rust-tiff")
+    (version "0.8.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "tiff" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0wg4a6w8sakyy0mggblg340mx8bgglx9hwsxsn8g5fpjkx7k6jbl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f              ; Not all files included
+       #:cargo-inputs
+       (("rust-flate2" ,rust-flate2-1)
+        ("rust-jpeg-decoder" ,rust-jpeg-decoder-0.3)
+        ("rust-weezl" ,rust-weezl-0.1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3))))
+    (home-page "https://github.com/image-rs/image-tiff")
+    (synopsis "TIFF decoding and encoding library in pure Rust")
+    (description
+     "This package provides TIFF decoding and encoding library in pure Rust.")
+    (license license:expat)))
+
 (define-public rust-tiff-0.6
   (package
+    (inherit rust-tiff-0.8)
     (name "rust-tiff")
     (version "0.6.1")
     (source
@@ -2105,18 +2555,12 @@ applications.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0ds48vs919ccxa3fv1www7788pzkvpg434ilqkq7sjb5dmqg8lws"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-jpeg-decoder" ,rust-jpeg-decoder-0.1)
         ("rust-miniz-oxide" ,rust-miniz-oxide-0.4)
-        ("rust-weezl" ,rust-weezl-0.1))))
-    (home-page "https://github.com/image-rs/image-tiff")
-    (synopsis "TIFF decoding and encoding library in pure Rust")
-    (description
-     "This package provides TIFF decoding and encoding library in pure Rust.")
-    (license license:expat)))
+        ("rust-weezl" ,rust-weezl-0.1))))))
 
 (define-public rust-tiff-0.5
   (package
@@ -2187,14 +2631,14 @@ applications.")
 (define-public rust-wayland-client-0.29
   (package
     (name "rust-wayland-client")
-    (version "0.29.4")
+    (version "0.29.5")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "wayland-client" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "13s5sj9344izk2g48yizk81kcg8jg4940gg2v6bzcmrjwxh388li"))))
+        (base32 "05b7qikqj22rjy17kqw5ar7j2chpy18dr0gqapvwjfd00n60cfrz"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #false               ;circular dependency on wayland-protocols
@@ -2202,17 +2646,18 @@ applications.")
        (("rust-bitflags" ,rust-bitflags-1)
         ("rust-downcast-rs" ,rust-downcast-rs-1)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-nix" ,rust-nix-0.22)
+        ("rust-nix" ,rust-nix-0.24)
         ("rust-scoped-tls" ,rust-scoped-tls-1)
         ("rust-wayland-commons" ,rust-wayland-commons-0.29)
-        ("rust-wayland-scanner" ,rust-wayland-scanner-0.29))
+        ("rust-wayland-scanner" ,rust-wayland-scanner-0.29)
+        ("rust-wayland-sys" ,rust-wayland-sys-0.29))
        #:cargo-development-inputs
        (("rust-tempfile" ,rust-tempfile-3))))
     (inputs
      (list rust-bitflags-1
            rust-downcast-rs-1
            rust-libc-0.2
-           rust-nix-0.22
+           rust-nix-0.24
            rust-scoped-tls-1
            rust-wayland-commons-0.29
            rust-wayland-scanner-0.29
@@ -2320,23 +2765,23 @@ the wayland protocol, client side.")
 (define-public rust-wayland-commons-0.29
   (package
     (name "rust-wayland-commons")
-    (version "0.29.4")
+    (version "0.29.5")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "wayland-commons" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0gnk4a771i3g1k4fbzx54xnganpc9j68jrx8xj839hfp83iybxll"))))
+        (base32 "00m90bnxqy0d6lzqlyazc1jh18jgbjwigmyr0rk3m8w4slsg34c6"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-nix" ,rust-nix-0.22)
+       (("rust-nix" ,rust-nix-0.24)
         ("rust-once-cell" ,rust-once-cell-1)
         ("rust-smallvec" ,rust-smallvec-1)
         ("rust-wayland-sys" ,rust-wayland-sys-0.29))))
     (inputs
-     (list rust-nix-0.22 rust-once-cell-1 rust-smallvec-1
+     (list rust-nix-0.24 rust-once-cell-1 rust-smallvec-1
            rust-wayland-sys-0.29))
     (home-page "https://github.com/smithay/wayland-rs")
     (synopsis "Types and structures used by wayland-client and wayland-server")
@@ -2410,21 +2855,22 @@ and wayland-server.")
 (define-public rust-wayland-cursor-0.29
   (package
     (name "rust-wayland-cursor")
-    (version "0.29.4")
+    (version "0.29.5")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "wayland-cursor" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1gd6aswkrdz556n54pjpd4rchw7jkgcx6hnrhgy62y2y7pqmh9y5"))))
+        (base32 "0qbn6wqmjibkx3lb3ggbp07iabzgx2zhrm0wxxxjbmhkdyvccrb8"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-nix" ,rust-nix-0.22)
+       (("rust-nix" ,rust-nix-0.24)
+        ("rust-wayland-client" ,rust-wayland-client-0.29)
         ("rust-xcursor" ,rust-xcursor-0.3))))
     (inputs
-     (list rust-nix-0.22 rust-wayland-client-0.29 rust-xcursor-0.3))
+     (list rust-nix-0.24 rust-wayland-client-0.29 rust-xcursor-0.3))
     (home-page "https://github.com/smithay/wayland-rs")
     (synopsis "Bindings to libwayland-cursor")
     (description
@@ -2456,15 +2902,19 @@ properly display animated cursors.")
 (define-public rust-wayland-egl-0.29
   (package
     (name "rust-wayland-egl")
-    (version "0.29.4")
+    (version "0.29.5")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "wayland-egl" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0flslbp8q4nv3hcw941vapn3jh6y7glqaqv63h1mjaqnxrlisa43"))))
+        (base32 "0z8hwixv5kj201p2pnbdwxbl4s9hz5cxd8i1v0k2j08sz14yjba0"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-wayland-client" ,rust-wayland-client-0.29)
+        ("rust-wayland-sys" ,rust-wayland-sys-0.29))))
     (inputs
      (list rust-wayland-client-0.29 rust-wayland-sys-0.29))
     ;; For the PKG_CONFIG_PATH environment variable.
@@ -2500,20 +2950,24 @@ initializing an OpenGL or Vulkan context.")
 (define-public rust-wayland-protocols-0.29
   (package
     (name "rust-wayland-protocols")
-    (version "0.29.4")
+    (version "0.29.5")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "wayland-protocols" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0hap8vky2fwsq05c98c8xs00gb9m5kxp8kq3zr0jwh036gi7l530"))))
+        (base32 "1ihbjyd0w460gd7w22g9qabbwd4v8x74f8vsh7p25csljcgn4l5r"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1.2))))
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-wayland-client" ,rust-wayland-client-0.29)
+        ("rust-wayland-commons" ,rust-wayland-commons-0.29)
+        ("rust-wayland-scanner" ,rust-wayland-scanner-0.29)
+        ("rust-wayland-server" ,rust-wayland-server-0.29))))
     (inputs
-     (list rust-bitflags-1.2 rust-wayland-client-0.29
+     (list rust-bitflags-1 rust-wayland-client-0.29
            rust-wayland-commons-0.29 rust-wayland-scanner-0.29
            rust-wayland-server-0.29))
     (home-page "https://github.com/smithay/wayland-rs")
@@ -2594,15 +3048,20 @@ extensions.")
 (define-public rust-wayland-scanner-0.29
   (package
     (name "rust-wayland-scanner")
-    (version "0.29.4")
+    (version "0.29.5")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "wayland-scanner" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1q7r764z8k922xf51fj56b1xm29ffi9ap8jnf4c478gp8cqyv89r"))))
+        (base32 "0lxx3i2kxnmsk421qx87lqqc9kd2y1ksjxcyg0pqbar2zbc06hwg"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-xml-rs" ,rust-xml-rs-0.8))))
     (inputs
      (list rust-proc-macro2-1 rust-quote-1 rust-xml-rs-0.8))
     (home-page "https://github.com/smithay/wayland-rs")
@@ -2668,14 +3127,14 @@ wayland-client crate for usable bindings.")
 (define-public rust-wayland-server-0.29
   (package
     (name "rust-wayland-server")
-    (version "0.29.4")
+    (version "0.29.5")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "wayland-server" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1wj8gf28dbjwb824i29wf3wr5r6wp6ssknjm9b5dnb1fah47mk66"))))
+        (base32 "11ickjbqpfs19wakf56l3j9asjcfw00d7wj48s3i99yvv1nq8q2k"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -2683,15 +3142,18 @@ wayland-client crate for usable bindings.")
         ("rust-downcast-rs" ,rust-downcast-rs-1)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-nix" ,rust-nix-0.22)
+        ("rust-nix" ,rust-nix-0.24)
         ("rust-parking-lot" ,rust-parking-lot-0.11)
-        ("rust-scoped-tls" ,rust-scoped-tls-1))))
+        ("rust-scoped-tls" ,rust-scoped-tls-1)
+        ("rust-wayland-commons" ,rust-wayland-commons-0.29)
+        ("rust-wayland-scanner" ,rust-wayland-scanner-0.29)
+        ("rust-wayland-sys" ,rust-wayland-sys-0.29))))
     (inputs
      (list rust-bitflags-1
            rust-downcast-rs-1
            rust-lazy-static-1
            rust-libc-0.2
-           rust-nix-0.22
+           rust-nix-0.24
            rust-parking-lot-0.11
            rust-scoped-tls-1
            rust-wayland-commons-0.29
@@ -2792,24 +3254,25 @@ the wayland protocol, server side.")
         ("rust-wayland-sys" ,rust-wayland-sys-0.21)
         ("rust-wayland-scanner" ,rust-wayland-scanner-0.21))))))
 
-(define-public rust-wayland-sys-0.29
+(define-public rust-wayland-sys-0.30
   (package
     (name "rust-wayland-sys")
-    (version "0.29.4")
+    (version "0.30.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "wayland-sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1m2jwk5q36jidwbdmdicmi27r9dzi4wanzg3i28nfxc9kbvisd6r"))))
+        (base32 "01man4ll2kyxp9x2934rhnf98522pzwsd2c6jwr73q08qqma1cln"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-dlib" ,rust-dlib-0.5)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-memoffset" ,rust-memoffset-0.6)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-memoffset" ,rust-memoffset-0.7)
         ("rust-pkg-config" ,rust-pkg-config-0.3))
        #:phases
        (modify-phases %standard-phases
@@ -2820,9 +3283,6 @@ the wayland protocol, server side.")
                (substitute* (find-files "src" "\\.rs$")
                  (("libwayland.*\\.so" shared-lib)
                   (string-append libwayland "/" shared-lib)))))))))
-    (inputs
-     (list rust-dlib-0.5 rust-lazy-static-1 rust-libc-0.2
-           rust-pkg-config-0.3))
     (propagated-inputs
      (list wayland))
     (home-page "https://github.com/smithay/wayland-rs")
@@ -2834,6 +3294,40 @@ you are working on custom Wayland protocol extensions.  Look at the
 crate @code{rust-wayland-client} for usable bindings.")
     (license license:expat)))
 
+(define-public rust-wayland-sys-0.29
+  (package
+    (inherit rust-wayland-sys-0.30)
+    (name "rust-wayland-sys")
+    (version "0.29.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wayland-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1m79qqmr1hx7jlyrvnrxjma5s6dk5js9fjsr4nx7vv1r7hdcw4my"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-dlib" ,rust-dlib-0.5)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-memoffset" ,rust-memoffset-0.6)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-libraries
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((libwayland (dirname (search-input-file
+                                         inputs "lib/libwayland-client.so"))))
+               (substitute* (find-files "src" "\\.rs$")
+                 (("libwayland.*\\.so" shared-lib)
+                  (string-append libwayland "/" shared-lib)))))))))
+    (inputs
+     (list rust-dlib-0.5 rust-lazy-static-1 rust-libc-0.2
+           rust-pkg-config-0.3))
+    (propagated-inputs
+     (list wayland))))
+
 (define-public rust-wayland-sys-0.28
   (package
     (inherit rust-wayland-sys-0.29)
@@ -2906,8 +3400,92 @@ crate @code{rust-wayland-client} for usable bindings.")
         (base32
          "0a0ndgkg98pvmkv44yya4f7mxzjaxylknqh64bpa05w0azyv02jj"))))))
 
+(define-public rust-webp-0.2
+  (package
+    (name "rust-webp")
+    (version "0.2.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "webp" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1bhw6xp7vg4rx7flxgzvdzk21q2dx1bsn06h0yj7jq0n3y12y0ng"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-image" ,rust-image-0.24)
+        ("rust-libwebp-sys" ,rust-libwebp-sys-0.4))
+       #:cargo-development-inputs
+       (("rust-image" ,rust-image-0.24))))
+    (home-page "https://github.com/jaredforth/webp")
+    (synopsis "WebP conversion library")
+    (description "This package procides a WebP conversion library.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-winit-0.28
+  (package
+    (name "rust-winit")
+    (version "0.28.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "winit" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0x1q4nxlr5sg0sf0fhdwg6jgb0a7rmc8skvp33v1b43v2664wl2g"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-android-activity" ,rust-android-activity-0.4)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cfg-aliases" ,rust-cfg-aliases-0.1)
+        ("rust-core-foundation" ,rust-core-foundation-0.9)
+        ("rust-core-graphics" ,rust-core-graphics-0.22)
+        ("rust-dispatch" ,rust-dispatch-0.2)
+        ("rust-instant" ,rust-instant-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-mint" ,rust-mint-0.5)
+        ("rust-mio" ,rust-mio-0.8)
+        ("rust-ndk" ,rust-ndk-0.7)
+        ("rust-objc2" ,rust-objc2-0.3)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-orbclient" ,rust-orbclient-0.3)
+        ("rust-percent-encoding" ,rust-percent-encoding-2)
+        ("rust-raw-window-handle" ,rust-raw-window-handle-0.5)
+        ("rust-redox-syscall" ,rust-redox-syscall-0.3)
+        ("rust-sctk-adwaita" ,rust-sctk-adwaita-0.5)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.16)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
+        ("rust-wayland-client" ,rust-wayland-client-0.29)
+        ("rust-wayland-commons" ,rust-wayland-commons-0.29)
+        ("rust-wayland-protocols" ,rust-wayland-protocols-0.29)
+        ("rust-wayland-scanner" ,rust-wayland-scanner-0.29)
+        ("rust-web-sys" ,rust-web-sys-0.3)
+        ("rust-windows-sys" ,rust-windows-sys-0.45)
+        ("rust-x11-dl" ,rust-x11-dl-2))
+       #:cargo-development-inputs
+       (("rust-console-log" ,rust-console-log-0.2)
+        ("rust-image" ,rust-image-0.24)
+        ("rust-simple-logger" ,rust-simple-logger-2)
+        ("rust-web-sys" ,rust-web-sys-0.3))))
+    (home-page "https://github.com/rust-windowing/winit")
+    (synopsis "Window creation library")
+    (description
+     "Winit is a window creation and management library. It can create
+windows and lets you handle events (for example: the window being
+resized, a key being pressed, a mouse movement, etc.) produced by
+window.
+
+Winit is designed to be a low-level brick in a hierarchy of libraries.
+Consequently, in order to show something on the window you need to use
+the platform-specific getters provided by winit, or another library.")
+    (license license:asl2.0)))
+
 (define-public rust-winit-0.26
   (package
+    (inherit rust-winit-0.28)
     (name "rust-winit")
     (version "0.26.1")
     (source
@@ -2917,7 +3495,6 @@ crate @code{rust-wayland-client} for usable bindings.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0fp7cdh7llbqmm6ga8f6bzk9785jmkbyy1w631hr9faq3n9wqhwv"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -2950,19 +3527,7 @@ crate @code{rust-wayland-client} for usable bindings.")
        (("rust-console-log" ,rust-console-log-0.2)
         ("rust-simple-logger" ,rust-simple-logger-1))))
     (inputs
-     (list rust-wayland-client-0.29 rust-wayland-protocols-0.29))
-    (home-page "https://github.com/rust-windowing/winit")
-    (synopsis "Window creation library")
-    (description
-     "Winit is a window creation and management library. It can create
-windows and lets you handle events (for example: the window being
-resized, a key being pressed, a mouse movement, etc.) produced by
-window.
-
-Winit is designed to be a low-level brick in a hierarchy of libraries.
-Consequently, in order to show something on the window you need to use
-the platform-specific getters provided by winit, or another library.")
-    (license license:asl2.0)))
+     (list rust-wayland-client-0.29 rust-wayland-protocols-0.29))))
 
 (define-public rust-winit-0.24
   (package
@@ -3125,8 +3690,36 @@ the platform-specific getters provided by winit, or another library.")
     (description "This crate provides X11 library bindings for Rust.")
     (license license:expat)))
 
+(define-public rust-x11rb-0.10
+  (package
+    (name "rust-x11rb")
+    (version "0.10.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "x11rb" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "01ympxagdl0qs35k1ww712shpnpbahkcc29j5dqmwd4z461lhasr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-gethostname" ,rust-gethostname-0.2)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-libloading" ,rust-libloading-0.7)
+        ("rust-nix" ,rust-nix-0.24)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-winapi-wsapoll" ,rust-winapi-wsapoll-0.1)
+        ("rust-x11rb-protocol" ,rust-x11rb-protocol-0.10))))
+    (home-page "https://github.com/psychon/x11rb")
+    (synopsis "Rust bindings to X11")
+    (description "This package provides Rust bindings to X11")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-x11rb-0.8
   (package
+    (inherit rust-x11rb-0.10)
     (name "rust-x11rb")
     (version "0.8.1")
     (source
@@ -3136,7 +3729,6 @@ the platform-specific getters provided by winit, or another library.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
           (base32 "068g5ll4l5f35c2v098hj0kj2c9ma0r7v3pbli164q9g7w5hiyvg"))))
-    (build-system cargo-build-system)
     (arguments
       `(#:skip-build? #t
         #:cargo-inputs
@@ -3146,14 +3738,54 @@ the platform-specific getters provided by winit, or another library.")
          ("rust-nix" ,rust-nix-0.20)
          ("rust-once-cell" ,rust-once-cell-1)
          ("rust-winapi" ,rust-winapi-0.3)
-         ("rust-winapi-wsapoll" ,rust-winapi-wsapoll-0.1))))
+         ("rust-winapi-wsapoll" ,rust-winapi-wsapoll-0.1))))))
+
+(define-public rust-x11rb-protocol-0.10
+  (package
+    (name "rust-x11rb-protocol")
+    (version "0.10.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "x11rb-protocol" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0rxcpsmgrziwqy9ml81h8r1lwy422h1i5j3d007dpj8a3islbcjn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-nix" ,rust-nix-0.24)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3))))
     (home-page "https://github.com/psychon/x11rb")
     (synopsis "Rust bindings to X11")
-    (description "This package provides Rust bindings to X11")
+    (description "Rust bindings to X11")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-x11-clipboard-0.7
+  (package
+    (name "rust-x11-clipboard")
+    (version "0.7.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "x11-clipboard" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0r3lgslbbdf0mb914n0f9q2pqci407r1pcddwbl7sfvc4alrl2wq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; Wants a running X server.
+       #:cargo-inputs (("rust-x11rb" ,rust-x11rb-0.10))))
+    (home-page "https://github.com/quininer/x11-clipboard")
+    (synopsis "x11 clipboard support for Rust")
+    (description "This package provides x11 clipboard support for Rust.")
+    (license license:expat)))
+
 (define-public rust-x11-clipboard-0.5
   (package
+    (inherit rust-x11-clipboard-0.7)
     (name "rust-x11-clipboard")
     (version "0.5.1")
     (source
@@ -3163,20 +3795,15 @@ the platform-specific getters provided by winit, or another library.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "17c5yxxhknrp7y9mc7mp85ra8q4jw12c174m9yzbfr1vs2pkgsg5"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-xcb" ,rust-xcb-0.9))))
-    (home-page "https://github.com/quininer/x11-clipboard")
-    (synopsis "x11 clipboard support for Rust")
-    (description "This package provides x11 clipboard support for Rust.")
-    (license license:expat)))
+       (("rust-xcb" ,rust-xcb-0.9))))))
 
 (define-public rust-x11-dl-2
   (package
     (name "rust-x11-dl")
-    (version "2.18.5")
+    (version "2.21.0")
     (source
      (origin
        (method url-fetch)
@@ -3184,18 +3811,17 @@ the platform-specific getters provided by winit, or another library.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1y7yq4sfvv56shk4v3s7gvlrwk9d0migj622fl4i4c5klpiq3y9b"))))
+        (base32 "0vsiq62xpcfm0kn9zjw5c9iycvccxl22jya8wnk18lyxzqj5jwrq"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-maybe-uninit" ,rust-maybe-uninit-2)
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-once-cell" ,rust-once-cell-1)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (home-page "https://github.com/erlepereira/x11-rs.git")
     (synopsis "X11 library bindings for Rust")
     (description "This package provides X11 library bindings for Rust.")
-    (license license:cc0)))
+    (license license:expat)))
 
 (define-public rust-y4m-0.7
   (package
diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index 1c99c87bb6..7512002751 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -1901,37 +1901,6 @@ library.")
      "Rust bindings for the PangoCairo library.")
     (license license:expat)))
 
-(define-public rust-pangocairo-0.9
-  (package
-    (inherit rust-pangocairo-0.15)
-    (name "rust-pangocairo")
-    (version "0.9.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "pangocairo" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0bap3h78hdqdyln58349qjjbcv45m8a0a16c4n9fprdj1my0gldx"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-cairo-rs" ,rust-cairo-rs-0.8)
-        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
-        ("rust-glib" ,rust-glib-0.9)
-        ("rust-glib-sys" ,rust-glib-sys-0.9)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-pango" ,rust-pango-0.8)
-        ("rust-pango-sys" ,rust-pango-sys-0.9)
-        ("rust-pangocairo-sys" ,rust-pangocairo-sys-0.10)
-        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
-       #:cargo-development-inputs
-       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
-
 (define-public rust-pangocairo-sys-0.15
   (package
     (name "rust-pangocairo-sys")
@@ -1966,32 +1935,6 @@ library.")
     (description "This package provides FFI bindings to libgtk-3.")
     (license license:expat)))
 
-(define-public rust-pangocairo-sys-0.10
-  (package
-    (inherit rust-pangocairo-sys-0.15)
-    (name "rust-pangocairo-sys")
-    (version "0.10.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "pangocairo-sys" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1zlyf5vajarnxg5034b8qa5w5zajv96lfvlgiki26svpmcqip4m3"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
-        ("rust-glib-sys" ,rust-glib-sys-0.9)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-pango-sys" ,rust-pango-sys-0.9)
-        ("rust-pkg-config" ,rust-pkg-config-0.3))
-       #:cargo-development-inputs
-       (("rust-shell-words" ,rust-shell-words-0.1)
-        ("rust-tempfile" ,rust-tempfile-3))))))
-
 (define-public rust-soup-sys-0.10
   (package
     (name "rust-soup-sys")
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index a8f4c83336..3547d67fac 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -58,6 +58,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages avahi)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
@@ -76,11 +77,11 @@
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
-  #:use-module (gnu packages m4)
   #:use-module (gnu packages mail)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages pcre)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
@@ -103,21 +104,45 @@
 ;;; Please: Try to add new module packages in alphabetic order.
 ;;;
 
+(define-public rust-ab-glyph-0.2
+  (package
+    (name "rust-ab-glyph")
+    (version "0.2.21")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ab-glyph" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0f8ak16r69rz55smb7vdxh603nsknr30gkayi5fqb0pmik3z242i"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; Tests want font files.
+       #:cargo-inputs
+       (("rust-ab-glyph-rasterizer" ,rust-ab-glyph-rasterizer-0.1)
+        ("rust-libm" ,rust-libm-0.2)
+        ("rust-owned-ttf-parser" ,rust-owned-ttf-parser-0.19))))
+    (home-page "https://github.com/alexheretic/ab-glyph")
+    (synopsis "API for rasterizing OpenType font glyphs")
+    (description
+     "This package provides an API for loading, scaling, positioning and
+rasterizing OpenType font glyphs.")
+    (license license:asl2.0)))
+
 (define-public rust-ab-glyph-rasterizer-0.1
   (package
     (name "rust-ab-glyph-rasterizer")
-    (version "0.1.4")
+    (version "0.1.8")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "ab_glyph_rasterizer" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1zzz78231w849xslz9s0pwjj6gp02wfbbxdpysqhwwq1vqr5xznr"))))
+        (base32 "0ikhgzig59q8b1a1iw83sxfnvylg5gx6w2y8ynbnf231xs9if6y7"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-libm" ,rust-libm-0.2))))
     (home-page "https://github.com/alexheretic/ab-glyph")
     (synopsis "Coverage rasterization for lines, quadratic & cubic beziers")
@@ -1576,10 +1601,10 @@ threads.  This makes it robust in face of panics (it won't make your program
 deadlock, like the standard Barrier).")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-adblock-0.4
+(define-public rust-adblock-0.7
   (package
     (name "rust-adblock")
-    (version "0.4.1")
+    (version "0.7.5")
     (source
      (origin
        (method git-fetch)
@@ -1587,42 +1612,49 @@ deadlock, like the standard Barrier).")
              (url "https://github.com/brave/adblock-rust")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
-       (patches (search-patches "rust-adblock-ignore-live-tests.patch"))
        (sha256
         (base32
-         "0l2iacwkm66z6wc71wy62x2k5xllx94adrqncicxqsx203c3ljpl"))))
+         "0prlkq8am3sskg55x7b8vr4j54dmkjqldyl50isq5qyy9pff3xxs"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:cargo-test-flags
+       (list "--release" "--"
+             ;; Skip tests which require the network.
+             "--skip=check_live_from_filterlists"
+             "--skip=check_live_specific_urls"
+             "--skip=stable_serialization"
+             "--skip=stable_serialization_through_load")
+       #:cargo-inputs
        (("rust-addr" ,rust-addr-0.14)
         ("rust-base64" ,rust-base64-0.13)
         ("rust-bitflags" ,rust-bitflags-1)
-        ("rust-cssparser" ,rust-cssparser-0.25)
+        ("rust-cssparser" ,rust-cssparser-0.28)
         ("rust-flate2" ,rust-flate2-1)
         ("rust-idna" ,rust-idna-0.2)
         ("rust-itertools" ,rust-itertools-0.10)
         ("rust-lifeguard" ,rust-lifeguard-0.6)
         ("rust-once-cell" ,rust-once-cell-1)
-        ("rust-percent-encoding"
-         ,rust-percent-encoding-2)
+        ("rust-percent-encoding" ,rust-percent-encoding-2)
         ("rust-regex" ,rust-regex-1)
         ("rust-rmp-serde" ,rust-rmp-serde-0.13)
         ("rust-rmp-serde" ,rust-rmp-serde-0.15)
         ("rust-seahash" ,rust-seahash-3)
-        ("rust-selectors" ,rust-selectors-0.21)
+        ("rust-selectors" ,rust-selectors-0.23)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-twoway" ,rust-twoway-0.2)
         ("rust-url" ,rust-url-2))
        #:cargo-development-inputs
-       (("rust-criterion" ,rust-criterion-0.3)
+       (("rust-criterion" ,rust-criterion-0.4)
         ("rust-csv" ,rust-csv-1)
         ("rust-futures" ,rust-futures-0.3)
+        ("rust-mock-instant" ,rust-mock-instant-0.2)
         ("rust-reqwest" ,rust-reqwest-0.11)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-sha2" ,rust-sha2-0.9)
-        ("rust-tokio" ,rust-tokio-1.8))))
-    (native-inputs (list pkg-config openssl))
+        ("rust-tokio" ,rust-tokio-1))))
+    (native-inputs
+     (list perl))
     (home-page "https://github.com/brave/adblock-rust/")
     (synopsis "Adblock Plus syntax filter parsing and matching")
     (description "This package provides native Rust module for Adblock Plus
@@ -1768,24 +1800,25 @@ the Rust programming language.")
     (license (list license:bsd-3
                    license:zlib))))
 
-(define-public rust-aead-0.4
+(define-public rust-aead-0.5
   (package
-    (name "rust-aead-4")
-    (version "0.4.3")
+    (name "rust-aead")
+    (version "0.5.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "aead" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0xw8kp9j1whfdxhgmr2qf9xgslkg52zh6gzmhsh13y9w3s73nq8b"))))
+        (base32 "1j6pmc8pk4ha64bj9l6xzbhd85s2y1dblna2zsq83h0zy6w2w6aw"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-blobby" ,rust-blobby-0.3)
+        ("rust-bytes" ,rust-bytes-1)
+        ("rust-crypto-common" ,rust-crypto-common-0.1)
         ("rust-generic-array" ,rust-generic-array-0.14)
-        ("rust-heapless" ,rust-heapless-0.7)
-        ("rust-rand-core" ,rust-rand-core-0.6))))
+        ("rust-heapless" ,rust-heapless-0.7))))
     (home-page "https://github.com/RustCrypto/traits")
     (synopsis
      "Traits for Authenticated Encryption with Associated Data (AEAD) algorithms")
@@ -1795,6 +1828,25 @@ Data (AEAD) algorithms, such as AES-GCM as ChaCha20Poly1305, which provide a
 high-level API.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-aead-0.4
+  (package
+    (inherit rust-aead-0.5)
+    (name "rust-aead")
+    (version "0.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "aead" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0xw8kp9j1whfdxhgmr2qf9xgslkg52zh6gzmhsh13y9w3s73nq8b"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-blobby" ,rust-blobby-0.3)
+        ("rust-generic-array" ,rust-generic-array-0.14)
+        ("rust-heapless" ,rust-heapless-0.7)
+        ("rust-rand-core" ,rust-rand-core-0.6))))))
+
 (define-public rust-aead-0.3
   (package
     (name "rust-aead")
@@ -1838,8 +1890,36 @@ with Associated Data (AEAD) algorithms.")
        (("rust-generic-array" ,rust-generic-array-0.12)
         ("rust-heapless" ,rust-heapless-0.5))))))
 
+(define-public rust-aes-0.8
+  (package
+    (name "rust-aes")
+    (version "0.8.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "aes" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0haj74iqjjhxz4s6yh3v21s68snn74y93ji5d9bnr66921kzsg23"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-cipher" ,rust-cipher-0.4)
+        ("rust-cpufeatures" ,rust-cpufeatures-0.2)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-cipher" ,rust-cipher-0.4)
+        ("rust-hex-literal" ,rust-hex-literal-0.3))))
+    (home-page "https://github.com/RustCrypto/block-ciphers")
+    (synopsis "Facade for AES (Rijndael) block ciphers implementations")
+    (description "This package provides a facade for AES (Rijndael) block
+ciphers implementations.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-aes-0.7
   (package
+    (inherit rust-aes-0.8)
     (name "rust-aes")
     (version "0.7.5")
     (source
@@ -1849,7 +1929,6 @@ with Associated Data (AEAD) algorithms.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1f0sdx2fsa8w3l7xzsyi9ry3shvnnsgc0znh50if9fm95vslg2wy"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -1857,12 +1936,7 @@ with Associated Data (AEAD) algorithms.")
         ("rust-cipher" ,rust-cipher-0.3)
         ("rust-cpufeatures" ,rust-cpufeatures-0.2)
         ("rust-ctr" ,rust-ctr-0.8)
-        ("rust-opaque-debug" ,rust-opaque-debug-0.3))))
-    (home-page "https://github.com/RustCrypto/block-ciphers")
-    (synopsis "Facade for AES (Rijndael) block ciphers implementations")
-    (description "This package provides a facade for AES (Rijndael) block
-ciphers implementations.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-opaque-debug" ,rust-opaque-debug-0.3))))))
 
 (define-public rust-aes-0.6
   (package
@@ -1924,29 +1998,56 @@ ciphers implementations.")
         ("rust-aesni" ,rust-aesni-0.6)
         ("rust-block-cipher-trait" ,rust-block-cipher-trait-0.6))))))
 
-(define-public rust-aes-gcm-0.8
+(define-public rust-aes-ctr-0.6
+  (package
+    (name "rust-aes-ctr")
+    (version "0.6.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "aes-ctr" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32 "0qspjxzrclnb83501595y01dhc0km1ssrbjnwlxhcrsdwp6w6abp"))))
+  (build-system cargo-build-system)
+  (arguments
+   `(#:cargo-inputs
+     (("rust-aes-soft" ,rust-aes-soft-0.6)
+      ("rust-aesni" ,rust-aesni-0.10)
+      ("rust-cipher" ,rust-cipher-0.2)
+      ("rust-ctr", rust-ctr-0.6))
+     #:cargo-development-inputs
+     (("rust-cipher" ,rust-cipher-0.2))))
+  (home-page "https://github.com/RustCrypto/block-ciphers/tree/master/aes")
+  (synopsis "Pure Rust implementation of AES")
+  (description "A pure Rust implementation of the Advanced Encryption Standard
+(AES).  Use the aes crate if possible, as the aes-ctr has been deprecated.")
+  (license (list license:expat license:asl2.0))))
+
+(define-public rust-aes-gcm-0.10
   (package
     (name "rust-aes-gcm")
-    (version "0.8.0")
+    (version "0.10.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "aes-gcm" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1nl8iwlh209y1vj9n2lm1a70i69clvg2z6x69bi4dgdrpgxbay2j"))))
+        (base32 "0z2429v2d2wyf809h2wc4vwwibwypz3y4p7sn4kzkjb91ip3dqc2"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-aead" ,rust-aead-0.3)
-        ("rust-aes" ,rust-aes-0.6)
-        ("rust-cipher" ,rust-cipher-0.2)
-        ("rust-ctr" ,rust-ctr-0.6)
-        ("rust-ghash" ,rust-ghash-0.3)
+       (("rust-aead" ,rust-aead-0.5)
+        ("rust-aes" ,rust-aes-0.8)
+        ("rust-cipher" ,rust-cipher-0.4)
+        ("rust-ctr" ,rust-ctr-0.9)
+        ("rust-ghash" ,rust-ghash-0.5)
         ("rust-subtle" ,rust-subtle-2)
         ("rust-zeroize" ,rust-zeroize-1))
        #:cargo-development-inputs
-       (("rust-hex-literal" ,rust-hex-literal-0.2))))
+       (("rust-aead" ,rust-aead-0.5)
+        ("rust-hex-literal" ,rust-hex-literal-0.3))))
     (home-page "https://github.com/RustCrypto/AEADs")
     (synopsis "AES-GCM (Galois/Counter Mode) Authenticated Encryption")
     (description "This package provides a pure Rust implementation of the
@@ -1955,6 +2056,30 @@ Data (AEAD) Cipher with optional architecture-specific hardware
 acceleration.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-aes-gcm-0.8
+  (package
+    (inherit rust-aes-gcm-0.10)
+    (name "rust-aes-gcm")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "aes-gcm" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1nl8iwlh209y1vj9n2lm1a70i69clvg2z6x69bi4dgdrpgxbay2j"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-aead" ,rust-aead-0.3)
+        ("rust-aes" ,rust-aes-0.6)
+        ("rust-cipher" ,rust-cipher-0.2)
+        ("rust-ctr" ,rust-ctr-0.6)
+        ("rust-ghash" ,rust-ghash-0.3)
+        ("rust-subtle" ,rust-subtle-2)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-hex-literal" ,rust-hex-literal-0.2))))))
+
 (define-public rust-aes-gcm-0.6
   (package
     (inherit rust-aes-gcm-0.8)
@@ -2171,6 +2296,45 @@ This package is deprecated and was replaced by the @code{aes} crate.")
      "Fuzz Rust code with american-fuzzy-lop.")
     (license license:asl2.0)))
 
+(define-public rust-ahash-0.8
+  (package
+    (name "rust-ahash")
+    (version "0.8.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ahash" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0bzcsxdl2wd6j2p4214qh9sqkqn69gi7f9lk1xi8yj063r6zd69c"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-atomic-polyfill" ,rust-atomic-polyfill-1)
+        ("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-const-random" ,rust-const-random-0.1)
+        ("rust-getrandom" ,rust-getrandom-0.2)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-version-check" ,rust-version-check-0.9))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-fnv" ,rust-fnv-1)
+        ("rust-fxhash" ,rust-fxhash-0.2)
+        ("rust-hashbrown" ,rust-hashbrown-0.12)
+        ("rust-hex" ,rust-hex-0.4)
+        ("rust-no-panic" ,rust-no-panic-0.1)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-seahash" ,rust-seahash-4)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/tkaitchuck/ahash")
+    (synopsis
+     "Non-cryptographic hash function using AES-NI")
+    (description
+     "This package provides a non-cryptographic hash function using AES-NI for
+high performance.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-ahash-0.7
   (package
     (name "rust-ahash")
@@ -2276,20 +2440,18 @@ using AES-NI for high performance.")
 (define-public rust-aho-corasick-0.7
   (package
     (name "rust-aho-corasick")
-    (version "0.7.18")
+    (version "0.7.20")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "aho-corasick" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0vv50b3nvkhyy7x7ip19qnsq11bqlnffkmj2yx2xlyk5wzawydqy"))))
+        (base32 "1b3if3nav4qzgjz9bf75b2cv2h2yisrqfs0np70i38kgz4cn94yc"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-memchr" ,rust-memchr-2))
-       #:cargo-development-inputs
-       (("rust-doc-comment" ,rust-doc-comment-0.3))))
+       (("rust-memchr" ,rust-memchr-2))))
     (home-page "https://github.com/BurntSushi/aho-corasick")
     (synopsis "Fast multiple substring searching")
     (description "This package provides a fast multiple substring searching.")
@@ -2346,64 +2508,93 @@ using AES-NI for high performance.")
         ("rust-rand" ,rust-rand-0.3)
         ("rust-rustc-serialize" ,rust-rustc-serialize-0.3))))))
 
-(define-public rust-alacritty-config-derive-0.1
+(define-public rust-alacritty-config-0.1
+  (package
+    (name "rust-alacritty-config")
+    (version "0.1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "alacritty-config" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0imj95kqnpb6mlgdn4bs11lm472x8j5vf58wz14hbcfw2kag4fw6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-yaml" ,rust-serde-yaml-0.8)
+        ("rust-winit" ,rust-winit-0.28))))
+    (home-page "https://github.com/alacritty/alacritty")
+    (synopsis "Alacritty configuration abstractions")
+    (description "This package provides configuration abstractions for the
+Alacritty terminal emulator.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-alacritty-config-derive-0.2
   (package
     (name "rust-alacritty-config-derive")
-    (version "0.1.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "alacritty_config_derive" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0dn3cg233jyi06xz8q1vfgjikdpcjdid36kqnl0yawdqpm2lq13p"))))
+    (version "0.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "alacritty-config-derive" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1vasc1fagkih5zcdyi9lwc9bprmr0zq0zyyakfqsm9pnr9x60lyp"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-1))))
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-alacritty-config" ,rust-alacritty-config-0.1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-yaml" ,rust-serde-yaml-0.8))))
     (home-page "https://github.com/alacritty/alacritty")
     (synopsis "Failure resistant deserialization derive")
     (description
      "This package provides a failure resistant deserialization derive.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-alacritty-terminal-0.15
+(define-public rust-alacritty-terminal-0.18
   (package
     (name "rust-alacritty-terminal")
-    (version "0.15.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "alacritty_terminal" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1qv8zv20qgn407v8m196p68yddvhalcppc21702698cj99b45ckc"))))
+    (version "0.18.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "alacritty-terminal" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1dk6zp5646ss0l9ka48jf6ajdzaq0zxl2pndblfl7a0f9lmwkwfx"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-alacritty-config-derive" ,rust-alacritty-config-derive-0.1)
+     `(#:cargo-inputs
+       (("rust-alacritty-config" ,rust-alacritty-config-0.1)
+        ("rust-alacritty-config-derive" ,rust-alacritty-config-derive-0.2)
         ("rust-base64" ,rust-base64-0.13)
         ("rust-bitflags" ,rust-bitflags-1)
-        ("rust-dirs" ,rust-dirs-2)
+        ("rust-dirs" ,rust-dirs-4)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-log" ,rust-log-0.4)
         ("rust-mio" ,rust-mio-0.6)
         ("rust-mio-anonymous-pipes" ,rust-mio-anonymous-pipes-0.2)
         ("rust-mio-extras" ,rust-mio-extras-2)
         ("rust-miow" ,rust-miow-0.3)
-        ("rust-nix" ,rust-nix-0.23)
-        ("rust-parking-lot" ,rust-parking-lot-0.11)
+        ("rust-nix" ,rust-nix-0.24)
+        ("rust-parking-lot" ,rust-parking-lot-0.12)
         ("rust-regex-automata" ,rust-regex-automata-0.1)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-yaml" ,rust-serde-yaml-0.8)
-        ("rust-signal-hook" ,rust-signal-hook-0.1)
+        ("rust-signal-hook" ,rust-signal-hook-0.3)
+        ("rust-signal-hook-mio" ,rust-signal-hook-mio-0.2)
         ("rust-unicode-width" ,rust-unicode-width-0.1)
         ("rust-vte" ,rust-vte-0.10)
-        ("rust-winapi" ,rust-winapi-0.3))))
+        ("rust-windows-sys" ,rust-windows-sys-0.36))
+       #:cargo-development-inputs (("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://github.com/alacritty/alacritty")
     (synopsis "Library for writing terminal emulators")
     (description
@@ -2585,6 +2776,36 @@ be used with the stdlib.")
 applications.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-android-activity-0.4
+  (package
+    (name "rust-android-activity")
+    (version "0.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "android-activity" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "19imf29l08n7qlkqk3ri3m3nzfhm0lmkqizafs68i2ysbq2a0xvw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t     ; Only supports compiling for Android.
+       #:cargo-inputs
+       (("rust-android-properties" ,rust-android-properties-0.2)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-jni-sys" ,rust-jni-sys-0.3)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-ndk" ,rust-ndk-0.7)
+        ("rust-ndk-context" ,rust-ndk-context-0.1)
+        ("rust-ndk-sys" ,rust-ndk-sys-0.4)
+        ("rust-num-enum" ,rust-num-enum-0.5))))
+    (home-page "https://github.com/rust-mobile/android-activity")
+    (synopsis "Glue for building Rust applications on Android")
+    (description "This package provides the glue needed for building Rust
+applications on Android with NativeActivity or GameActivity.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-android-glue-0.2
   (package
     (name "rust-android-glue")
@@ -2680,6 +2901,23 @@ it outputs messages to Android's logcat.")
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-log" ,rust-log-0.4))))))
 
+(define-public rust-android-properties-0.2
+  (package
+    (name "rust-android-properties")
+    (version "0.2.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "android-properties" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "016slvg269c0y120p9qd8vdfqa2jbw4j0g18gfw6p3ain44v4zpw"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/miklelappo/android-properties")
+    (synopsis "Rust-based Android properties wrapper")
+    (description
+     "This package provides a Rust-based Android properties wrapper.")
+    (license license:expat)))
+
 (define-public rust-android-system-properties-0.1
   (package
     (name "rust-android-system-properties")
@@ -2748,6 +2986,26 @@ it outputs messages to Android's logcat.")
 escape codes.")
     (license license:mpl2.0)))
 
+(define-public rust-anstyle-0.2
+  (package
+    (name "rust-anstyle")
+    (version "0.2.8")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "anstyle" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "10kdjcyks9hcvmhk44afagnrxi4pczg6jnldjdadzbi4kyi2wqah"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-lexopt" ,rust-lexopt-0.3))))
+    (home-page "https://github.com/rust-cli/anstyle")
+    (synopsis "ANSI text styling")
+    (description "This package provides ANSI text styling.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-antidote-1
   (package
     (name "rust-antidote")
@@ -2772,7 +3030,7 @@ escape codes.")
 (define-public rust-anyhow-1
   (package
     (name "rust-anyhow")
-    (version "1.0.65")
+    (version "1.0.69")
     (source
      (origin
        (method url-fetch)
@@ -2780,8 +3038,7 @@ escape codes.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "00jnbylbji1wxvgpk6fcpcxyh4firn223w0lpdvxm1117r71l5lq"))))
+        (base32 "007q0cw3zv8y5314c41vjyqznrqvim5ydv0306wy9mn34zbznji2"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -2939,18 +3196,17 @@ last place (ULPs) comparisons.")
 (define-public rust-arbitrary-1
   (package
     (name "rust-arbitrary")
-    (version "1.2.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "arbitrary" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "106qgz0qxs202xlvjfyvw8dkb6ynr1ymmcclfh89l56mj2zpzm19"))))
+    (version "1.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "arbitrary" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0km5cj0sxfzv863blfjpz49mlikaxbaslyzk463i9jn1fgzril72"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-derive-arbitrary" ,rust-derive-arbitrary-1))))
     (home-page "https://github.com/rust-fuzz/arbitrary")
     (synopsis "Trait for generating structured data from unstructured data")
@@ -3160,6 +3416,28 @@ coverage-guided, mutation-based fuzzers.")
     (description "Derive-based argument parser optimized for code size")
     (license license:bsd-3)))
 
+(define-public rust-argmax-0.3
+  (package
+    (name "rust-argmax")
+    (version "0.3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "argmax" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0ricjx82rdnycjndlmaiwxc85lq3gh4av44xlkjwbwm7wgskwzjv"))))
+    (build-system cargo-build-system)
+    (arguments
+    `(#:cargo-inputs
+      (("rust-lazy-static" ,rust-lazy-static-1)
+       ("rust-libc" ,rust-libc-0.2)
+       ("rust-nix" ,rust-nix-0.24))))
+    (home-page "https://github.com/sharkdp/argmax")
+    (synopsis "Rust library to deal with 'argument too long' errors")
+    (description "This package provides a rust library to deal with argument
+too long errors.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-arr-macro-impl-0.1
   (package
     (name "rust-arr-macro-impl")
@@ -3693,25 +3971,6 @@ extracted from Askama.")
 Askama.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-askama-derive-0.10
-  (package
-    (inherit rust-askama-derive-0.11)
-    (name "rust-askama-derive")
-    (version "0.10.5")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "askama_derive" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "08jmqb4lq5cvfjjcq7kjk5q4589zlsvc3ld35yfjyf4hqb22aafa"))))
-    (arguments
-     (list #:skip-build? #t
-           #:cargo-inputs
-           `(("rust-askama-shared" ,rust-askama-shared-0.11)
-             ("rust-proc-macro2" ,rust-proc-macro2-1)
-             ("rust-syn" ,rust-syn-1))))))
-
 (define-public rust-askama-0.11
   (package
     (name "rust-askama")
@@ -3737,27 +3996,6 @@ Askama.")
 library for Rust.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-askama-0.10
-  (package
-    (inherit rust-askama-0.11)
-    (name "rust-askama")
-    (version "0.10.5")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "askama" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0d1iwywdgw3nba2iphayw8sfm3s8m9izwnhfar707qa7ds5p766j"))))
-    (arguments
-     (list #:skip-build? #t
-           #:cargo-inputs
-           `(("rust-askama-derive" ,rust-askama-derive-0.10)
-             ("rust-askama-escape" ,rust-askama-escape-0.10)
-             ("rust-askama-shared" ,rust-askama-shared-0.11)
-             ("rust-mime" ,rust-mime-0.3)
-             ("rust-mime-guess" ,rust-mime-guess-2))))))
-
 (define-public rust-asn1-derive-0.13
   (package
     (name "rust-asn1-derive")
@@ -4171,6 +4409,29 @@ objects are the same.")
      "This package asserts that a value matches a pattern in Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-associative-cache-1
+  (package
+    (name "rust-associative-cache")
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "associative-cache" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "05lg0mwpqfqb9zh958x0358x1k5ngmmmbzjnp0imrd8vzhrn40a6"))))
+    (build-system cargo-build-system)
+    (arguments
+     ;; 2 doctests fail because rand is not declared
+     `(#:tests? #false
+       #:cargo-inputs (("rust-rand" ,rust-rand-0.7))))
+    (home-page "https://github.com/fitzgen/associative-cache")
+    (synopsis "Associative cache with fixed-size capacity")
+    (description
+     "This package provides a generic N-way associative cache with fixed-size
+capacity and random or least recently used (LRU) replacement.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-aster-0.41
   (package
     (name "rust-aster")
@@ -4251,7 +4512,7 @@ Rust.")
 (define-public rust-async-compression-0.3
   (package
     (name "rust-async-compression")
-    (version "0.3.7")
+    (version "0.3.15")
     (source
      (origin
        (method url-fetch)
@@ -4259,13 +4520,10 @@ Rust.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0dwm5zgi560m1xy30k3a4sg96mlfkjdk8jl6a1dk4d72ah8iyb5p"))))
+         "0fnnpbsljngmrj8amhw6yg164bl6x4r43mr093g1ps9rmvbpqb4l"))))
     (build-system cargo-build-system)
     (arguments
-     ;; FIXME: Tests fail with "error[E0432]: unresolved import `syn::export`"
-     ;; when compiling ntest_test_cases v0.3.4.
-     `(#:tests? #false
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-brotli" ,rust-brotli-3)
         ("rust-bytes" ,rust-bytes-0.5)
         ("rust-bzip2" ,rust-bzip2-0.4)
@@ -4278,23 +4536,25 @@ Rust.")
         ("rust-tokio" ,rust-tokio-0.3)
         ("rust-tokio" ,rust-tokio-1)
         ("rust-xz2" ,rust-xz2-0.1)
-        ("rust-zstd" ,rust-zstd-0.6)
-        ("rust-zstd-safe" ,rust-zstd-safe-3))
+        ("rust-zstd" ,rust-zstd-0.11)
+        ("rust-zstd-safe" ,rust-zstd-safe-5))
        #:cargo-development-inputs
        (("rust-bytes" ,rust-bytes-1)
+        ("rust-bytes" ,rust-bytes-0.6)
         ("rust-bytes" ,rust-bytes-0.5)
         ("rust-futures" ,rust-futures-0.3)
         ("rust-futures-test" ,rust-futures-test-0.3)
-        ("rust-ntest" ,rust-ntest-0.3)
-        ("rust-proptest" ,rust-proptest-0.9)
-        ("rust-proptest-derive" ,rust-proptest-derive-0.1)
-        ("rust-rand" ,rust-rand-0.7)
-        ("rust-timebomb" ,rust-timebomb-0.1)
+        ("rust-ntest" ,rust-ntest-0.8)
+        ("rust-proptest" ,rust-proptest-1)
+        ("rust-proptest-derive" ,rust-proptest-derive-0.3)
+        ("rust-rand" ,rust-rand-0.8)
         ("rust-tokio" ,rust-tokio-1)
         ("rust-tokio" ,rust-tokio-0.2)
         ("rust-tokio" ,rust-tokio-0.3)
+        ("rust-tokio-util" ,rust-tokio-util-0.6)
+        ("rust-tokio-util" ,rust-tokio-util-0.5)
         ("rust-tokio-util" ,rust-tokio-util-0.4)
-        ("rust-tokio-util" ,rust-tokio-util-0.6))))
+        ("rust-tokio-util" ,rust-tokio-util-0.3))))
     (home-page "https://github.com/Nemo157/async-compression")
     (synopsis "Adaptors between compression crates and Rust's modern asynchronous IO types")
     (description "This package provides adaptors between compression crates
@@ -5353,17 +5613,17 @@ iteratively in Rust.")
 in Rust.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-av-metrics-0.7
+(define-public rust-av-metrics-0.9
   (package
     (name "rust-av-metrics")
-    (version "0.7.2")
+    (version "0.9.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "av-metrics" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1y1q61lhahljxh1l2brp8v795qf6g7gr4h4vdmq43g5z5pq2dw50"))))
+        (base32 "0f9b7hhxnn2cn6zra20iqa90n89rih63sjfjq0i5cach84wqnqqk"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -5374,9 +5634,9 @@ in Rust.")
         ("rust-rayon" ,rust-rayon-1)
         ("rust-serde" ,rust-serde-1)
         ("rust-thiserror" ,rust-thiserror-1)
-        ("rust-v-frame" ,rust-v-frame-0.2))
+        ("rust-v-frame" ,rust-v-frame-0.3))
        #:cargo-development-inputs
-       (("rust-criterion" ,rust-criterion-0.3)
+       (("rust-criterion" ,rust-criterion-0.4)
         ("rust-y4m" ,rust-y4m-0.7))))
     (home-page "https://github.com/rust-av/av-metrics")
     (synopsis "Collection of algorithms for measuring audio/video metrics")
@@ -5385,6 +5645,36 @@ in Rust.")
 audio/video metrics.")
     (license license:expat)))
 
+(define-public rust-av1-grain-0.2
+  (package
+    (name "rust-av1-grain")
+    (version "0.2.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "av1-grain" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "07kzx7qma0msfla0z66mys2s7f5fp18zb78izkxw40lcq7qacv3g"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-arrayvec" ,rust-arrayvec-0.7)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-nom" ,rust-nom-7)
+        ("rust-num-rational" ,rust-num-rational-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-v-frame" ,rust-v-frame-0.3))
+       #:cargo-development-inputs
+       (("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-quickcheck-macros" ,rust-quickcheck-macros-1))))
+    (home-page "https://github.com/rust-av/av1-grain")
+    (synopsis "Helpers for generating and parsing AV1 film grain data")
+    (description "This package procides helpers for generating and parsing AV1
+film grain data.")
+    (license license:bsd-2)))
+
 (define-public rust-average-0.9
   (package
     (inherit rust-average-0.10)
@@ -5618,21 +5908,6 @@ built on the Actix ecosystem.")
 trace (backtrace) at runtime in a Rust program.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-backtrace-0.3.35
-  (package
-    (inherit rust-backtrace-0.3)
-    (name "rust-backtrace")
-    (version "0.3.35")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "backtrace" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0mfwbb6832rh1za304w8x37bvs9fjbybpmmz0iksqfzsaf108w8k"))))))
-
 (define-public rust-bare-metal-1
   (package
     (name "rust-bare-metal")
@@ -5749,28 +6024,41 @@ c6e7d37.  However, this package works only up to 128 bytes.")
      `(#:cargo-development-inputs
        (("rust-criterion" ,rust-criterion-0.4)
         ("rust-rand" ,rust-rand-0.8)
-        ("rust-rstest" ,rust-rstest-0.15)
-        ("rust-rstest-reuse" ,rust-rstest-reuse-0.4)
-        ("rust-structopt" ,rust-structopt-0.3))
-       #:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'relax-requirements
-                    (lambda _
-                      (substitute* "Cargo.toml"
-                        (("0.12.0")
-                         ,(package-version rust-rstest-0.15))
-                        (("0.3.0")
-                         ,(package-version rust-rstest-reuse-0.4))))))))
+        ("rust-rstest" ,rust-rstest-0.12)
+        ("rust-rstest-reuse" ,rust-rstest-reuse-0.3)
+        ("rust-structopt" ,rust-structopt-0.3))))
     (home-page "https://github.com/marshallpierce/rust-base64")
     (synopsis "Encodes and decodes base64 as bytes or utf8")
     (description
      "This package encodes and decodes base64 as bytes or utf8.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-base64-0.20
+  (package
+    (inherit rust-base64-0.21)
+    (name "rust-base64")
+    (version "0.20.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "base64" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1r855djiv8rirg37w5arazk42ya5gm5gd2bww75v14w0sy02i8hf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.4)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rstest" ,rust-rstest-0.12)
+        ("rust-rstest-reuse" ,rust-rstest-reuse-0.3)
+        ("rust-structopt" ,rust-structopt-0.3))))))
+
 (define-public rust-base64-0.13
   (package
     (inherit rust-base64-0.21)
     (name "rust-base64")
-    (version "0.13.0")
+    (version "0.13.1")
     (source
      (origin
        (method url-fetch)
@@ -5778,20 +6066,16 @@ c6e7d37.  However, this package works only up to 128 bytes.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1z82g23mbzjgijkpcrilc7nljpxpvpf7zxf6iyiapkgka2ngwkch"))))
+        (base32 "1s494mqmzjb766fy1kqlccgfg2sdcjb6hzbvzqv2jw65fdi5h6wy"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (substitute* "Cargo.toml"
+                  (("=0\\.3\\.2") "^0.3.2"))))))
     (arguments
-     `(#:skip-build? #t
-       #:cargo-development-inputs
+     `(#:cargo-development-inputs
        (("rust-criterion" ,rust-criterion-0.3)
         ("rust-rand" ,rust-rand-0.6)
-        ("rust-structopt" ,rust-structopt-0.3))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-criterion-minor-version
-           (lambda* _
-             (substitute* "Cargo.toml"
-               (("0\\.3\\.2")
-                ,(package-version rust-criterion-0.3))))))))))
+        ("rust-structopt" ,rust-structopt-0.3))))))
 
 (define-public rust-base64-0.12
   (package
@@ -6152,40 +6436,17 @@ and no more (caveat: black_box is still missing!).")
 that uses Serde for transforming structs into bytes and vice versa!")
     (license license:expat)))
 
-(define-public rust-bincode-0.8
+(define-public rust-bindgen-0.64
   (package
-    (inherit rust-bincode-1)
-    (name "rust-bincode")
-    (version "0.8.1")
+    (name "rust-bindgen")
+    (version "0.64.0")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "bincode" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (uri (crate-uri "bindgen" version))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0nbj0lwykwa1a7sa4303rxgpng9p2hcz9s5d5qcrckrpmcxjsjkf"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1)
-        ("rust-num-traits" ,rust-num-traits-0.1)
-        ("rust-serde" ,rust-serde-1))
-       #:cargo-development-inputs
-       (("rust-serde-bytes" ,rust-serde-bytes-0.10)
-        ("rust-serde-derive" ,rust-serde-derive-1))))))
-
-(define-public rust-bindgen-0.64
-  (package
-    (name "rust-bindgen")
-    (version "0.64.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "bindgen" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1d0zmfc5swjgaydbamxb4xm687ahgv18dbcpvrzbf39665h3w964"))))
+        (base32 "1d0zmfc5swjgaydbamxb4xm687ahgv18dbcpvrzbf39665h3w964"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -6204,12 +6465,39 @@ that uses Serde for transforming structs into bytes and vice versa!")
         ("rust-shlex" ,rust-shlex-1)
         ("rust-syn" ,rust-syn-1)
         ("rust-which" ,rust-which-4))))
+    (inputs
+     (list clang))
     (home-page "https://rust-lang.github.io/rust-bindgen/")
     (synopsis "Generate Rust FFI bindings to C and C++ libraries")
     (description "This package can be used to automatically generate Rust FFI
 bindings to C and C++ libraries.")
     (license license:bsd-3)))
 
+(define-public rust-bindgen-0.63
+  (package
+    (inherit rust-bindgen-0.64)
+    (name "rust-bindgen")
+    (version "0.63.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bindgen" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "119qkny3swlx8zm0jxp19hizpkym6arh8mlv9ylskch030961n1n"))))))
+
+(define-public rust-bindgen-0.61
+  (package
+    (inherit rust-bindgen-0.64)
+    (name "rust-bindgen")
+    (version "0.61.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "bindgen" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "16phlka8ykx28jlk7l637vlr9h01j8mh2s0d6km6z922l5c2w0la"))))))
+
 (define-public rust-bindgen-0.59
   (package
     (inherit rust-bindgen-0.64)
@@ -6221,7 +6509,30 @@ bindings to C and C++ libraries.")
        (uri (crate-uri "bindgen" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1f4fpycxmbrqk8r2x9brhfgjh86mzc6bngn4a9631x78b2jaklib"))))))
+        (base32 "1f4fpycxmbrqk8r2x9brhfgjh86mzc6bngn4a9631x78b2jaklib"))))
+    (arguments
+     `(#:tests? #f  ; Only the build phase, to make sure we have the right inputs.
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cexpr" ,rust-cexpr-0.6)
+        ("rust-clang-sys" ,rust-clang-sys-1)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-env-logger" ,rust-env-logger-0.9)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-lazycell" ,rust-lazycell-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-peeking-take-while" ,rust-peeking-take-while-0.1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-rustc-hash" ,rust-rustc-hash-1)
+        ("rust-shlex" ,rust-shlex-1)
+        ("rust-which" ,rust-which-4))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-2)
+        ("rust-diff" ,rust-diff-0.1)
+        ("rust-shlex" ,rust-shlex-1)
+        ("rust-tempfile" ,rust-tempfile-3))))))
 
 (define-public rust-bindgen-0.58
   (package
@@ -6968,7 +7279,7 @@ types.")
 (define-public rust-bit-set-0.5
   (package
     (name "rust-bit-set")
-    (version "0.5.1")
+    (version "0.5.3")
     (source
      (origin
        (method url-fetch)
@@ -6976,15 +7287,13 @@ types.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "100ac8867bvbx9kv634w4xjk98b71i8nq4wdcvpf3cf4ha4j6k78"))))
+        (base32 "1wcm9vxi00ma4rcxkl3pzzjli6ihrpn9cfdi0c5b4cvga2mxs007"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-bit-vec" ,rust-bit-vec-0.5))
+     `(#:cargo-inputs
+       (("rust-bit-vec" ,rust-bit-vec-0.6))
        #:cargo-development-inputs
-       (("rust-rand" ,rust-rand-0.4))))
+       (("rust-rand" ,rust-rand-0.3))))
     (home-page "https://github.com/contain-rs/bit-set")
     (synopsis "Set of bits")
     (description
@@ -7124,8 +7433,41 @@ types.")
      "This crate provides macros to generate bitfield-like struct.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-bitflags-2
+  (package
+    (name "rust-bitflags")
+    (version "2.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bitflags" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1cxcbx6mm1w2d7x9xd2vcqgr69a2ydw9k110ir7rrkmmrdwyn2y7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-arbitrary" ,rust-arbitrary-1)
+        ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-arbitrary" ,rust-arbitrary-1)
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-test" ,rust-serde-test-1)
+        ("rust-trybuild" ,rust-trybuild-1))))
+    (home-page "https://github.com/bitflags/bitflags")
+    (synopsis "Macro to generate structures which behave like bitflags")
+    (description "This package provides a macro to generate structures which
+behave like a set of bitflags.")
+    (license (list license:asl2.0
+                   license:expat))))
+
 (define-public rust-bitflags-1
   (package
+    (inherit rust-bitflags-2)
     (name "rust-bitflags")
     (version "1.3.2")
     (source
@@ -7135,7 +7477,6 @@ types.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "12ki6w8gn1ldq7yz9y680llwk5gmrhrzszaa17g1sbrw2r2qvwxy"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:tests? #f                      ; Tests require rust-1.46 or newer.
        #:cargo-inputs
@@ -7147,13 +7488,7 @@ types.")
         ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-trybuild" ,rust-trybuild-1)
-        ("rust-walkdir" ,rust-walkdir-2))))
-    (home-page "https://github.com/bitflags/bitflags")
-    (synopsis "Macro to generate structures which behave like bitflags")
-    (description "This package provides a macro to generate structures which
-behave like a set of bitflags.")
-    (license (list license:asl2.0
-                   license:expat))))
+        ("rust-walkdir" ,rust-walkdir-2))))))
 
 ;; XXX: The package below is meant to fix rust-nix-0.22, which has the
 ;; following requirements for bitflags version: ">=1.1.0 <1.3.0", and every
@@ -7281,7 +7616,7 @@ bit-packing.  It is a port of simdcomp C library to Rust.")
 (define-public rust-bitreader-0.3
   (package
     (name "rust-bitreader")
-    (version "0.3.4")
+    (version "0.3.6")
     (source
      (origin
        (method url-fetch)
@@ -7290,7 +7625,7 @@ bit-packing.  It is a port of simdcomp C library to Rust.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "06wlzf8ra7k8ya0m71dq0kxbaalaan48dymairn9q8s4gld1hy4i"))))
+         "0hcrn2s483si9j6v3gykn3029g4m2s5rifd9czz9iznihlfafknq"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -7339,6 +7674,33 @@ streams in big-endian and little-endian formats.")
          "00a6wy54s1dmadm5xz8k2cbsd7ixvm48mlc45bk0fdy0pbra6jk1"))))
     (arguments `(#:skip-build? #t))))
 
+(define-public rust-bitvec-1
+  (package
+    (name "rust-bitvec")
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "bitvec" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "173ydyj2q5vwj88k6xgjnfsshs4x9wbvjjv7sm0h36r34hn87hhv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-funty" ,rust-funty-2)
+        ("rust-radium" ,rust-radium-0.7)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-tap" ,rust-tap-1)
+        ("rust-wyz" ,rust-wyz-0.5))
+       #:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1))))
+    (home-page "https://bitvecto-rs.github.io/bitvec")
+    (synopsis "Manipulate memory, bit by bit")
+    (description
+     "This package provides a crate for manipulating memory, bit by bit.")
+    (license license:expat)))
+
 (define-public rust-bitvec-0.22
   (package
     (name "rust-bitvec")
@@ -7603,6 +7965,28 @@ storage.")
 extension of blocks.")
     (license license:expat)))
 
+(define-public rust-block2-0.2
+  (package
+    (name "rust-block2")
+    (version "0.2.0-alpha.6")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "block2" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0hpcdl81rmwvhfni9413hrg1wd4xwf6vhch3yv15bxs42wyfdncd"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; Tests require gcc-objc.
+       #:cargo-inputs
+       (("rust-block-sys" ,rust-block-sys-0.1)
+        ("rust-objc2-encode" ,rust-objc2-encode-2))))
+    (home-page "https://github.com/madsmtm/objc2")
+    (synopsis "Apple's C language extension of blocks")
+    (description "This package contains Apple's C language extension of blocks.")
+    (license license:expat)))
+
 (define-public rust-block-buffer-0.10
   (package
     (name "rust-block-buffer")
@@ -7792,26 +8176,41 @@ and block modes.")
        (("rust-aes" ,rust-aes-0.6)
         ("rust-hex-literal" ,rust-hex-literal-0.2))))))
 
-(define-public rust-block-padding-0.2
+(define-public rust-block-padding-0.3
   (package
     (name "rust-block-padding")
-    (version "0.2.0")
+    (version "0.3.2")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "block-padding" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32
-          "0x6b2dgink7rc3755r8jl4kmndydy5563h3wz7z9jqrb25ygv2y9"))))
+         (base32 "0y5v92alqzn9ikmyqfl3a4j6va87j967ii2n3jh2h330z4nyr40a"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-generic-array" ,rust-generic-array-0.14))))
     (home-page "https://github.com/RustCrypto/utils")
     (synopsis "Padding and unpadding of messages divided into blocks")
     (description
      "Padding and unpadding of messages divided into blocks.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-block-padding-0.2
+  (package
+    (inherit rust-block-padding-0.3)
+    (name "rust-block-padding")
+    (version "0.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "block-padding" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0x6b2dgink7rc3755r8jl4kmndydy5563h3wz7z9jqrb25ygv2y9"))))))
+
 (define-public rust-block-padding-0.1
   (package
     (inherit rust-block-padding-0.2)
@@ -7830,6 +8229,28 @@ and block modes.")
      `(#:cargo-inputs
        (("rust-byte-tools" ,rust-byte-tools-0.3))))))
 
+(define-public rust-block-sys-0.1
+  (package
+    (name "rust-block-sys")
+    (version "0.1.0-beta.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "block-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0ihiar08hk0das4q0ii1gsmql975z3rslli1h13jb44hxr0mg98g"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; Tests require gcc-objc.
+       #:cargo-inputs
+       (("rust-objc-sys" ,rust-objc-sys-0.2))))
+    (home-page "https://github.com/madsmtm/objc2")
+    (synopsis "Raw bindings to Apple's C language extension of blocks")
+    (description "This package contains raw bindings to Apple's C language
+extension of blocks.")
+    (license license:expat)))
+
 (define-public rust-blocking-1
   (package
     (name "rust-blocking")
@@ -7899,6 +8320,70 @@ programs.")
         ("rust-parking" ,rust-parking-1)
         ("rust-waker-fn" ,rust-waker-fn-1))))))
 
+(define-public rust-botan-0.8
+  (package
+    (name "rust-botan")
+    (version "0.8.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "botan" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "08bmiyn7c3b0dgx20w6hr28d9jcq7cj78cchr84pc686sb2s41ik"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-botan-sys" ,rust-botan-sys-0.8)
+        ("rust-cstr-core" ,rust-cstr-core-0.2)
+        ("rust-cty" ,rust-cty-0.2))))
+    (inputs (list botan))
+    (home-page "https://botan.randombit.net/")
+    (synopsis "Rust wrapper for Botan cryptography library")
+    (description "Rust wrapper for Botan cryptography library")
+    (license license:expat)))
+
+(define-public rust-botan-sys-0.8
+  (package
+    (name "rust-botan-sys")
+    (version "0.8.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "botan-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1m11zblxfanrhl97j7z3ap7n17rr8j0rg91sr7f9j6y2bsniaz1x"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-botan-src" ,rust-botan-src-0.21703)
+        ("rust-cty" ,rust-cty-0.2))))
+    (inputs (list botan))
+    (home-page "https://botan.randombit.net/")
+    (synopsis "FFI wrapper for Botan cryptography library")
+    (description "FFI wrapper for Botan cryptography library")
+    (license license:expat)))
+
+(define-public rust-botan-src-0.21703
+  (package
+    (name "rust-botan-src")
+    (version "0.21703.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "botan-src" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0s2ad9q84qsrllfsbj7hjhn7gr3hab9ng6lwzwqmimia6yvja8y8"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin (delete-file-recursively "botan")))))
+    (build-system cargo-build-system)
+    (arguments '(#:skip-build? #t))
+    (home-page "https://botan.randombit.net/")
+    (synopsis "Sources of Botan cryptography library")
+    (description "Sources of Botan cryptography library")
+    (license license:expat)))
+
 (define-public rust-boxfnonce-0.1
   (package
     (name "rust-boxfnonce")
@@ -7917,10 +8402,10 @@ programs.")
     (description "This package provides a safe FnOnce boxing for Rust.")
     (license license:expat)))
 
-(define-public rust-boxxy-0.11
+(define-public rust-boxxy-0.12
   (package
     (name "rust-boxxy")
-    (version "0.11.0")
+    (version "0.12.1")
     (source
      (origin
        (method url-fetch)
@@ -7929,38 +8414,40 @@ programs.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "10p8i30ri9rhrmlbdxp9s4k4fgsjq6q6b1x2ncchli1ad6psylms"))))
+         "1q0wpz955y3iwd35bqk3pbx2vx904fhyj75j7d6mrb7ib5fs5kxg"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-base64" ,rust-base64-0.10)
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-base64" ,rust-base64-0.13)
         ("rust-bufstream" ,rust-bufstream-0.1)
-        ("rust-caps" ,rust-caps-0.3)
-        ("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-caps" ,rust-caps-0.5)
+        ("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-clap" ,rust-clap-2)
         ("rust-errno" ,rust-errno-0.2)
-        ("rust-error-chain" ,rust-error-chain-0.12)
-        ("rust-futures" ,rust-futures-0.1)
-        ("rust-http" ,rust-http-0.1)
-        ("rust-hyper" ,rust-hyper-0.12)
-        ("rust-hyper-rustls" ,rust-hyper-rustls-0.17)
+        ("rust-futures-util" ,rust-futures-util-0.3)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-libflate" ,rust-libflate-0.1)
+        ("rust-libflate" ,rust-libflate-1)
         ("rust-log" ,rust-log-0.4)
-        ("rust-nix" ,rust-nix-0.15)
-        ("rust-pledge" ,rust-pledge-0.3)
+        ("rust-nix" ,rust-nix-0.22)
+        ("rust-pledge" ,rust-pledge-0.4)
         ("rust-regex" ,rust-regex-1)
+        ("rust-reqwest" ,rust-reqwest-0.11)
         ("rust-rustls" ,rust-rustls-0.16)
-        ("rust-rustyline" ,rust-rustyline-5)
-        ("rust-sha2" ,rust-sha2-0.8)
+        ("rust-rustyline" ,rust-rustyline-9)
+        ("rust-sha2" ,rust-sha2-0.9)
+        ("rust-structopt" ,rust-structopt-0.3)
         ("rust-tar" ,rust-tar-0.4)
-        ("rust-tokio-core" ,rust-tokio-core-0.1)
-        ("rust-url" ,rust-url-2)
+        ("rust-tokio" ,rust-tokio-1)
         ("rust-webpki" ,rust-webpki-0.21))
        #:cargo-development-inputs
        (("rust-ctrlc" ,rust-ctrlc-3)
         ("rust-elf" ,rust-elf-0.0.10)
-        ("rust-env-logger" ,rust-env-logger-0.6))))
+        ("rust-env-logger" ,rust-env-logger-0.9)
+        ("rust-rustls" ,rust-rustls-0.16)
+        ("rust-sha2" ,rust-sha2-0.9))))
+    (native-inputs
+     (list perl))
     (home-page "https://github.com/kpcyrd/boxxy-rs")
     (synopsis "Linkable sandbox explorer")
     (description
@@ -8437,6 +8924,35 @@ users can send along with a bug report.")
 constants from build.rs or a script.")
     (license license:expat)))
 
+(define-public rust-built-0.5
+  (package
+    (name "rust-built")
+    (version "0.5.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "built" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0fwpyasbp4pb6ff070xn17w1kwhvzgcx83l15gh8kff6y9m92mff"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cargo-lock" ,rust-cargo-lock-8)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-git2" ,rust-git2-0.16)
+        ("rust-semver" ,rust-semver-1))
+       #:cargo-development-inputs
+       (("rust-tempfile" ,rust-tempfile-3))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list libgit2 zlib))
+    (home-page "https://github.com/lukaslueg/built")
+    (synopsis "Provides a crate with information from the time it was built")
+    (description
+     "This package provides a crate with information from the time it was built.")
+    (license license:expat)))
+
 (define-public rust-bumpalo-3
   (package
     (name "rust-bumpalo")
@@ -8587,14 +9103,14 @@ of built-in fundamental numeric types.")
 (define-public rust-bytecheck-0.6
   (package
     (name "rust-bytecheck")
-    (version "0.6.9")
+    (version "0.6.10")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "bytecheck" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0vs0a8p3bpaz3vc15zknqkd5ajgzgswf2bmd1mbwdbdm28naq76i"))))
+                "07vxs7y441f7d6mjzmli80ykmfajwk9jqci549b29sr319j13zhk"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -8602,7 +9118,7 @@ of built-in fundamental numeric types.")
         ("rust-ptr-meta" ,rust-ptr-meta-0.1)
         ("rust-simdutf8" ,rust-simdutf8-0.1)
         ("rust-uuid" ,rust-uuid-1))))
-    (home-page "https://github.com/rkyv/bytecheck")
+    (home-page "https://github.com/djkoloski/bytecheck")
     (synopsis "Type validation framework")
     (description "This package provides a type validation framework for
 Rust.")
@@ -8631,21 +9147,21 @@ Rust.")
 (define-public rust-bytecheck-derive-0.6
   (package
     (name "rust-bytecheck-derive")
-    (version "0.6.9")
+    (version "0.6.10")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "bytecheck_derive" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1gxr63mi91rrjzfzcb8pfwsnarp9i2w1n168nc05aq4fx7mpdr8k"))))
+                "1r9dlkx5w1p8d5gif2yvn6bz1856yij2fxi4wakq2vxl7ia2a4p3"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))))
-    (home-page "https://github.com/rkyv/bytecheck")
+    (home-page "https://github.com/djkoloski/bytecheck")
     (synopsis "Derive macro for bytecheck")
     (description "This package provides a Derive macro for bytecheck, the type
 validation framework for Rust.")
@@ -8672,20 +9188,18 @@ validation framework for Rust.")
 (define-public rust-bytecount-0.6
   (package
     (name "rust-bytecount")
-    (version "0.6.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "bytecount" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0vplsx73zncb7mz8x0fs3k0p0rz5bmavj09vjk5nqn4z6fa7h0dh"))))
+    (version "0.6.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "bytecount" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0bklbbl5ml9ic18s9kn5iix1grrqc6sypz6hvfn8sjc6zhgv7zkj"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-packed-simd" ,rust-packed-simd-0.3))
+       (("rust-packed-simd-2" ,rust-packed-simd-2-0.3))
        #:cargo-development-inputs
        (("rust-criterion" ,rust-criterion-0.3)
         ("rust-quickcheck" ,rust-quickcheck-0.9)
@@ -8838,20 +9352,20 @@ little-endian.")
 (define-public rust-bytes-1
   (package
     (name "rust-bytes")
-    (version "1.1.0")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "bytes" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1y70b249m02lfp0j6565b29kviapj4xsl9whamcqwddnp9kjv1y4"))))
+        (base32 "1gkh3fk4fm9xv5znlib723h5md5sxsvbd5113sbxff6g1lmgvcl9"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
-       (("rust-loom" ,rust-loom-0.4)
+       (("rust-loom" ,rust-loom-0.5)
         ("rust-serde-test" ,rust-serde-test-1))))
     (home-page "https://github.com/tokio-rs/bytes")
     (synopsis "Types and traits for working with bytes")
@@ -8964,7 +9478,7 @@ little-endian.")
 (define-public rust-bzip2-0.4
   (package
     (name "rust-bzip2")
-    (version "0.4.1")
+    (version "0.4.4")
     (source
      (origin
        (method url-fetch)
@@ -8972,7 +9486,7 @@ little-endian.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1gpwm7qj8adi0zffm8r17vkv6f98d1q9glvpjk28v0wb6kz88p97"))))
+        (base32 "1y27wgqkx3k2jmh4k26vra2kqjq1qc1asww8hac3cv1zxyk1dcdx"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -8983,8 +9497,8 @@ little-endian.")
         ("rust-tokio-io" ,rust-tokio-io-0.1))
        #:cargo-development-inputs
        (("rust-partial-io" ,rust-partial-io-0.3)
-        ("rust-quickcheck" ,rust-quickcheck-0.9)
-        ("rust-rand" ,rust-rand-0.3)
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-rand" ,rust-rand-0.8)
         ("rust-tokio-core" ,rust-tokio-core-0.1))))
     (home-page "https://github.com/alexcrichton/bzip2-rs")
     (synopsis
@@ -9047,7 +9561,7 @@ representation, with support for both SI and binary units.")
 (define-public rust-bzip2-sys-0.1
   (package
     (name "rust-bzip2-sys")
-    (version "0.1.9+1.0.8")
+    (version "0.1.11+1.0.8")
     (source
      (origin
        (method url-fetch)
@@ -9056,7 +9570,7 @@ representation, with support for both SI and binary units.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0pi8lxzb1104q9cpvv1jgnk909cggqh2zcdhywqwlbq6c2i3jfxd"))
+         "1p2crnv8d8gpz5c2vlvzl0j55i3yqg5bi0kwsl1531x77xgraskk"))
         (modules '((guix build utils)))
         (snippet
          '(begin
@@ -9067,8 +9581,7 @@ representation, with support for both SI and binary units.")
               (lambda _
                 (format #t "fn main() {~@
                         println!(\"cargo:rustc-link-lib=bz2\");~@
-                        }~%")))
-            #t))))
+                        }~%")))))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -9101,6 +9614,26 @@ exposed as Reader/Writer streams.")
 NULL-terminated C linked lists.")
     (license (list license:expat license:bsd-3))))
 
+(define-public rust-c-vec-2
+  (package
+    (name "rust-c-vec")
+    (version "2.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "c-vec" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1s765fviy10q27b0wmkyk4q728z9v8v5pdlxv5k564y0mlks9mzx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/GuillaumeGomez/c_vec-rs.git")
+    (synopsis "Structures to wrap C arrays")
+    (description "This package procides structures to wrap C arrays in Rust.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-c2-chacha-0.2
   (package
     (name "rust-c2-chacha")
@@ -9186,8 +9719,40 @@ cached data.")
 spreadsheet file.")
     (license license:expat)))
 
+(define-public rust-calloop-0.10
+  (package
+    (name "rust-calloop")
+    (version "0.10.5")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "calloop" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "14h1yjksd8kakbd4xqz9xjc2gsa97rsdj5g05ivqsisswidj4n8s"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags
+       (list "--release" "--"
+             ;; Some of the tests fail.
+             "--skip=loop_logic::tests::insert_source_no_interest")
+       #:cargo-inputs
+       (("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-nix" ,rust-nix-0.25)
+        ("rust-slotmap" ,rust-slotmap-1)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-vec-map" ,rust-vec-map-0.8))
+       #:cargo-development-inputs (("rust-futures" ,rust-futures-0.3))))
+    (home-page "https://github.com/Smithay/calloop")
+    (synopsis "Callback-based event loop")
+    (description "This package provides a callback-based event loop.")
+    (license license:expat)))
+
 (define-public rust-calloop-0.9
   (package
+    (inherit rust-calloop-0.10)
     (name "rust-calloop")
     (version "0.9.3")
     (source
@@ -9197,7 +9762,6 @@ spreadsheet file.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "10mbcsd7fj3cg0a463h3003wycv955cnj4pm2gla2sp5xxhyqbmz"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:tests? #f ;XXX fails without stdin, fixed in 0.11
        #:cargo-inputs
@@ -9206,11 +9770,7 @@ spreadsheet file.")
         ("rust-log" ,rust-log-0.4)
         ("rust-nix" ,rust-nix-0.22))
        #:cargo-development-inputs
-       (("rust-futures" ,rust-futures-0.3))))
-    (home-page "https://github.com/Smithay/calloop")
-    (synopsis "Callback-based event loop")
-    (description "This package provides a callback-based event loop.")
-    (license license:expat)))
+       (("rust-futures" ,rust-futures-0.3))))))
 
 (define-public rust-calloop-0.6
   (package
@@ -9445,10 +10005,10 @@ capabilities.")
         ("rust-error-chain" ,rust-error-chain-0.12)
         ("rust-libc" ,rust-libc-0.2))))))
 
-(define-public rust-cargo-0.60
+(define-public rust-cargo-0.68
   (package
     (name "rust-cargo")
-    (version "0.60.0")
+    (version "0.68.0")
     (source
      (origin
        (method url-fetch)
@@ -9457,7 +10017,7 @@ capabilities.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0xws4y7h4mmq8flnzsgf6fph2hx3rjgypyll4wzp15035ymly6dw"))))
+         "0kgj3kh3lkdviz2y2apmkkh1yy7n88aj6gfb96l0gm1w2xq80pnz"))))
     (build-system cargo-build-system)
     (arguments
      `(;; The test suite is disabled as the internal 'cargo-test-macro' and
@@ -9465,64 +10025,67 @@ capabilities.")
        #:tests? #f
        #:cargo-inputs
        (("rust-anyhow" ,rust-anyhow-1)
-        ("rust-atty" ,rust-atty-0.2)
+        ("rust-base64" ,rust-base64-0.13)
         ("rust-bytesize" ,rust-bytesize-1)
         ("rust-cargo-platform" ,rust-cargo-platform-0.1)
-        ("rust-cargo-util" ,rust-cargo-util-0.1)
-        ("rust-clap" ,rust-clap-2)
-        ("rust-core-foundation" ,rust-core-foundation-0.9)
-        ("rust-crates-io" ,rust-crates-io-0.33)
-        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
-        ("rust-crypto-hash" ,rust-crypto-hash-0.3)
+        ("rust-cargo-util" ,rust-cargo-util-0.2)
+        ("rust-clap" ,rust-clap-4)
+        ("rust-crates-io" ,rust-crates-io-0.35)
         ("rust-curl" ,rust-curl-0.4)
         ("rust-curl-sys" ,rust-curl-sys-0.4)
-        ("rust-env-logger" ,rust-env-logger-0.9)
+        ("rust-env-logger" ,rust-env-logger-0.10)
         ("rust-filetime" ,rust-filetime-0.2)
         ("rust-flate2" ,rust-flate2-1)
         ("rust-flate2" ,rust-flate2-1)
         ("rust-fwdansi" ,rust-fwdansi-1)
-        ("rust-git2" ,rust-git2-0.13)
-        ("rust-git2-curl" ,rust-git2-curl-0.14)
+        ("rust-git2" ,rust-git2-0.16)
+        ("rust-git2-curl" ,rust-git2-curl-0.17)
         ("rust-glob" ,rust-glob-0.3)
         ("rust-hex" ,rust-hex-0.4)
+        ("rust-hmac" ,rust-hmac-0.12)
         ("rust-home" ,rust-home-0.5)
+        ("rust-http-auth" ,rust-http-auth-0.1)
         ("rust-humantime" ,rust-humantime-2)
         ("rust-ignore" ,rust-ignore-0.4)
         ("rust-im-rc" ,rust-im-rc-15)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-is-terminal" ,rust-is-terminal-0.4)
+        ("rust-itertools" ,rust-itertools-0.10)
         ("rust-jobserver" ,rust-jobserver-0.1)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-lazycell" ,rust-lazycell-1)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-libgit2-sys" ,rust-libgit2-sys-0.12)
+        ("rust-libgit2-sys" ,rust-libgit2-sys-0.14)
         ("rust-log" ,rust-log-0.4)
         ("rust-memchr" ,rust-memchr-2)
-        ("rust-miow" ,rust-miow-0.3)
-        ("rust-num-cpus" ,rust-num-cpus-1)
         ("rust-opener" ,rust-opener-0.5)
         ("rust-openssl" ,rust-openssl-0.10)
         ("rust-os-info" ,rust-os-info-3)
+        ("rust-pathdiff" ,rust-pathdiff-0.2)
         ("rust-percent-encoding" ,rust-percent-encoding-2)
         ("rust-pretty-env-logger" ,rust-pretty-env-logger-0.4)
-        ("rust-rand" ,rust-rand-0.8)
         ("rust-rustc-workspace-hack" ,rust-rustc-workspace-hack-1)
         ("rust-rustfix" ,rust-rustfix-0.6)
-        ("rust-same-file" ,rust-same-file-1)
-        ("rust-semver" ,rust-semver-0.10)
+        ("rust-semver" ,rust-semver-1)
         ("rust-serde" ,rust-serde-1)
+        ("rust-serde-value" ,rust-serde-value-0.7)
         ("rust-serde-ignored" ,rust-serde-ignored-0.1)
         ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-sha1" ,rust-sha1-0.10)
         ("rust-shell-escape" ,rust-shell-escape-0.1)
-        ("rust-socket2" ,rust-socket2-0.4)
         ("rust-strip-ansi-escapes" ,rust-strip-ansi-escapes-0.1)
         ("rust-tar" ,rust-tar-0.4)
         ("rust-tempfile" ,rust-tempfile-3)
         ("rust-termcolor" ,rust-termcolor-1)
-        ("rust-toml" ,rust-toml-0.5)
+        ("rust-toml-edit" ,rust-toml-edit-0.15)
         ("rust-unicode-width" ,rust-unicode-width-0.1)
         ("rust-unicode-xid" ,rust-unicode-xid-0.2)
         ("rust-url" ,rust-url-2)
         ("rust-walkdir" ,rust-walkdir-2)
-        ("rust-winapi" ,rust-winapi-0.3))))
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-same-file" ,rust-same-file-1)
+        ("rust-snapbox" ,rust-snapbox-0.4))))
     (native-inputs
      (list pkg-config))
     (inputs
@@ -9691,21 +10254,19 @@ metadata}.")
         ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-serde-json" ,rust-serde-json-1))))))
 
-(define-public rust-cargo-lock-7
+(define-public rust-cargo-lock-8
   (package
     (name "rust-cargo-lock")
-    (version "7.0.1")
+    (version "8.0.3")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "cargo-lock" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
-               (base32
-                "122wirj0d44xi2i7sc6anjimqfvgw5p5ry840zikc82vpn44pc3z"))))
+               (base32 "15nrkr11dnadmwvzjwn6yv8m20g3xw6yj2cayzgab2ppp3fih5q3"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-gumdrop" ,rust-gumdrop-0.8)
         ("rust-petgraph" ,rust-petgraph-0.6)
         ("rust-semver" ,rust-semver-1)
@@ -9719,6 +10280,28 @@ metadata}.")
 optional dependency graph analysis.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-cargo-lock-7
+  (package
+    (inherit rust-cargo-lock-8)
+    (name "rust-cargo-lock")
+    (version "7.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "cargo-lock" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "122wirj0d44xi2i7sc6anjimqfvgw5p5ry840zikc82vpn44pc3z"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-gumdrop" ,rust-gumdrop-0.8)
+        ("rust-petgraph" ,rust-petgraph-0.6)
+        ("rust-semver" ,rust-semver-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-toml" ,rust-toml-0.5)
+        ("rust-url" ,rust-url-2))))))
+
 (define-public rust-cargo-platform-0.1
   (package
     (name "rust-cargo-platform")
@@ -9742,10 +10325,10 @@ optional dependency graph analysis.")
 supported by Cargo.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-cargo-util-0.1
+(define-public rust-cargo-util-0.2
   (package
     (name "rust-cargo-util")
-    (version "0.1.2")
+    (version "0.2.3")
     (source
      (origin
        (method url-fetch)
@@ -9754,35 +10337,50 @@ supported by Cargo.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1sz0gzcyp9ycb4zwj69qs9gd8kn9hv9nh2dq42c59x5xccqph755"))))
+         "13wl16p29256rvrsnsr89bifkz1n3m96irwxv6w0w49fb00cvq74"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-core-foundation" ,rust-core-foundation-0.9)
+        ("rust-crypto-hash" ,rust-crypto-hash-0.3)
+        ("rust-filetime" ,rust-filetime-0.2)
+        ("rust-hex" ,rust-hex-0.4)
+        ("rust-jobserver" ,rust-jobserver-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-miow" ,rust-miow-0.5)
+        ("rust-same-file" ,rust-same-file-1)
+        ("rust-shell-escape" ,rust-shell-escape-0.1)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-walkdir" ,rust-walkdir-2)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (inputs
+     (list openssl))
+    (native-inputs
+     (list pkg-config))
     (home-page "https://github.com/rust-lang/cargo")
     (synopsis "Utilities for Cargo")
     (description "Miscellaneous support code used by Cargo.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-cargon-0.0
+(define-public rust-cargo-util-0.1
   (package
-    (name "rust-cargon")
-    (version "0.0.1")
+    (inherit rust-cargo-util-0.2)
+    (name "rust-cargo-util")
+    (version "0.1.2")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "cargon" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1cszlab7jk736p0lb50ag4l9nv72m7j41bwrmygl0lr4iz0350w2"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-gcc" ,rust-gcc-0.3))))
-    (home-page "https://github.com/bryant/argon2rs")
-    (synopsis "Thin wrapper around the Argon2 C library")
-    (description
-     "This package provides a thin wrapper around the Argon2 C library.  It is
-used in argon2rs' bench suite.")
-    (license license:wtfpl2)))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cargo-util" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1sz0gzcyp9ycb4zwj69qs9gd8kn9hv9nh2dq42c59x5xccqph755"))))
+    (arguments '())
+    (inputs '())
+    (native-inputs '())))
 
 (define-public rust-cassowary-0.3
   (package
@@ -9853,6 +10451,30 @@ box''.")
        #:cargo-development-inputs
        (("rust-quickcheck" ,rust-quickcheck-0.9))))))
 
+(define-public rust-castaway-0.2
+  (package
+    (name "rust-castaway")
+    (version "0.2.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "castaway" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1k1z4v61vq7la56js1azkr0k9b415vif2kaxiqk3d1gw6mbfs5wa"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-rustversion" ,rust-rustversion-1))
+       #:cargo-development-inputs
+       (("rust-paste" ,rust-paste-1))))
+    (home-page "https://github.com/sagebind/castaway")
+    (synopsis "Zero-cost downcasting for limited compile-time specialization")
+    (description
+     "This is an experimental library that implements zero-cost downcasting of
+types that works on stable Rust.")
+    (license license:expat)))
+
 (define-public rust-cblas-sys-0.1
   (package
     (name "rust-cblas-sys")
@@ -10675,10 +11297,10 @@ usage.")
     (description "This package provides Rust bindings for libclang.")
     (license license:asl2.0)))
 
-(define-public rust-cipher-0.3
+(define-public rust-cipher-0.4
   (package
     (name "rust-cipher")
-    (version "0.3.0")
+    (version "0.4.3")
     (source
       (origin
         (method url-fetch)
@@ -10686,12 +11308,14 @@ usage.")
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32 "1dyzsv0c84rgz98d5glnhsz4320wl24x3bq511vnyf0mxir21rby"))))
+         (base32 "17mmmqaalirdx7bpdhrgzp1sd392zm08mjrr24cjr57pz1q351yi"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-        (("rust-blobby" ,rust-blobby-0.3)
-         ("rust-generic-array" ,rust-generic-array-0.14))))
+       (("rust-blobby" ,rust-blobby-0.3)
+        ("rust-crypto-common" ,rust-crypto-common-0.1)
+        ("rust-inout" ,rust-inout-0.1)
+        ("rust-zeroize" ,rust-zeroize-1))))
     (home-page "https://docs.rs/cipher/")
     (synopsis "Traits for describing block ciphers and stream ciphers")
     (description "This package provides traits which define the functionality
@@ -10700,6 +11324,24 @@ RustCrypto/stream-ciphers for algorithm implementations which use these
 traits.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-cipher-0.3
+  (package
+    (inherit rust-cipher-0.4)
+    (name "rust-cipher")
+    (version "0.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cipher" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32 "1dyzsv0c84rgz98d5glnhsz4320wl24x3bq511vnyf0mxir21rby"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-blobby" ,rust-blobby-0.3)
+        ("rust-generic-array" ,rust-generic-array-0.14))))))
+
 (define-public rust-cipher-0.2
   (package
     (inherit rust-cipher-0.3)
@@ -10858,8 +11500,34 @@ files and environment variables.  And make it easier for users to tell your prog
 how to behave across the three main input sources")
     (license license:expat)))
 
+(define-public rust-clap-derive-4
+  (package
+    (name "rust-clap-derive")
+    (version "4.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "clap_derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1s4c4005xsdw5zlq8z5h02mgjcsqgcd1ydxg6iird49fcxyjfjk8"))))
+    (build-system cargo-build-system)
+    (arguments
+     (list #:cargo-inputs
+           `(("rust-heck" ,rust-heck-0.4)
+             ("rust-proc-macro-error" ,rust-proc-macro-error-1)
+             ("rust-proc-macro2" ,rust-proc-macro2-1)
+             ("rust-quote" ,rust-quote-1)
+             ("rust-syn" ,rust-syn-1))))
+    (home-page "https://clap.rs/")
+    (synopsis "Procedural macro crate for Clap")
+    (description
+     "This package provides the procedural macro crate for Clap.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-clap-derive-3
   (package
+    (inherit rust-clap-derive-4)
     (name "rust-clap-derive")
     (version "3.2.18")
     (source
@@ -10869,7 +11537,6 @@ how to behave across the three main input sources")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0r9az0cl33xx0i9g18l56l3vd5ayjvcflvza2gdf8jwcab78n37a"))))
-    (build-system cargo-build-system)
     (arguments
      (list #:skip-build? #t
            #:cargo-inputs
@@ -10878,15 +11545,57 @@ how to behave across the three main input sources")
               ,rust-proc-macro-error-1)
              ("rust-proc-macro2" ,rust-proc-macro2-1)
              ("rust-quote" ,rust-quote-1)
-             ("rust-syn" ,rust-syn-1))))
+             ("rust-syn" ,rust-syn-1))))))
+
+(define-public rust-clap-4
+  (package
+    (name "rust-clap")
+    (version "4.1.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "clap" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1qzmsg3j2rch16gbh753hsdgvfv6q4vc2xdxgnl66kadsj40a2zc"))))
+    (build-system cargo-build-system)
+    (arguments
+     (list #:cargo-test-flags
+           '(list "--release" "--"
+                  ;; Some of the doc tests fail.
+                  "--skip=builder::range::ValueRange::new"
+                  "--skip=builder::value_parser::value_parser")
+           #:cargo-inputs
+           `(("rust-backtrace" ,rust-backtrace-0.3)
+             ("rust-bitflags" ,rust-bitflags-1)
+             ("rust-clap-derive" ,rust-clap-derive-4)
+             ("rust-clap-lex" ,rust-clap-lex-0.3)
+             ("rust-is-terminal" ,rust-is-terminal-0.4)
+             ("rust-once-cell" ,rust-once-cell-1)
+             ("rust-strsim" ,rust-strsim-0.10)
+             ("rust-termcolor" ,rust-termcolor-1)
+             ("rust-terminal-size" ,rust-terminal-size-0.2)
+             ("rust-unicase" ,rust-unicase-2)
+             ("rust-unicode-width" ,rust-unicode-width-0.1))
+           #:cargo-development-inputs
+           `(("rust-humantime" ,rust-humantime-2)
+             ("rust-rustversion" ,rust-rustversion-1)
+             ("rust-shlex" ,rust-shlex-1)
+             ("rust-snapbox" ,rust-snapbox-0.4)
+             ("rust-static-assertions" ,rust-static-assertions-1)
+             ("rust-trybuild" ,rust-trybuild-1)
+             ("rust-trycmd" ,rust-trycmd-0.14)
+             ("rust-unic-emoji-char" ,rust-unic-emoji-char-0.9))))
     (home-page "https://clap.rs/")
-    (synopsis "Procedural macro crate for Clap")
+    (synopsis "Command Line Argument Parser")
     (description
-     "This package provides the procedural macro crate for Clap.")
+     "This package provides a simple to use, efficient, and full-featured
+Command Line Argument Parser.")
     (license (list license:expat license:asl2.0))))
 
 (define-public rust-clap-3
   (package
+    (inherit rust-clap-4)
     (name "rust-clap")
     (version "3.2.23")
     (source
@@ -10896,7 +11605,6 @@ how to behave across the three main input sources")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "19bkwkj49ha7mlip0gxsqb9xmd3jpr7ghvcx1hkx6icqrd2mqrbi"))))
-    (build-system cargo-build-system)
     (arguments
      (list #:cargo-test-flags
            '(list "--release" "--"
@@ -10927,13 +11635,7 @@ how to behave across the three main input sources")
              ("rust-snapbox" ,rust-snapbox-0.2)
              ("rust-static-assertions" ,rust-static-assertions-1)
              ("rust-trybuild" ,rust-trybuild-1)
-             ("rust-trycmd" ,rust-trycmd-0.13))))
-    (home-page "https://clap.rs/")
-    (synopsis "Command Line Argument Parser")
-    (description
-     "This package provides a simple to use, efficient, and full-featured
-Command Line Argument Parser.")
-    (license (list license:expat license:asl2.0))))
+             ("rust-trycmd" ,rust-trycmd-0.13))))))
 
 (define-public rust-clap-2
   (package
@@ -10966,6 +11668,36 @@ Command Line Argument Parser.")
         ("rust-version-sync" ,rust-version-sync-0.8))))
     (license license:expat)))
 
+(define-public rust-clap-complete-4
+  (package
+    (name "rust-clap-complete")
+    (version "4.1.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "clap-complete" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1zinf9gdr0fh1aff71nwqf51w856sbsbgq0dqpmmbhplggl5n4mx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-clap" ,rust-clap-4)
+        ("rust-clap-lex" ,rust-clap-lex-0.3)
+        ("rust-is-executable" ,rust-is-executable-1)
+        ("rust-os-str-bytes" ,rust-os-str-bytes-6)
+        ("rust-pathdiff" ,rust-pathdiff-0.2)
+        ("rust-shlex" ,rust-shlex-1)
+        ("rust-unicode-xid" ,rust-unicode-xid-0.2))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-4)
+        ("rust-snapbox" ,rust-snapbox-0.4)
+        ("rust-trycmd" ,rust-trycmd-0.14))))
+    (home-page "https://github.com/clap-rs/clap/tree/master/clap_complete")
+    (synopsis "Generate shell completion scripts for your clap::Command")
+    (description
+     "Generate shell completion scripts for your @code{clap::Command}.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-clap-complete-3
   (package
     (name "rust-clap-complete")
@@ -11642,30 +12374,6 @@ diagnostics easy and relatively painless for everyone!")
 sets of intervals.")
     (license license:expat)))
 
-(define-public rust-color-backtrace-0.5
-  (package
-    (name "rust-color-backtrace")
-    (version "0.5.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "color-backtrace" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "11fn3snykx90w3nznzrcf4r164zmhk790asx0kzryf4r7i308v6d"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-atty" ,rust-atty-0.2)
-        ("rust-backtrace" ,rust-backtrace-0.3)
-        ("rust-regex" ,rust-regex-1)
-        ("rust-termcolor" ,rust-termcolor-1))))
-    (home-page "https://github.com/athre0z/color-backtrace")
-    (synopsis "Colorful panic backtraces")
-    (description "This package provides colorful panic backtraces.")
-    (license (list license:expat license:asl2.0))))
-
 (define-public rust-color-quant-1
   (package
     (name "rust-color-quant")
@@ -11939,6 +12647,50 @@ idiomatic wrappers for Mac OS X's CommonCrypto library.")
      "Common path finds the common prefix between a set of paths.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-compact-str-0.7
+  (package
+    (name "rust-compact-str")
+    (version "0.7.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "compact_str" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1lbk5vkn6vriwx98pybfsgy093ga6ilpm5gkcd8v7cgcg5gq1w5z"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-arbitrary" ,rust-arbitrary-1)
+        ("rust-bytes" ,rust-bytes-1)
+        ("rust-castaway" ,rust-castaway-0.2)
+        ("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-itoa" ,rust-itoa-1)
+        ("rust-markup" ,rust-markup-0.13)
+        ("rust-proptest" ,rust-proptest-1)
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-rkyv" ,rust-rkyv-0.7)
+        ("rust-ryu" ,rust-ryu-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-static-assertions" ,rust-static-assertions-1))
+       #:cargo-development-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-proptest" ,rust-proptest-1)
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-quickcheck-macros" ,rust-quickcheck-macros-1)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-test-case" ,rust-test-case-2)
+        ("rust-test-strategy" ,rust-test-strategy-0.2))))
+    (home-page "https://github.com/ParkMyCar/compact_str")
+    (synopsis "String type that stores strings on the stack, when possible")
+    (description
+     "This package provides a memory-efficient string type that transparently
+stores strings on the stack, when possible.")
+    (license license:expat)))
+
 (define-public rust-const-cstr-0.3
   (package
     (name "rust-const-cstr")
@@ -11958,6 +12710,22 @@ idiomatic wrappers for Mac OS X's CommonCrypto library.")
 literals.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-const-fn-assert-0.1
+  (package
+    (name "rust-const-fn-assert")
+    (version "0.1.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "const-fn-assert" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1451yxndri5zj95lyjzckj7m3qlpyj8ibp3pb8bbbxrl7zr19mi7"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/powlpy/const_fn_assert")
+    (synopsis "Assertions for const functions")
+    (description "Assertions for const functions.")
+    (license license:expat)))
+
 ;; This package requires features which are unavailable
 ;; on the stable releases of Rust.
 (define-public rust-compiler-builtins-0.1
@@ -12127,24 +12895,23 @@ flavoured Markdown parser and formatter written in Rust.")
 everywhere.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-concolor-0.0.8
+(define-public rust-concolor-0.0.11
   (package
     (name "rust-concolor")
-    (version "0.0.8")
+    (version "0.0.11")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "concolor" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1bs03868bywgz2f8x4h41akvxpxiax9b036hrpf0mwhx7db6flh1"))))
+        (base32 "05ja8yy5ar34k2cplk0qp1d8qabxzj16mb8jn8790fivwwb6r39i"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-atty" ,rust-atty-0.2)
-        ("rust-bitflags" ,rust-bitflags-1)
-        ("rust-concolor-query" ,rust-concolor-query-0.0.5))))
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-concolor-query" ,rust-concolor-query-0.1)
+        ("rust-is-terminal" ,rust-is-terminal-0.4))))
     (home-page "https://github.com/rust-cli/concolor")
     (synopsis "Control console coloring across all dependencies")
     (description "Concolor is a terminal styling library that can be used to:
@@ -12156,6 +12923,25 @@ everywhere.")
 @end itemize")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-concolor-0.0.8
+  (package
+    (inherit rust-concolor-0.0.11)
+    (name "rust-concolor")
+    (version "0.0.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "concolor" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1bs03868bywgz2f8x4h41akvxpxiax9b036hrpf0mwhx7db6flh1"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-atty" ,rust-atty-0.2)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-concolor-query" ,rust-concolor-query-0.0.5))))))
+
 (define-public rust-concolor-control-0.0.7
   (package
     (inherit rust-concolor-0.0.8)
@@ -12175,25 +12961,38 @@ everywhere.")
         ("rust-bitflags" ,rust-bitflags-1)
         ("rust-concolor-query" ,rust-concolor-query-0.0.4))))))
 
-(define-public rust-concolor-query-0.0.5
+(define-public rust-concolor-query-0.1
   (package
     (name "rust-concolor-query")
-    (version "0.0.5")
+    (version "0.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "concolor-query" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0jcll1lnnkbdr6xcgppf6dr0ra9rxcp78xr1zlrvba03zkk7yhfn"))))
+        (base32 "05ykng7pqhm7840yh07r27p90flwrrmwlk32wxbgdp6mncs0gac2"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
     (home-page "https://github.com/rust-cli/concolor")
     (synopsis "Look up colored console capabilities")
     (description "@code{concolor-query} can be used to query a terminal
 capabilities, for example to find out about its colored console abilities.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-concolor-query-0.0.5
+  (package
+    (inherit rust-concolor-query-0.1)
+    (name "rust-concolor-query")
+    (version "0.0.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "concolor-query" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0jcll1lnnkbdr6xcgppf6dr0ra9rxcp78xr1zlrvba03zkk7yhfn"))))
+    (arguments `(#:skip-build? #t))))
+
 (define-public rust-concolor-query-0.0.4
   (package
     (inherit rust-concolor-query-0.0.5)
@@ -12336,26 +13135,25 @@ this to write Rust programs which can be customized by end users easily.")
 (define-public rust-console-0.15
   (package
     (name "rust-console")
-    (version "0.15.0")
+    (version "0.15.5")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "console" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0c9wif28i3q231gvjprqdq1glmgmmcdxpmxcwk1p0jx45k9k52x2"))))
+        (base32 "0q5dwppyn1zsj5h9zjxfzah8l91y7cyw270m6hz7x9vhi6z9zmy3"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-encode-unicode" ,rust-encode-unicode-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-once-cell" ,rust-once-cell-1)
-        ("rust-regex" ,rust-regex-1)
-        ("rust-terminal-size" ,rust-terminal-size-0.1)
         ("rust-unicode-width" ,rust-unicode-width-0.1)
-        ("rust-winapi" ,rust-winapi-0.3)
-        ("rust-winapi-util" ,rust-winapi-util-0.1))))
+        ("rust-windows-sys" ,rust-windows-sys-0.42))
+       #:cargo-development-inputs
+       (("rust-proptest" ,rust-proptest-1)
+        ("rust-regex" ,rust-regex-1))))
     (home-page "https://github.com/mitsuhiko/console")
     (synopsis "Terminal and console abstraction for Rust")
     (description
@@ -12783,29 +13581,29 @@ semantics than those provided by @code{as} or @code{From}/@code{Into}.")
     (description "Convert strings into any case.")
     (license license:expat)))
 
-(define-public rust-cookie-0.15
+(define-public rust-cookie-0.16
   (package
     (name "rust-cookie")
-    (version "0.15.1")
+    (version "0.16.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "cookie" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "03gql9c2l0wg3hpfp67wg2ns21wysk0xsjxwdbjrf0s6grrcgwfm"))))
+        (base32 "1yriqbf77iigrnp2gmf6m1r296bndv051dc1qc39w3bis1bwsng8"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-aes-gcm" ,rust-aes-gcm-0.8)
-        ("rust-base64" ,rust-base64-0.13)
-        ("rust-hkdf" ,rust-hkdf-0.10)
-        ("rust-hmac" ,rust-hmac-0.10)
+       (("rust-aes-gcm" ,rust-aes-gcm-0.10)
+        ("rust-base64" ,rust-base64-0.20)
+        ("rust-hkdf" ,rust-hkdf-0.12)
+        ("rust-hmac" ,rust-hmac-0.12)
         ("rust-percent-encoding" ,rust-percent-encoding-2)
         ("rust-rand" ,rust-rand-0.8)
-        ("rust-sha2" ,rust-sha2-0.9)
+        ("rust-sha2" ,rust-sha2-0.10)
         ("rust-subtle" ,rust-subtle-2)
-        ("rust-time" ,rust-time-0.2)
+        ("rust-time" ,rust-time-0.3)
         ("rust-version-check" ,rust-version-check-0.9))))
     (home-page "https://github.com/SergioBenitez/cookie-rs")
     (synopsis
@@ -12816,6 +13614,31 @@ It supports signed and private (encrypted + signed) jars.")
     ;; The user can choose either license.
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-cookie-0.15
+  (package
+    (inherit rust-cookie-0.16)
+    (name "rust-cookie")
+    (version "0.15.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cookie" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "03gql9c2l0wg3hpfp67wg2ns21wysk0xsjxwdbjrf0s6grrcgwfm"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-aes-gcm" ,rust-aes-gcm-0.8)
+        ("rust-base64" ,rust-base64-0.13)
+        ("rust-hkdf" ,rust-hkdf-0.10)
+        ("rust-hmac" ,rust-hmac-0.10)
+        ("rust-percent-encoding" ,rust-percent-encoding-2)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-sha2" ,rust-sha2-0.9)
+        ("rust-subtle" ,rust-subtle-2)
+        ("rust-time" ,rust-time-0.2)
+        ("rust-version-check" ,rust-version-check-0.9))))))
+
 (define-public rust-cookie-0.12
   (package
     (inherit rust-cookie-0.15)
@@ -12904,8 +13727,36 @@ similar to the nom parser combinators library.")
 the standard library.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-copypasta-0.8
+  (package
+    (name "rust-copypasta")
+    (version "0.8.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "copypasta" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0wmidz38581b1xzpzf466pdaw3xam7nlsn0klndfr973brkwhgqk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-clipboard-win" ,rust-clipboard-win-3)
+        ("rust-objc" ,rust-objc-0.2)
+        ("rust-objc-foundation" ,rust-objc-foundation-0.1)
+        ("rust-objc-id" ,rust-objc-id-0.1)
+        ("rust-smithay-clipboard" ,rust-smithay-clipboard-0.6)
+        ("rust-x11-clipboard" ,rust-x11-clipboard-0.7))))
+    (home-page "https://github.com/alacritty/copypasta")
+    (synopsis "Get and set the contents of the OS-level clipboard")
+    (description
+     "Copypasta is a cross-platform library for getting and setting the
+contents of the OS-level clipboard.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-copypasta-0.7
   (package
+    (inherit rust-copypasta-0.8)
     (name "rust-copypasta")
     (version "0.7.1")
     (source
@@ -12915,7 +13766,6 @@ the standard library.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "02zz6yndszmzr5yjhn11g1hsj0232jbzl8gch6mxksw3xngxf8s4"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -12924,13 +13774,7 @@ the standard library.")
         ("rust-objc-foundation" ,rust-objc-foundation-0.1)
         ("rust-objc-id" ,rust-objc-id-0.1)
         ("rust-smithay-clipboard" ,rust-smithay-clipboard-0.6)
-        ("rust-x11-clipboard" ,rust-x11-clipboard-0.5))))
-    (home-page "https://github.com/alacritty/copypasta")
-    (synopsis "Get and set the contents of the OS-level clipboard")
-    (description
-     "Copypasta is a cross-platform library for getting and setting the
-contents of the OS-level clipboard.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-x11-clipboard" ,rust-x11-clipboard-0.5))))))
 
 (define-public rust-cordic-0.1
   (package
@@ -13001,10 +13845,10 @@ in @code{no_std}.  Alloc support is optional.")
        #:cargo-development-inputs
        (("rust-version-check" ,rust-version-check-0.9))))))
 
-(define-public rust-cookie-store-0.15
+(define-public rust-cookie-store-0.16
   (package
-    (name "rust-cookie-store-15")
-    (version "0.15.1")
+    (name "rust-cookie-store")
+    (version "0.16.1")
     (source
      (origin
        (method url-fetch)
@@ -13012,25 +13856,50 @@ in @code{no_std}.  Alloc support is optional.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0z0navy9k0ivrdvz492q8c4nhd3iv5l77hwfppskdp1j15607xxk"))))
+        (base32 "1kfrmxx9mi55dgbj8qgd8qbahvi1yjqwk05v0jm5y7zld6inljrf"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-cookie" ,rust-cookie-0.15)
+       (("rust-cookie" ,rust-cookie-0.16)
         ("rust-idna" ,rust-idna-0.2)
         ("rust-indexmap" ,rust-indexmap-1)
         ("rust-log" ,rust-log-0.4)
         ("rust-publicsuffix" ,rust-publicsuffix-2)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-time" ,rust-time-0.2)
+        ("rust-time" ,rust-time-0.3)
         ("rust-url" ,rust-url-2))))
     (home-page "https://github.com/pfernie/cookie_store")
     (synopsis "Cookie storage and retrieval")
     (description "This package implements cookie storage and retrieval.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-cookie-store-0.15
+  (package
+    (inherit rust-cookie-store-0.16)
+    (name "rust-cookie-store")
+    (version "0.15.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cookie-store" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0z0navy9k0ivrdvz492q8c4nhd3iv5l77hwfppskdp1j15607xxk"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cookie" ,rust-cookie-0.15)
+        ("rust-idna" ,rust-idna-0.2)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-publicsuffix" ,rust-publicsuffix-2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-time" ,rust-time-0.2)
+        ("rust-url" ,rust-url-2))))))
+
 (define-public rust-cookie-store-0.12
   (package
     (inherit rust-cookie-store-0.15)
@@ -13111,14 +13980,14 @@ intrinsics.")
 (define-public rust-core-foundation-0.9
   (package
     (name "rust-core-foundation")
-    (version "0.9.1")
+    (version "0.9.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "core-foundation" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0qhackx0i914nbhcwi6bbxnyyqqldgxc046gviak3a3f8apf528a"))))
+        (base32 "0ii1ihpjb30fk38gdikm5wqlkmyr8k46fh4k2r8sagz5dng7ljhr"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f             ;tests fail with a lot of "undefined reference"
@@ -13516,10 +14385,10 @@ to the @code{is_x86_feature_detected!} macro.")
     (native-inputs (list pkg-config))
     (inputs (list zlib openssl libssh2 curl cmake))))
 
-(define-public rust-crates-io-0.33
+(define-public rust-crates-io-0.35
   (package
     (name "rust-crates-io")
-    (version "0.33.1")
+    (version "0.35.0")
     (source
      (origin
        (method url-fetch)
@@ -13528,10 +14397,13 @@ to the @code{is_x86_feature_detected!} macro.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0nmpzr697a6v12ljwpmjrhqpmkf784nsm8m1g6jwadmkq96p3mxj"))))
+         "0zlp8zdkd0qr1ik64wik8bavdm75y54xxp6d7mqvxvv8ssq97144"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:cargo-test-flags
+       (list "--release" "--"
+             "--skip=Registry::new_handle")
+       #:cargo-inputs
        (("rust-anyhow" ,rust-anyhow-1)
         ("rust-curl" ,rust-curl-0.4)
         ("rust-percent-encoding" ,rust-percent-encoding-2)
@@ -13546,8 +14418,28 @@ to the @code{is_x86_feature_detected!} macro.")
 @url{crates.io}.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-crc-2
+  (package
+    (name "rust-crc")
+    (version "2.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "crc" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "08qfahmly0n5j27g1vkqx9s6mxhm8k4dsp61ykskazyabdlrmz29"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-crc-catalog" ,rust-crc-catalog-1))))
+    (home-page "https://github.com/mrhooray/crc-rs.git")
+    (synopsis "Rust implementation of CRC(16, 32, 64)")
+    (description "This package provides a Rust implementation of CRC(16, 32,
+64) with support for various standards.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-crc-1
   (package
+    (inherit rust-crc-2)
     (name "rust-crc")
     (version "1.8.1")
     (source
@@ -13558,15 +14450,9 @@ to the @code{is_x86_feature_detected!} macro.")
        (sha256
         (base32
          "1sqal6gm6lbj7f45iv3rw2s9w3pvvha8v970y51s7k7mwy6m8qyn"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-build-const" ,rust-build-const-0.2))))
-    (home-page "https://crates.io/crates/crc")
-    (synopsis "Rust implementation of CRC(16, 32, 64)")
-    (description "This package provides a Rust implementation of CRC(16, 32,
-64) with support for various standards.")
-    (license (list license:expat license:asl2.0))))
+       (("rust-build-const" ,rust-build-const-0.2))))))
 
 (define-public rust-crc-any-2
   (package
@@ -13641,6 +14527,24 @@ final xor value.  It has many built-in CRC functions.")
 Rust.")
     (license license:bsd-3)))
 
+(define-public rust-crc-catalog-1
+  (package
+    (name "rust-crc-catalog")
+    (version "1.1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "crc-catalog" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "00qlxgzg15fnyx6nwviibz94rjw803l2avi2k3shjfx0dnsyvbnc"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/akhilles/crc-catalog.git")
+    (synopsis "Catalog of CRC algorithms expressed as simple Rust structs")
+    (description
+     "This package contains a catalog of CRC algorithms (generated from
+http://reveng.sourceforge.net/crc-catalogue) expressed as simple Rust structs.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-criterion-0.4
   (package
     (name "rust-criterion")
@@ -13695,7 +14599,7 @@ Rust.")
   (package
     (inherit rust-criterion-0.4)
     (name "rust-criterion")
-    (version "0.3.5")
+    (version "0.3.6")
     (source
      (origin
        (method url-fetch)
@@ -13703,12 +14607,12 @@ Rust.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "044d2x7cxfvw2g558lzyllcv7jcdkw9xmacmb0nzx8pv4pyxl10n"))))
+        (base32 "13yd64ah93gkbdv7qq4cr6rhgl9979jjcjk3gkhnav1b7glns7dh"))))
     (arguments
      `(#:cargo-inputs
        (("rust-async-std" ,rust-async-std-1)
         ("rust-atty" ,rust-atty-0.2)
-        ("rust-cast" ,rust-cast-0.2)
+        ("rust-cast" ,rust-cast-0.3)
         ("rust-clap" ,rust-clap-2)
         ("rust-criterion-plot" ,rust-criterion-plot-0.4)
         ("rust-csv" ,rust-csv-1)
@@ -14036,14 +14940,14 @@ message passing.")
 (define-public rust-crossbeam-deque-0.8
   (package
     (name "rust-crossbeam-deque")
-    (version "0.8.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "crossbeam-deque" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1z6ifz35lyk0mw818xcl3brgss2k8islhgdmfk9s5fwjnr982pki"))))
+    (version "0.8.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "crossbeam-deque" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1vqczbcild7nczh5z116w8w46z991kpjyw7qxkf24c14apwdcvyf"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -14268,8 +15172,50 @@ message passing.")
        #:cargo-development-inputs
        (("rust-rand" ,rust-rand-0.6))))))
 
+(define-public rust-crossfont-0.5
+  (package
+    (name "rust-crossfont")
+    (version "0.5.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "crossfont" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0icwpj9plf7bs0k34x86c58bwqyx2j3ji98aaahsncga6vfkmz91"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-build-flags '("--features" "force_system_fontconfig")
+       #:cargo-inputs
+       (("rust-cocoa" ,rust-cocoa-0.24)
+        ("rust-core-foundation" ,rust-core-foundation-0.9)
+        ("rust-core-foundation-sys" ,rust-core-foundation-sys-0.8)
+        ("rust-core-graphics" ,rust-core-graphics-0.22)
+        ("rust-core-text" ,rust-core-text-19)
+        ("rust-dwrote" ,rust-dwrote-0.11)
+        ("rust-foreign-types" ,rust-foreign-types-0.5)
+        ("rust-freetype-rs" ,rust-freetype-rs-0.26)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-objc" ,rust-objc-0.2)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-servo-fontconfig" ,rust-servo-fontconfig-0.5)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (inputs
+     (list expat fontconfig freetype))
+    (native-inputs
+     (list pkg-config))
+    (home-page "https://github.com/alacritty/crossfont")
+    (synopsis "Native font loading and rasterization")
+    (description
+     "Crossfont is a cross-platform Rust library for loading fonts and
+rasterizing glyphs, using native font engines whenever possible.")
+    (license license:asl2.0)))
+
 (define-public rust-crossfont-0.3
   (package
+    (inherit rust-crossfont-0.5)
     (name "rust-crossfont")
     (version "0.3.1")
     (source
@@ -14279,7 +15225,6 @@ message passing.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "079431wkjc18zj3038djai83z6fna0x7r1hxpxjhhi50jdz9dh5n"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -14295,16 +15240,47 @@ message passing.")
         ("rust-log" ,rust-log-0.4)
         ("rust-pkg-config" ,rust-pkg-config-0.3)
         ("rust-servo-fontconfig" ,rust-servo-fontconfig-0.5)
-        ("rust-winapi" ,rust-winapi-0.3))))
-    (home-page "https://github.com/alacritty/crossfont")
-    (synopsis "Native font loading and rasterization")
+        ("rust-winapi" ,rust-winapi-0.3))))))
+
+(define-public rust-crossterm-0.25
+  (package
+    (name "rust-crossterm")
+    (version "0.25.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "crossterm" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0rsbkkhdf61aipc06b7vpl4cw3wnxz0miizp0ms3a5rcpq7nqkp6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-crossterm-winapi" ,rust-crossterm-winapi-0.9)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-mio" ,rust-mio-0.8)
+        ("rust-parking-lot" ,rust-parking-lot-0.12)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-signal-hook" ,rust-signal-hook-0.3)
+        ("rust-signal-hook-mio" ,rust-signal-hook-mio-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-async-std" ,rust-async-std-1)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-futures-timer" ,rust-futures-timer-3)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-tokio" ,rust-tokio-1))))
+    (home-page "https://github.com/crossterm-rs/crossterm")
+    (synopsis "Crossplatform terminal library for manipulating terminals")
     (description
-     "Crossfont is a cross-platform Rust library for loading fonts and
-rasterizing glyphs, using native font engines whenever possible.")
-    (license license:asl2.0)))
+     "This package provides a crossplatform terminal library for manipulating
+terminals.")
+    (license license:expat)))
 
 (define-public rust-crossterm-0.20
   (package
+    (inherit rust-crossterm-0.25)
     (name "rust-crossterm")
     (version "0.20.0")
     (source
@@ -14314,7 +15290,6 @@ rasterizing glyphs, using native font engines whenever possible.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0z8zkk2mfiirbr3slfv564n685yiahr2aj3gdk6k3qymkmmdxsy0"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -14327,13 +15302,7 @@ rasterizing glyphs, using native font engines whenever possible.")
         ("rust-serde" ,rust-serde-1)
         ("rust-signal-hook" ,rust-signal-hook-0.3)
         ("rust-signal-hook-mio" ,rust-signal-hook-mio-0.2)
-        ("rust-winapi" ,rust-winapi-0.3))))
-    (home-page "https://github.com/crossterm-rs/crossterm")
-    (synopsis "Crossplatform terminal library for manipulating terminals")
-    (description
-     "This package provides a crossplatform terminal library for manipulating
-terminals.")
-    (license license:expat)))
+        ("rust-winapi" ,rust-winapi-0.3))))))
 
 (define-public rust-crossterm-0.19
   (package
@@ -14361,8 +15330,31 @@ terminals.")
         ("rust-signal-hook" ,rust-signal-hook-0.1)
         ("rust-winapi" ,rust-winapi-0.3))))))
 
+(define-public rust-crossterm-winapi-0.9
+  (package
+    (name "rust-crossterm-winapi")
+    (version "0.9.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "crossterm-winapi" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "075z15gxm4rn5yywq46khbg29bf504ix0f06zq3hx8aa91db7q9a"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/crossterm-rs/crossterm-winapi")
+    (synopsis "Basic simple abstractions around common WinAPI calls")
+    (description
+     "This package is a WinAPI wrapper that provides some basic simple
+abstractions around common WinAPI calls.")
+    (license license:expat)))
+
 (define-public rust-crossterm-winapi-0.8
   (package
+    (inherit rust-crossterm-winapi-0.9)
     (name "rust-crossterm-winapi")
     (version "0.8.0")
     (source
@@ -14372,16 +15364,9 @@ terminals.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "01q57jwnlicqxa2igg5nig3916kf5w6sqgbxk40q6hr2frh6cs9s"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
-       #:cargo-inputs (("rust-winapi" ,rust-winapi-0.3))))
-    (home-page "https://github.com/crossterm-rs/crossterm-winapi")
-    (synopsis "Basic simple abstractions around common WinAPI calls")
-    (description
-     "This package is a WinAPI wrapper that provides some basic simple
-abstractions around common WinAPI calls.")
-    (license license:expat)))
+       #:cargo-inputs (("rust-winapi" ,rust-winapi-0.3))))))
 
 (define-public rust-crossterm-winapi-0.7
   (package
@@ -14420,19 +15405,6 @@ abstractions around common WinAPI calls.")
 number ``crunching``.")
     (license license:expat)))
 
-(define-public rust-crunchy-0.1
-  (package
-    (inherit rust-crunchy-0.2)
-    (name "rust-crunchy")
-    (version "0.1.6")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "crunchy" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32 "1nnbh2k3pv1diyd0i0p3a08kd4afqc17yz0b43hn5xn9qlqs9x52"))))))
-
 (define-public rust-roxmltree-0.14
   (package
     (name "rust-roxmltree")
@@ -15063,6 +16035,7 @@ data structures that can be easily serialized to and deserialized from disk.")
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-sct" ,rust-sct-0.6))))
+    (native-inputs (list perl))
     (home-page "https://github.com/ctz/ct-logs")
     (synopsis "Google's list of Certificate Transparency logs")
     (description
@@ -15142,10 +16115,10 @@ use with sct crate.")
      "This package provides an @code{__attribute__((constructor))} for Rust.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-ctr-0.8
+(define-public rust-ctr-0.9
   (package
     (name "rust-ctr")
-    (version "0.8.0")
+    (version "0.9.2")
     (source
      (origin
        (method url-fetch)
@@ -15153,11 +16126,17 @@ use with sct crate.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1sk1aykwhkny92cnvl6s75dx3fyvfzw5xkd6xz3y7w5anhgvk6q4"))))
+        (base32 "0d88b73waamgpfjdml78icxz45d95q7vi2aqa604b0visqdfws83"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs (("rust-cipher" ,rust-cipher-0.3))))
+     `(#:cargo-inputs
+       (("rust-cipher" ,rust-cipher-0.4))
+       #:cargo-development-inputs
+       (("rust-aes" ,rust-aes-0.8)
+        ("rust-cipher" ,rust-cipher-0.4)
+        ("rust-hex-literal" ,rust-hex-literal-0.3)
+        ("rust-kuznyechik" ,rust-kuznyechik-0.8)
+        ("rust-magma" ,rust-magma-0.8))))
     (home-page "https://docs.rs/ctr/")
     (synopsis "CTR block mode of operation")
     (description "This package provides a generic implementations of CTR mode
@@ -15165,6 +16144,23 @@ for block ciphers. Mode functionality is accessed using traits from
 re-exported cipher crate.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-ctr-0.8
+  (package
+    (inherit rust-ctr-0.9)
+    (name "rust-ctr")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ctr" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1sk1aykwhkny92cnvl6s75dx3fyvfzw5xkd6xz3y7w5anhgvk6q4"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-cipher" ,rust-cipher-0.3))))))
+
 (define-public rust-ctr-0.6
   (package
     (inherit rust-ctr-0.8)
@@ -15185,20 +16181,22 @@ re-exported cipher crate.")
 (define-public rust-ctrlc-3
   (package
     (name "rust-ctrlc")
-    (version "3.1.7")
+    (version "3.2.5")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "ctrlc" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "027bzbddk0wg7s2wnbgcwx2iv6bjzvxfpp0s2xdg444yfklr4ymm"))))
+        (base32 "0fgng4k7d3bx2q86z2djkngwss43wkrfkriswhgf9jqqlv137kxv"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-nix" ,rust-nix-0.18)
-        ("rust-winapi" ,rust-winapi-0.3))))
+       (("rust-nix" ,rust-nix-0.26)
+        ("rust-windows-sys" ,rust-windows-sys-0.45))
+       #:cargo-development-inputs
+       (("rust-windows-sys" ,rust-windows-sys-0.45))))
     (home-page "https://github.com/Detegr/rust-ctrlc")
     (synopsis "Easy Ctrl-C handler for Rust projects")
     (description
@@ -15227,14 +16225,14 @@ use with bindgen.")
 (define-public rust-curl-0.4
   (package
     (name "rust-curl")
-    (version "0.4.43")
+    (version "0.4.44")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "curl" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "07v5s3qafyl9gnnlzbddgg5fzy41gncy00ahbbv46nr0xyp5bn1p"))))
+        (base32 "08hsq6ssy228df56adv2wbgam05f5rw1f2wzs7mhkb678qbx36sh"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #false                  ;require internet access
@@ -15257,14 +16255,14 @@ use with bindgen.")
     (home-page "https://github.com/alexcrichton/curl-rust")
     (synopsis "Rust bindings to libcurl for making HTTP requests")
     (description
-     "This package provides Rust bindings to libcurl for making HTTP
-requests")
+     "This package provides Rust bindings to @code{libcurl} for making HTTP
+requests.")
     (license license:expat)))
 
 (define-public rust-curl-sys-0.4
   (package
     (name "rust-curl-sys")
-    (version "0.4.53+curl-7.82.0")
+    (version "0.4.61+curl-8.0.1")
     (source
       (origin
         (method url-fetch)
@@ -15272,24 +16270,22 @@ requests")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0lh398vd34c55afyw5csbxqmnp7caxgpgci3y89c60lmb9d914l0"))
+          "0yfv88w17434s5mbrcphsnvpvx0103127ndkqlxnzbj1yl85rl0l"))
         (modules '((guix build utils)))
         (snippet
-         '(begin (delete-file-recursively "curl") #t))))
+         '(begin (delete-file-recursively "curl")))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-libc" ,rust-libc-0.2)
+       (("rust-cc" ,rust-cc-1)
+        ("rust-libc" ,rust-libc-0.2)
         ("rust-libnghttp2-sys" ,rust-libnghttp2-sys-0.1)
         ("rust-libz-sys" ,rust-libz-sys-1)
-        ("rust-mesalink" ,rust-mesalink-1)
         ("rust-openssl-sys" ,rust-openssl-sys-0.9)
-        ("rust-winapi" ,rust-winapi-0.3)
-        ("rust-cc" ,rust-cc-1)
         ("rust-pkg-config" ,rust-pkg-config-0.3)
-        ("rust-vcpkg" ,rust-vcpkg-0.2))
-       #:cargo-development-inputs
-       (("rust-cfg-if" ,rust-cfg-if-1))))
+        ("rust-rustls-ffi" ,rust-rustls-ffi-0.8)
+        ("rust-vcpkg" ,rust-vcpkg-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))))
     (native-inputs
      (list pkg-config))
     (inputs
@@ -16760,18 +17756,17 @@ Rust.")
 (define-public rust-derive-arbitrary-1
   (package
     (name "rust-derive-arbitrary")
-    (version "1.2.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "derive_arbitrary" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0zw12jc6k6aixqs6m2rsj56grhx2xjw2l8rhr8rj1wj897qdy0s9"))))
+    (version "1.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "derive_arbitrary" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1dy8pmv7d8diqhbh1b88v8q5g0inwkgb465877jqimbjqjgfpkgk"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))))
@@ -17574,6 +18569,7 @@ diff.")
        #:cargo-inputs
        (("rust-blobby" ,rust-blobby-0.3)
         ("rust-block-buffer" ,rust-block-buffer-0.10)
+        ("rust-const-oid" ,rust-const-oid-0.9)
         ("rust-crypto-common" ,rust-crypto-common-0.1)
         ("rust-generic-array" ,rust-generic-array-0.14)
         ("rust-subtle" ,rust-subtle-2))))
@@ -18076,6 +19072,29 @@ a vector.")
 not support network, only raw protocol parser.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-dns-sd-0.1
+  (package
+    (name "rust-dns-sd")
+    (version "0.1.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "dns-sd" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "11r0jymjshfnn3sh2nqjhrikk4r5rr1g36sip9iqy8i0xafm0j6p"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2))
+       #:cargo-development-inputs
+       (("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (inputs (list avahi))
+    (native-inputs (list pkg-config))
+    (home-page "https://github.com/plietar/rust-dns-sd")
+    (synopsis "Rust binding for DNS-SD")
+    (description "Rust bindings for DNS Service Discovery (DNS-SD).")
+    (license license:expat)))
+
 (define-public rust-doc-comment-0.3
   (package
     (name "rust-doc-comment")
@@ -18206,15 +19225,18 @@ from macros.")
 (define-public rust-document-features-0.2
   (package
     (name "rust-document-features")
-    (version "0.2.1")
+    (version "0.2.7")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "document-features" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32 "121wr2bd8a4s5i5yrxjz8c5amw2l69xmqqma86x6y4xmcgyhj75h"))))
+         (base32 "0mv1xg386as8zndw6kdgs4bwxwwlg42srdhkmgf00zz1zirwb4z4"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f          ; Needs nightly features.
+       #:cargo-inputs (("rust-litrs" ,rust-litrs-0.2))))
     (home-page "https://slint-ui.com")
     (synopsis "Extract documentation for feature flags from Cargo.toml")
     (description "Extract documentation for the feature flags from comments in
@@ -19063,7 +20085,7 @@ and authentication, easy email builders, and async support.")
 (define-public rust-embed-resource-1
   (package
     (name "rust-embed-resource")
-    (version "1.6.2")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
@@ -19071,12 +20093,15 @@ and authentication, easy email builders, and async support.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0w6l2zh82sx8rqjpr2a0y56m6hjb6zrqbp3l8b984a96y7mnvsnh"))))
+        (base32 "0piayd947h4dswbpwqs02zq42y4kfzxcl52wmr7pbr07dj3vnap6"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-vswhom" ,rust-vswhom-0.1)
-        ("rust-winreg" ,rust-winreg-0.8))))
+       (("rust-cc" ,rust-cc-1)
+        ("rust-rustc-version" ,rust-rustc-version-0.4)
+        ("rust-toml" ,rust-toml-0.5)
+        ("rust-vswhom" ,rust-vswhom-0.1)
+        ("rust-winreg" ,rust-winreg-0.10))))
     (home-page "https://github.com/nabijaczleweli/rust-embed-resource")
     (synopsis
      "Cargo library to handle compilation and inclusion of Windows resources")
@@ -19488,22 +20513,21 @@ unescapes strings.")
 from HTML entities.")
     (license license:expat)))
 
-(define-public rust-enum-as-inner-0.3
+(define-public rust-enum-as-inner-0.5
   (package
     (name "rust-enum-as-inner")
-    (version "0.3.3")
+    (version "0.5.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "enum-as-inner" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "15gmpgywijda93lkq7hf2y53h66sqkhzabzbxich288xm6b00pvw"))))
+        (base32 "05m1frlkgrikja714zxb97i00rhj36zlifiwiby7ymkx0jx0nwn9"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-heck" ,rust-heck-0.3)
+       (("rust-heck" ,rust-heck-0.4)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))))
@@ -19513,6 +20537,26 @@ from HTML entities.")
 accessor functions on enums.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-enum-as-inner-0.3
+  (package
+    (inherit rust-enum-as-inner-0.5)
+    (name "rust-enum-as-inner")
+    (version "0.3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "enum-as-inner" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "15gmpgywijda93lkq7hf2y53h66sqkhzabzbxich288xm6b00pvw"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-heck" ,rust-heck-0.3)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))))
+
 (define-public rust-enum-as-inner-0.2
   (package
     (inherit rust-enum-as-inner-0.3)
@@ -19709,23 +20753,22 @@ compact sets of enums.")
 @code{rust-enumset}.  It is not public API.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-env-logger-0.9
+(define-public rust-env-logger-0.10
   (package
     (name "rust-env-logger")
-    (version "0.9.0")
+    (version "0.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "env_logger" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1hzr53r0wga51j0w5zid69ylbfizg4qdbq0vqdj6rvki94sg0b0b"))))
+        (base32 "1w797qgkrmqdacsbc0j6yvpnmvfc9lx6k8fm79rndkxci5mapkc5"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-atty" ,rust-atty-0.2)
-        ("rust-humantime" ,rust-humantime-2)
+     `(#:cargo-inputs
+       (("rust-humantime" ,rust-humantime-2)
+        ("rust-is-terminal" ,rust-is-terminal-0.4)
         ("rust-log" ,rust-log-0.4)
         ("rust-regex" ,rust-regex-1)
         ("rust-termcolor" ,rust-termcolor-1))))
@@ -19736,6 +20779,26 @@ compact sets of enums.")
 is configured via an environment variable.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-env-logger-0.9
+  (package
+    (inherit rust-env-logger-0.10)
+    (name "rust-env-logger")
+    (version "0.9.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "env_logger" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1rq0kqpa8my6i1qcyhfqrn1g9xr5fbkwwbd42nqvlzn9qibncbm1"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-atty" ,rust-atty-0.2)
+        ("rust-humantime" ,rust-humantime-2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-termcolor" ,rust-termcolor-1))))))
+
 (define-public rust-env-logger-0.8
   (package
     (inherit rust-env-logger-0.9)
@@ -20499,6 +21562,28 @@ traits but without the boilerplate.")
 handling type for easy idiomatic error handling and reporting in Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-faccess-0.2
+  (package
+    (name "rust-faccess")
+    (version "0.2.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "faccess" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1m967rz9qknzbqh7l8hga91s32y3p041mbk8w81skmh2b116dbjr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                  ; Not all files included.
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/Freaky/faccess")
+    (synopsis "Simple file accessibility checks")
+    (description "Simple file accessibility checks in rust.")
+    (license license:expat)))
+
 (define-public rust-fake-simd-0.1
   (package
     (name "rust-fake-simd")
@@ -20523,7 +21608,7 @@ handling type for easy idiomatic error handling and reporting in Rust.")
 (define-public rust-fallible-collections-0.4
   (package
     (name "rust-fallible-collections")
-    (version "0.4.2")
+    (version "0.4.6")
     (source
      (origin
        (method url-fetch)
@@ -20532,11 +21617,11 @@ handling type for easy idiomatic error handling and reporting in Rust.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1sk6ckixvf0pax47qgs8lfd2zi2gmyg1xgk1k7z2qgalhaaidnaa"))))
+         "0ma7lga3zqbpzrhl76raljc6y69f38mb6j5yhkk6ldkh531wqmrz"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-hashbrown" ,rust-hashbrown-0.9))))
+       (("rust-hashbrown" ,rust-hashbrown-0.12))))
     (home-page "https://github.com/vcombey/fallible_collections")
     (synopsis "Fallible collections implementation in Rust")
     (description "This library extends the Rust standard collections to return
@@ -20764,14 +21849,14 @@ floats.")
 (define-public rust-fastrand-1
   (package
     (name "rust-fastrand")
-    (version "1.8.0")
+    (version "1.9.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "fastrand" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "16b4z2rig7zmyxw1hsiydv89h9wcshilds13dfpc919kmb7hg957"))))
+        (base32 "1gh12m56265ihdbzh46bhh0jf74i197wm51jg1cw75q7ggi96475"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -21297,45 +22382,21 @@ cross platform API.")
 custom fixed-size hash types.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-fixed-hash-0.2
-  (package
-    (inherit rust-fixed-hash-0.7)
-    (name "rust-fixed-hash")
-    (version "0.2.5")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "fixed-hash" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32 "0wvj52bf37nhg6mv5h235zgdg7nsdarag58mf4i49cdgc3l6rzks"))))
-    (build-system cargo-build-system)
-    (arguments
-      `(#:cargo-inputs
-        (("rust-heapsize" ,rust-heapsize-0.4)
-         ("rust-libc" ,rust-libc-0.2)
-         ("rust-quickcheck" ,rust-quickcheck-0.6)
-         ("rust-rand" ,rust-rand-0.4)
-         ("rust-rustc-hex" ,rust-rustc-hex-2)
-         ("rust-serde" ,rust-serde-1)
-         ("rust-serde-derive" ,rust-serde-derive-1)
-         ("rust-uint" ,rust-uint-0.4))))))
-
 (define-public rust-fixedbitset-0.4
   (package
     (name "rust-fixedbitset")
-    (version "0.4.0")
+    (version "0.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "fixedbitset" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "17mnwa48dy11dnbasxa0c92sdj243acjl2ilhpcb1fa0pvxa93ir"))))
+        (base32 "101v41amgv5n9h4hcghvrbfk5vrncx1jwm35rn5szv4rk55i7rqc"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs (("rust-serde" ,rust-serde-1))))
+     `(#:cargo-inputs (("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs (("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://github.com/bluss/fixedbitset")
     (synopsis "Simple bitset collection")
     (description "FixedBitSet is a simple bitset collection.")
@@ -21467,7 +22528,7 @@ custom fixed-size hash types.")
 (define-public rust-flate2-1
   (package
     (name "rust-flate2")
-    (version "1.0.23")
+    (version "1.0.25")
     (source
      (origin
        (method url-fetch)
@@ -21476,27 +22537,18 @@ custom fixed-size hash types.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1bq9vavadgqqr72z5bzbp952c4q67a71kfc4r55qzlw6cvlj55dk"))))
+         "0hg8ih51lx5xkz2zlzpsy1j1xka8gs8vhk2964ppgj5ighwxp8m8"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-cfg-if" ,rust-cfg-if-1)
-        ("rust-cloudflare-zlib-sys" ,rust-cloudflare-zlib-sys-0.3)
+     `(#:cargo-inputs
+       (("rust-cloudflare-zlib-sys" ,rust-cloudflare-zlib-sys-0.3)
         ("rust-crc32fast" ,rust-crc32fast-1)
-        ("rust-futures" ,rust-futures-0.1)
-        ("rust-libc" ,rust-libc-0.2)
+        ("rust-libz-ng-sys" ,rust-libz-ng-sys-1)
         ("rust-libz-sys" ,rust-libz-sys-1)
-        ("rust-miniz-sys" ,rust-miniz-sys-0.1)
-        ("rust-miniz-oxide" ,rust-miniz-oxide-0.5)
-        ("rust-tokio-io" ,rust-tokio-io-0.1))
+        ("rust-miniz-oxide" ,rust-miniz-oxide-0.6))
        #:cargo-development-inputs
-       (("rust-futures" ,rust-futures-0.1)
-        ("rust-quickcheck" ,rust-quickcheck-1)
-        ("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))))
+       (("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-rand" ,rust-rand-0.8))))
     (home-page "https://github.com/alexcrichton/flate2-rs")
     (synopsis
      "Bindings to miniz.c for DEFLATE compression and decompression")
@@ -21590,23 +22642,6 @@ traits.")
         (base32
          "0036jb8ry4h83n319jb20b5yvyfyq8mx8dkxnyjm22nq8fl8yjhk"))))))
 
-(define-public rust-float-cmp-0.3
-  (package
-    (inherit rust-float-cmp-0.5)
-    (name "rust-float-cmp")
-    (version "0.3.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "float-cmp" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1c0hmj46xma5aysz0qb49padhc26aw875whx6q6rglsj5dqpds1b"))))
-    (arguments
-     `(#:cargo-inputs (("rust-num" ,rust-num-0.1))))))
-
 (define-public rust-float-ord-0.3
   (package
     (name "rust-float-ord")
@@ -21703,29 +22738,30 @@ crate.")
 (define-public rust-flume-0.10
   (package
     (name "rust-flume")
-    (version "0.10.0")
+    (version "0.10.14")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "flume" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "14dvj6d2r6vgsy3adv4lncbddjwc59rgl0rcwc1kdnsmqkh7lwhy"))))
+        (base32 "0xvm1wpzkjvf99jxy9jp3dxw5nipa9blg7j0ngvxj0rl3i2b8mqn"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #true    ;XXX: remove when rust-async-std-1 is packaged
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-futures-core" ,rust-futures-core-0.3)
         ("rust-futures-sink" ,rust-futures-sink-0.3)
-        ("rust-nanorand" ,rust-nanorand-0.5)
-        ("rust-spinning-top" ,rust-spinning-top-0.2))
+        ("rust-nanorand" ,rust-nanorand-0.7)
+        ("rust-pin-project" ,rust-pin-project-1)
+        ("rust-spin" ,rust-spin-0.9))
        #:cargo-development-inputs
-       (;("rust-async-std" ,rust-async-std-1)
+       (("rust-async-std" ,rust-async-std-1)
         ("rust-criterion" ,rust-criterion-0.3)
-        ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.4)
-        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
+        ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
         ("rust-futures" ,rust-futures-0.3)
-        ("rust-rand" ,rust-rand-0.7)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-tokio" ,rust-tokio-1)
         ("rust-waker-fn" ,rust-waker-fn-1))))
     (home-page "https://github.com/zesterer/flume")
     (synopsis "Fast multi-producer channel")
@@ -22037,14 +23073,21 @@ values to other threads.")
        (uri (crate-uri "freetype-sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "06kkds31s6b1i39dyanwmzbnic7laia1kk3gfvx8sqncq08l0zd3"))))
+        (base32 "06kkds31s6b1i39dyanwmzbnic7laia1kk3gfvx8sqncq08l0zd3"))
+       (snippet
+        #~(begin
+            (use-modules (guix build utils))
+            (delete-file-recursively "freetype2")))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-cmake" ,rust-cmake-0.1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (inputs
+     (list freetype))
+    (native-inputs
+     (list pkg-config))
     (home-page "https://github.com/PistonDevelopers/freetype-sys")
     (synopsis "Low level binding for FreeType font library")
     (description
@@ -22399,6 +23442,28 @@ pseudorandom number generator")
     (description "Low-level Rust bindings for the Zircon kernel.")
     (license license:bsd-3)))
 
+(define-public rust-funty-2
+  (package
+    (name "rust-funty")
+    (version "2.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "funty" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "177w048bm0046qlzvp33ag3ghqkqw4ncpzcm5lq36gxf2lla7mg6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-static-assertions" ,rust-static-assertions-1))))
+    (home-page "https://ferrilab.github.io/ferrilab")
+    (synopsis "Trait generalization over the primitive types")
+    (description "The funty crate (fundamental types) provides traits that
+unify the Rust non-pointer primitives.  It also unifies pointers and
+references by lifting access permissions into the trait system.")
+    (license license:expat)))
+
 (define-public rust-funty-1
   (package
     (name "rust-funty")
@@ -23721,23 +24786,24 @@ platforms.")
 (define-public rust-getrandom-0.2
   (package
     (name "rust-getrandom")
-    (version "0.2.0")
+    (version "0.2.8")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "getrandom" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1x3clmvj5k2h9qv3ihbyif1rns3pf5y5n66f5jjyc5zr6v7jb07f"))))
+        (base32 "0cbb766pcyi7sws0fnp1pxkz0nhiya0ckallq502bxmq49mfnnn0"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-cfg-if" ,rust-cfg-if-0.1)
+       (("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-js-sys" ,rust-js-sys-0.3)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
         ("rust-stdweb" ,rust-stdweb-0.4)
-        ("rust-wasi" ,rust-wasi-0.9)
+        ("rust-wasi" ,rust-wasi-0.11)
         ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2))
        #:cargo-development-inputs
        (("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))
@@ -23879,27 +24945,6 @@ getters and setters on fields.")
     (description "This package provides raw FFI bindings for GNU Gettext.")
     (license license:expat)))
 
-(define-public rust-gettext-sys-0.19
-  (package
-    (inherit rust-gettext-sys-0.21)
-    (name "rust-gettext-sys")
-    (version "0.19.9")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "gettext-sys" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0lzi6ja81vc16mhcdmn3lw35120n9ijhvsy5dh5775mpbfxc8d70"))
-        (modules '((guix build utils)))
-        (snippet
-         '(begin (delete-file "gettext-0.19.8.1.tar.xz") #t))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-cc" ,rust-cc-1))))))
-
 (define-public rust-gfa-0.10
   (package
     (name "rust-gfa")
@@ -23935,25 +24980,25 @@ getters and setters on fields.")
 @acronym{GFA, Graphical Fragment Assembly} format.")
     (license license:expat)))
 
-(define-public rust-ghash-0.3
+(define-public rust-ghash-0.5
   (package
     (name "rust-ghash")
-    (version "0.3.0")
+    (version "0.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "ghash" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0c957q9sk1q93pqqfvhcmflfm1zvbr14aznfpm25kqd6i437zqnn"))))
+        (base32 "0h1y3v3kj8xxkf2snv1yly0lr20fdh3jrm60p382szbiwl6pac6r"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-polyval" ,rust-polyval-0.4)
+       (("rust-opaque-debug" ,rust-opaque-debug-0.3)
+        ("rust-polyval" ,rust-polyval-0.6)
         ("rust-zeroize" ,rust-zeroize-1))
        #:cargo-development-inputs
-       (("rust-hex-literal" ,rust-hex-literal-0.1))))
+       (("rust-hex-literal" ,rust-hex-literal-0.3))))
     (home-page "https://github.com/RustCrypto/universal-hashes")
     (synopsis "Universal hash over GF(2^128)")
     (description "This package provides a universal hash over GF(2^128) useful
@@ -23961,6 +25006,26 @@ for constructing a Message Authentication Code (MAC), as in the AES-GCM
 authenticated encryption cipher.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-ghash-0.3
+  (package
+    (inherit rust-ghash-0.5)
+    (name "rust-ghash")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ghash" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0c957q9sk1q93pqqfvhcmflfm1zvbr14aznfpm25kqd6i437zqnn"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-polyval" ,rust-polyval-0.4)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-hex-literal" ,rust-hex-literal-0.1))))))
+
 (define-public rust-ghash-0.2
   (package
     (inherit rust-ghash-0.3)
@@ -24006,28 +25071,6 @@ permitted in ordinary Rust.")
     ;; Either license can be chosen at the users option.
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-gif-0.11
-  (package
-    (name "rust-gif")
-    (version "0.11.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "gif" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32 "1pnqfg0k84v0cnqyf85jqvwy3jcs580bfjaps5rzbl3kk5lqyrjs"))))
-    (build-system cargo-build-system)
-    (arguments
-      `(#:skip-build? #t
-        #:cargo-inputs
-        (("rust-color-quant" ,rust-color-quant-1)
-         ("rust-weezl" ,rust-weezl-0.1))))
-    (home-page "https://github.com/image-rs/image-gif")
-    (synopsis "GIF de- and encoder")
-    (description "This crate provides a GIF de- and encoder.")
-    (license (list license:expat license:asl2.0))))
-
 (define-public rust-gimli-0.26
   (package
     (name "rust-gimli")
@@ -24112,10 +25155,10 @@ dirty state into your program.")
      "This is an internal macro crate for git-version.")
     (license license:bsd-2)))
 
-(define-public rust-git2-0.15
+(define-public rust-git2-0.16
   (package
     (name "rust-git2")
-    (version "0.15.0")
+    (version "0.16.1")
     (source
      (origin
        (method url-fetch)
@@ -24123,8 +25166,7 @@ dirty state into your program.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "1lf7yxgrbglx5qqvk033n44ymmrg72z271911jwix9d6lgjbx519"))))
+        (base32 "1k1aavsfhk0i9jycc9gb61w2jwy8w9dgkd7zkz295wwm566gdxyc"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -24153,6 +25195,40 @@ repositories.  This library is both threadsafe and memory safe and allows both
 reading and writing git repositories.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-git2-0.15
+  (package
+    (inherit rust-git2-0.16)
+    (name "rust-git2")
+    (version "0.15.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "git2" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1lf7yxgrbglx5qqvk033n44ymmrg72z271911jwix9d6lgjbx519"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-libgit2-sys" ,rust-libgit2-sys-0.14)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-openssl-probe" ,rust-openssl-probe-0.1)
+        ("rust-openssl-sys" ,rust-openssl-sys-0.9)
+        ("rust-url" ,rust-url-2))
+       #:cargo-development-inputs
+       (("rust-paste" ,rust-paste-1)
+        ("rust-structopt" ,rust-structopt-0.3)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-time" ,rust-time-0.1))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("git" ,git-minimal)))           ;for a single test
+    (inputs
+     (list libgit2 libssh2 openssl zlib))))
+
 (define-public rust-git2-0.14
   (package
     (inherit rust-git2-0.15)
@@ -24180,7 +25256,9 @@ reading and writing git repositories.")
        (("rust-paste" ,rust-paste-1)
         ("rust-structopt" ,rust-structopt-0.3)
         ("rust-tempfile" ,rust-tempfile-3)
-        ("rust-time" ,rust-time-0.1))))))
+        ("rust-time" ,rust-time-0.1))))
+    (inputs
+     (list libgit2-1.4 libssh2 openssl zlib))))
 
 (define-public rust-git2-0.13
   (package
@@ -24305,10 +25383,10 @@ reading and writing git repositories.")
      (modify-inputs (package-inputs rust-git2-0.11)
        (prepend curl)))))
 
-(define-public rust-git2-curl-0.14
+(define-public rust-git2-curl-0.17
   (package
     (name "rust-git2-curl")
-    (version "0.14.1")
+    (version "0.17.0")
     (source
      (origin
        (method url-fetch)
@@ -24316,14 +25394,13 @@ reading and writing git repositories.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0l1sckmpvhd498c9ji04gkpfkfrpx7c8rabihczsnjx91v5kjdc8"))))
+        (base32 "0cydakv91acxkxfj0kazp9sc4mmr8l51649mi06wk9qv6kkg8xvm"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t                 ;need rust-civet and others
        #:cargo-inputs
        (("rust-curl" ,rust-curl-0.4)
-        ("rust-git2" ,rust-git2-0.13)
+        ("rust-git2" ,rust-git2-0.16)
         ("rust-log" ,rust-log-0.4)
         ("rust-url" ,rust-url-2))))
     (home-page "https://github.com/rust-lang/git2-rs")
@@ -24645,7 +25722,12 @@ path simultaneously, and returning all of the globs that matched.")
        (uri (crate-uri "globwalk" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1k6xwkydr7igvwjn3xkwjywk4213lcs53f576ilqz1h84jaazqwk"))))
+        (base32 "1k6xwkydr7igvwjn3xkwjywk4213lcs53f576ilqz1h84jaazqwk"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (substitute* "Cargo.toml"
+                  (("\"=([[:digit:]]+(\\.[[:digit:]]+)*)" _ version)
+                   (string-append "\"^" version)))))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -24653,7 +25735,7 @@ path simultaneously, and returning all of the globs that matched.")
         ("rust-ignore" ,rust-ignore-0.4)
         ("rust-walkdir" ,rust-walkdir-2))
        #:cargo-development-inputs
-       (("rust-backtrace" ,rust-backtrace-0.3.35)
+       (("rust-backtrace" ,rust-backtrace-0.3)
         ("rust-docmatic" ,rust-docmatic-0.1)
         ("rust-tempdir" ,rust-tempdir-0.3))))
     (home-page "https://github.com/gilnaa/globwalk")
@@ -24704,19 +25786,26 @@ timers.")
         (uri (crate-uri "gmp-mpfr-sys" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-          (base32 "1ysvdf352vcnb5ygmbwf5pkndqb0p6clmz0nqkf3nmz9ghssfim1"))))
+         (base32 "1ysvdf352vcnb5ygmbwf5pkndqb0p6clmz0nqkf3nmz9ghssfim1"))
+        (modules '((guix build utils)))
+        (snippet
+         '(begin
+            (delete-file-recursively "gmp-6.2.1-c")
+            (delete-file-recursively "mpc-1.2.1-c")
+            (delete-file-recursively "mpfr-4.1.0-p13-c")
+            (substitute* "Cargo.toml"
+              ;; Default to using system libraries.
+              (("^default.*") "default = [\"use-system-libs\"]\n")
+              ;; Also use the system library for each of the libraries.
+              (("^mpc.*") "mpc = [\"use-system-libs\"]\n")
+              (("^mpfr.*") "mpfr = [\"use-system-libs\"]\n"))))))
     (build-system cargo-build-system)
     (arguments
-      `(#:phases
-        (modify-phases %standard-phases
-          (add-after 'unpack 'set-shell-for-configure-script
-            (lambda _
-              (setenv "CONFIG_SHELL" (which "sh")))))
-       #:cargo-inputs
-        (("rust-libc" ,rust-libc-0.2)
-         ("rust-winapi" ,rust-winapi-0.3))))
-    (native-inputs
-     (list bash-minimal m4))
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (inputs
+     (list gmp mpc mpfr))
     (home-page "https://gitlab.com/tspiteri/gmp-mpfr-sys")
     (synopsis "Rust FFI bindings for GMP, MPFR, and MPC")
     (description "This package provides Rust FFI bindings for the numeric
@@ -25096,14 +26185,14 @@ of gzip files based on the gzip header implementation in the @code{flate2} crate
 (define-public rust-h2-0.3
   (package
     (name "rust-h2")
-    (version "0.3.7")
+    (version "0.3.15")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "h2" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0mdf0x3cxj4rhx2zrm0gnx02i43gqcz3q4awzidargff5xb1kn3z"))))
+        (base32 "1x6h3pqi4gzgcl6xdfpjmbm0mkh2mckgav4in9b54dfskny2k7sz"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -25117,7 +26206,7 @@ of gzip files based on the gzip header implementation in the @code{flate2} crate
         ("rust-indexmap" ,rust-indexmap-1)
         ("rust-slab" ,rust-slab-0.4)
         ("rust-tokio" ,rust-tokio-1)
-        ("rust-tokio-util" ,rust-tokio-util-0.6)
+        ("rust-tokio-util" ,rust-tokio-util-0.7)
         ("rust-tracing" ,rust-tracing-0.1))))
     (home-page "https://github.com/hyperium/h2")
     (synopsis "HTTP/2.0 client and server")
@@ -25203,8 +26292,40 @@ of gzip files based on the gzip header implementation in the @code{flate2} crate
         ("rust-webpki" ,rust-webpki-0.21)
         ("rust-webpki-roots" ,rust-webpki-roots-0.17))))))
 
+(define-public rust-half-2
+  (package
+    (name "rust-half")
+    (version "2.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "half" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1l1gdlzxgm7wc8xl5fxas20kfi1j35iyb7vfjkghbdzijcvazd02"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytemuck" ,rust-bytemuck-1)
+        ("rust-crunchy" ,rust-crunchy-0.2)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-zerocopy" ,rust-zerocopy-0.6))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.4)
+        ("rust-crunchy" ,rust-crunchy-0.2)
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-quickcheck-macros" ,rust-quickcheck-macros-1)
+        ("rust-rand" ,rust-rand-0.8))))
+    (home-page "https://github.com/starkat99/half-rs")
+    (synopsis "Half-precision floating point f16 type")
+    (description
+     "Half-precision floating point f16 type for Rust implementing the
+IEEE 754-2008 binary16 type.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-half-1
   (package
+    (inherit rust-half-2)
     (name "rust-half")
     (version "1.7.1")
     (source
@@ -25214,7 +26335,6 @@ of gzip files based on the gzip header implementation in the @code{flate2} crate
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1wzavaaaa2jwkm4i1dbglmwjfsdhn4n73wrkbdzllaynlams5b32"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-serde" ,rust-serde-1))
@@ -25223,13 +26343,7 @@ of gzip files based on the gzip header implementation in the @code{flate2} crate
         ("rust-quickcheck" ,rust-quickcheck-0.9)
         ("rust-quickcheck-macros" ,rust-quickcheck-macros-0.9)
         ("rust-rand" ,rust-rand-0.7)
-        ("rust-version-sync" ,rust-version-sync-0.8))))
-    (home-page "https://github.com/starkat99/half-rs")
-    (synopsis "Half-precision floating point f16 type")
-    (description
-     "Half-precision floating point f16 type for Rust implementing the
-IEEE 754-2008 binary16 type.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-version-sync" ,rust-version-sync-0.8))))))
 
 (define-public rust-home-0.5
   (package
@@ -25464,18 +26578,23 @@ hash map.")
   (package
     (inherit rust-hashbrown-0.9)
     (name "rust-hashbrown")
-    (version "0.8.0")
+    (version "0.8.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "hashbrown" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "09y86zmf59n6ys9yf2bvg9ckwwa1ijv2i3flkz45iqkwfmh7i6xb"))))
+        (base32 "09cckr5l71ypvfdbvv1qsag4222blixwn9300hpbr831j3vn46z9"))
+    (modules '((guix build utils)))
+    (snippet
+     '(begin (substitute* "Cargo.toml"
+               (("=1\\.0") "^1.0"))))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-ahash" ,rust-ahash-0.3)
+        ("rust-autocfg" ,rust-autocfg-1)
         ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
         ("rust-rayon" ,rust-rayon-1)
         ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
@@ -25626,26 +26745,6 @@ hash map.")
 their key-value pairs in a user controllable order.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-hashlink-0.6
-  (package
-    (inherit rust-hashlink-0.7)
-    (name "rust-hashlink")
-    (version "0.6.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "hashlink" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1a2gi4737lmqq1i48b9w13gvbkh4g3gc7gj6d3974hywy21gg76r"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-hashbrown" ,rust-hashbrown-0.9)
-        ("rust-serde" ,rust-serde-1))
-       #:cargo-development-inputs
-       (("rust-serde-test" ,rust-serde-test-1))))))
-
 (define-public rust-hdrhistogram-6
   (package
     (name "rust-hdrhistogram")
@@ -26070,7 +27169,7 @@ compile time.")
   (package
     (inherit rust-hex-literal-0.3)
     (name "rust-hex-literal")
-    (version "0.2.1")
+    (version "0.2.2")
     (source
      (origin
        (method url-fetch)
@@ -26079,7 +27178,7 @@ compile time.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1q36f0qq31ggh4ipcwb7a5g6jmci2010vn2v3qpaz4csxhhf47cn"))))
+         "04ba6fmk6q2mmzpl1wmfsaz3wyljcd0va8577wpmbx1wkccr61np"))))
     (arguments
      `(#:cargo-inputs
        (("rust-hex-literal-impl" ,rust-hex-literal-impl-0.2)
@@ -26107,7 +27206,7 @@ compile time.")
 (define-public rust-hex-literal-impl-0.2
   (package
     (name "rust-hex-literal-impl")
-    (version "0.2.1")
+    (version "0.2.3")
     (source
      (origin
        (method url-fetch)
@@ -26116,7 +27215,7 @@ compile time.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0bgldhp5gdwwnikfdxigmz9b64qpgwbjqk6mfgv0pvig9s25qk4x"))))
+         "1a25nz3v1323qhy328qr0mdzz0iyhjfxdhvqgy8bcpraz318yi2r"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -26145,8 +27244,35 @@ compile time.")
      `(#:cargo-inputs
        (("rust-proc-macro-hack" ,rust-proc-macro-hack-0.4))))))
 
+(define-public rust-hkdf-0.12
+  (package
+    (name "rust-hkdf")
+    (version "0.12.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hkdf" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0dyl16cf15hka32hv3l7dwgr3xj3brpfr27iyrbpdhlzdfgh46kr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-hmac" ,rust-hmac-0.12))
+       #:cargo-development-inputs
+       (("rust-blobby" ,rust-blobby-0.3)
+        ("rust-hex-literal" ,rust-hex-literal-0.2)
+        ("rust-sha-1" ,rust-sha-1-0.10)
+        ("rust-sha2" ,rust-sha2-0.10))))
+    (home-page "https://github.com/RustCrypto/KDFs/")
+    (synopsis "HMAC-based Extract-and-Expand Key Derivation Function (HKDF)")
+    (description "This package provides a HMAC-based Extract-and-Expand Key
+Derivation Function (HKDF).")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-hkdf-0.11
   (package
+    (inherit rust-hkdf-0.12)
     (name "rust-hkdf")
     (version "0.11.0")
     (source
@@ -26156,7 +27282,6 @@ compile time.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0sw8bz79xqq3bc5dh6nzv084g7va13j3lrqf91c10a2wimbnsw01"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-digest" ,rust-digest-0.9)
@@ -26167,12 +27292,7 @@ compile time.")
         ("rust-crypto-tests" ,rust-crypto-tests-0.5)
         ("rust-hex" ,rust-hex-0.4)
         ("rust-sha-1" ,rust-sha-1-0.9)
-        ("rust-sha2" ,rust-sha2-0.9))))
-    (home-page "https://github.com/RustCrypto/KDFs/")
-    (synopsis "HMAC-based Extract-and-Expand Key Derivation Function (HKDF)")
-    (description "This package provides a HMAC-based Extract-and-Expand Key
-Derivation Function (HKDF).")
-    (license (list license:expat license:asl2.0))))
+        ("rust-sha2" ,rust-sha2-0.9))))))
 
 (define-public rust-hkdf-0.10
   (package
@@ -26243,7 +27363,7 @@ Derivation Function (HKDF).")
 (define-public rust-hmac-0.12
   (package
     (name "rust-hmac")
-    (version "0.12.0")
+    (version "0.12.1")
     (source
      (origin
        (method url-fetch)
@@ -26252,7 +27372,7 @@ Derivation Function (HKDF).")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "18nnjkvvpkjw6ppcyijysgxmr4a7knd98msb6vgy4b3z7qgi7jnx"))))
+         "0pmbr069sfg76z7wsssfk5ddcqd9ncp79fyz6zcm6yn115yc6jbc"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -26634,26 +27754,48 @@ characters in HTML, decoding and unescaping HTML entities as well.")
 and traversing, manipulating, and querying the document tree.")
     (license license:expat)))
 
+(define-public rust-kuznyechik-0.8
+  (package
+    (name "rust-kuznyechik")
+    (version "0.8.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "kuznyechik" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0av39qh65xchvpfjkcwh861h9bzmmrgcrzl5h0sa5b692xabd0w4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cipher" ,rust-cipher-0.4))
+       #:cargo-development-inputs
+       (("rust-cipher" ,rust-cipher-0.4)
+        ("rust-hex-literal" ,rust-hex-literal-0.3))))
+    (home-page "https://github.com/RustCrypto/block-ciphers")
+    (synopsis "Kuznyechik (GOST R 34.12-2015) block cipher")
+    (description "Kuznyechik (GOST R 34.12-2015) block cipher")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-http-0.2
   (package
     (name "rust-http")
-    (version "0.2.1")
+    (version "0.2.9")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "http" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1y827q7j0gvs8z2x12biaik9db6nb902lpqv889cbcj84sbnkm98"))))
+        (base32 "10j4jjpngaymxjvi92hllr2y6acr09pq61cvzxd44qzvkb4zyvmx"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-bytes" ,rust-bytes-0.5)
+       (("rust-bytes" ,rust-bytes-1)
         ("rust-fnv" ,rust-fnv-1)
-        ("rust-itoa" ,rust-itoa-0.4))
+        ("rust-itoa" ,rust-itoa-1))
        #:cargo-development-inputs
        (("rust-doc-comment" ,rust-doc-comment-0.3)
-        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-indexmap" ,rust-indexmap-1.8)
         ("rust-quickcheck" ,rust-quickcheck-0.9)
         ("rust-rand" ,rust-rand-0.7)
         ("rust-seahash" ,rust-seahash-3)
@@ -26669,7 +27811,7 @@ requests and responses.")
   (package
     (inherit rust-http-0.2)
     (name "rust-http")
-    (version "0.1.17")
+    (version "0.1.21")
     (source
      (origin
        (method url-fetch)
@@ -26678,20 +27820,58 @@ requests and responses.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "06icxvrd26r6s7dzjavja7r47hgjb9851wblqh8frxnsy3q29lzf"))))
+         "1w21xnhd8f48zvbmm5njg2y1nb4p08ppn8r0cs2xi5d8wgnzbk6n"))))
     (arguments
-     `(#:cargo-inputs
+     `(#:tests? #f          ; doc tests fail
+       #:cargo-inputs
        (("rust-bytes" ,rust-bytes-0.4)
         ("rust-fnv" ,rust-fnv-1)
         ("rust-itoa" ,rust-itoa-0.4))
        #:cargo-development-inputs
-       (("rust-indexmap" ,rust-indexmap-1)
+       (("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-indexmap" ,rust-indexmap-1.8)
         ("rust-quickcheck" ,rust-quickcheck-0.6)
         ("rust-rand" ,rust-rand-0.4)
         ("rust-seahash" ,rust-seahash-3)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1))))))
 
+(define-public rust-http-auth-0.1
+  (package
+    (name "rust-http-auth")
+    (version "0.1.8")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "http-auth" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1g6gpn2py0c4l45wp61k3zc45vg5l20zq39mxgxh56hzgb6wlc2l"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.21)
+        ("rust-digest" ,rust-digest-0.10)
+        ("rust-hex" ,rust-hex-0.4)
+        ("rust-http" ,rust-http-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-md-5" ,rust-md-5-0.10)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-sha2" ,rust-sha2-0.10))
+       #:cargo-development-inputs
+       (("rust-pretty-assertions" ,rust-pretty-assertions-1)
+        ("rust-reqwest" ,rust-reqwest-0.11))))
+    (inputs
+     (list openssl))
+    (native-inputs
+     (list pkg-config))
+    (home-page "https://github.com/scottlamb/http-auth")
+    (synopsis "HTTP authentication for rust")
+    (description "This package provices HTTP authentication; it can parse
+challenge lists, respond to Basic and Digest challenges.  It is likely to be
+extended with server support and additional auth schemes.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-http-body-0.4
   (package
     (name "rust-http-body")
@@ -26831,7 +28011,7 @@ HTTP request or response body.")
 (define-public rust-httparse-1
   (package
     (name "rust-httparse")
-    (version "1.7.1")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
@@ -26839,7 +28019,7 @@ HTTP request or response body.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0k60q1hx96cvmjn6k3yjkff87fz0ga2a4z0g9ss8a9x5nndy4v29"))))
+        (base32 "010rrfahm1jss3p022fqf3j3jmm72vhn4iqhykahb9ynpaag75yq"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
@@ -26964,14 +28144,14 @@ SystemTime}}.")
 (define-public rust-hyper-0.14
   (package
     (name "rust-hyper")
-    (version "0.14.15")
+    (version "0.14.24")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "hyper" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0g4mnsacfvj4127587ihm802kzkh6zgs0c3a2mayc82g3q4w0vj3"))))
+        (base32 "0k0nbykigwb9gmbqb13dyjdq7izc624j8ymaa21xns0bz9r160ay"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -27143,8 +28323,45 @@ SystemTime}}.")
     (description "This package provides native-tls support for Hyper 0.10.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-hyper-rustls-0.23
+  (package
+    (name "rust-hyper-rustls")
+    (version "0.23.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hyper-rustls" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0736s6a32dqr107f943xaz1n05flbinq6l19lq1wsrxkc5g9d20p"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f              ; Not all files included.
+       #:cargo-inputs
+       (("rust-http" ,rust-http-0.2)
+        ("rust-hyper" ,rust-hyper-0.14)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-rustls" ,rust-rustls-0.20)
+        ("rust-rustls-native-certs" ,rust-rustls-native-certs-0.6)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.23)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.22))
+       #:cargo-development-inputs
+       (("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-hyper" ,rust-hyper-0.14)
+        ("rust-rustls" ,rust-rustls-0.20)
+        ("rust-rustls-pemfile" ,rust-rustls-pemfile-1)
+        ("rust-tokio" ,rust-tokio-1))))
+    (home-page "https://github.com/ctz/hyper-rustls")
+    (synopsis "Rustls+Hyper integration for pure Rust HTTPS")
+    (description
+     "This package provides Rustls+Hyper integration for pure Rust HTTPS.")
+    (license
+     (list license:asl2.0 license:isc license:expat))))
+
 (define-public rust-hyper-rustls-0.22
   (package
+    (inherit rust-hyper-rustls-0.23)
     (name "rust-hyper-rustls")
     (version "0.22.1")
     (source
@@ -27154,7 +28371,6 @@ SystemTime}}.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0r2szp06nzqx6gblcw69kwx8afjp218fc083kfpw0i3d66bpm7sz"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -27167,13 +28383,7 @@ SystemTime}}.")
         ("rust-tokio" ,rust-tokio-1)
         ("rust-tokio-rustls" ,rust-tokio-rustls-0.22)
         ("rust-webpki" ,rust-webpki-0.21)
-        ("rust-webpki-roots" ,rust-webpki-roots-0.21))))
-    (home-page "https://github.com/ctz/hyper-rustls")
-    (synopsis "Rustls+Hyper integration for pure Rust HTTPS")
-    (description
-     "This package provides Rustls+Hyper integration for pure Rust HTTPS.")
-    (license
-     (list license:asl2.0 license:isc license:expat))))
+        ("rust-webpki-roots" ,rust-webpki-roots-0.21))))))
 
 (define-public rust-hyper-rustls-0.21
   (package
@@ -27550,6 +28760,50 @@ with hyper.")
 floating-point numbers.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-if-addrs-0.6
+  (package
+    (name "rust-if-addrs")
+    (version "0.6.7")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "if-addrs" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1pkkkwm9znn07xq9s6glf8lxzn2rdxvy8kwkw6czrw64ywhy8wr2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-if-addrs-sys" ,rust-if-addrs-sys-0.3)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (native-inputs (list iproute))
+    (home-page "https://github.com/messense/if-addrs")
+    (synopsis "Return interface IP addresses on POSIX and Windows systems")
+    (description "Returns the IP addresses for all network interfaces,
+on both POSIX and Microsoft Windows hosts.")
+    (license (list license:expat license:bsd-3))))
+
+(define-public rust-if-addrs-sys-0.3
+  (package
+    (name "rust-if-addrs-sys")
+    (version "0.3.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "if-addrs-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1skrzs79rafv185064p44r0k1va9ig4bfnpbwlvyhxh4g3fvjx6y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cc", rust-cc-1)
+        ("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/messense/if-addrs")
+    (synopsis "Retrieve the IP addresses for all network interfaces")
+    (description "Retrieve the IP addresses for all network interfaces.
+Works on POSIX and Windows hosts.")
+    (license (list license:expat license:bsd-3))))
+
 (define-public rust-if-chain-1
   (package
     (name "rust-if-chain")
@@ -27741,6 +28995,49 @@ for @code{uint} and @code{fixed_hash}.")
 a trait for tuples.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-include-dir-0.7
+  (package
+    (name "rust-include-dir")
+    (version "0.7.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "include-dir" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "17pinxhivh3chkbjmbg9sl0x3h7wwry2zc2p12gfh8kizyp2yxhq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f              ; Not all files included
+       #:cargo-inputs
+       (("rust-glob" ,rust-glob-0.3)
+        ("rust-include-dir-macros" ,rust-include-dir-macros-0.7))
+       #:cargo-development-inputs
+       (("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://github.com/Michael-F-Bryan/include_dir")
+    (synopsis "Embed the contents of a directory in your binary")
+    (description "Embed the contents of a directory in your binary.")
+    (license license:expat)))
+
+(define-public rust-include-dir-macros-0.7
+  (package
+    (name "rust-include-dir-macros")
+    (version "0.7.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "include-dir-macros" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0gsa6z58wxgw9j58w60wyjpk2nv3pd86kimw2akwyzpmbi5jhfdi"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1))))
+    (home-page "https://github.com/Michael-F-Bryan/include_dir")
+    (synopsis "Procedural macro used by include_dir")
+    (description "The procedural macro used by include_dir.")
+    (license license:expat)))
+
 (define-public rust-include-flate-0.1
   (package
     (name "rust-include-flate")
@@ -27875,6 +29172,34 @@ 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.8
+  (package
+    (inherit rust-indexmap-1)
+    (name "rust-indexmap")
+    (version "1.8.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "indexmap" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0nnaw0whv3xysrpjrz69bsibbscd81rwx63s6f4kbajv1ia2s0g6"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-autocfg" ,rust-autocfg-1)
+        ("rust-hashbrown" ,rust-hashbrown-0.11)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-rustc-rayon" ,rust-rustc-rayon-0.4)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-fnv" ,rust-fnv-1)
+        ("rust-fxhash" ,rust-fxhash-0.2)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-serde-derive" ,rust-serde-derive-1))))))
+
 (define-public rust-indexmap-1.7
   (package
     (inherit rust-indexmap-1)
@@ -27902,6 +29227,32 @@ or numerical index.  A corresponding hash set type is also provided.")
         ("rust-rand" ,rust-rand-0.7)
         ("rust-serde-derive" ,rust-serde-derive-1))))))
 
+(define-public rust-indexmap-1.6
+  (package
+    (inherit rust-indexmap-1)
+    (name "rust-indexmap")
+    (version "1.6.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "indexmap" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1wxfh55zlrlpdxfcvvvj6wwc46f23cnb0j9q71190yl9pyh4aj42"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-autocfg" ,rust-autocfg-1)
+        ("rust-hashbrown" ,rust-hashbrown-0.9)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-fnv" ,rust-fnv-1)
+        ("rust-fxhash" ,rust-fxhash-0.2)
+        ("rust-itertools" ,rust-itertools-0.9)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-quickcheck" ,rust-quickcheck-0.9)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-serde-derive" ,rust-serde-derive-1))))))
+
 (define-public rust-indicatif-0.16
   (package
     (name "rust-indicatif")
@@ -27961,25 +29312,23 @@ Rust.")
 Rust.")
     (license license:expat)))
 
-(define-public rust-indoc-1
+(define-public rust-indoc-2
   (package
     (name "rust-indoc")
-    (version "1.0.7")
+    (version "2.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "indoc" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1qs42cn8rj7kdpmp1dlkzhv62rfmbx3ffwvsfw67zyq86jm1xaxd"))))
+        (base32 "142nzc474x1xgdzk057yv1yfrgxsk5a9zybbcwwrzp5ih65v8b4z"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #true
-       #:cargo-inputs
-       (("rust-unindent" ,rust-unindent-0.1))
-       #:cargo-development-inputs
+     `(#:cargo-development-inputs
        (("rust-rustversion" ,rust-rustversion-1)
-        ("rust-trybuild" ,rust-trybuild-1))))
+        ("rust-trybuild" ,rust-trybuild-1)
+        ("rust-unindent" ,rust-unindent-0.2))))
     (home-page "https://github.com/dtolnay/indoc")
     (synopsis "Indented document literals for Rust")
     (description
@@ -27988,6 +29337,26 @@ The @code{indoc!()} macro takes a multiline string literal and un-indents it
 at compile time so the leftmost non-space character is in the first column.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-indoc-1
+  (package
+    (inherit rust-indoc-2)
+    (name "rust-indoc")
+    (version "1.0.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "indoc" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1qs42cn8rj7kdpmp1dlkzhv62rfmbx3ffwvsfw67zyq86jm1xaxd"))))
+    (arguments
+     `(#:skip-build? #true
+       #:cargo-inputs
+       (("rust-unindent" ,rust-unindent-0.1))
+       #:cargo-development-inputs
+       (("rust-rustversion" ,rust-rustversion-1)
+        ("rust-trybuild" ,rust-trybuild-1))))))
+
 (define-public rust-indoc-0.3
   (package
     (inherit rust-indoc-1)
@@ -28247,36 +29616,62 @@ written in Rust.")
 data efficiently.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-inout-0.1
+  (package
+    (name "rust-inout")
+    (version "0.1.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "inout" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1xf9gf09nc7y1a261xlfqsf66yn6mb81ahlzzyyd1934sr9hbhd0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-block-padding" ,rust-block-padding-0.3)
+        ("rust-generic-array" ,rust-generic-array-0.14))))
+    (home-page "https://github.com/RustCrypto/utils")
+    (synopsis "Custom reference types for code")
+    (description "This package provides custom reference types for code generic
+over in-place and buffer-to-buffer modes of operation.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-insta-1
   (package
     (name "rust-insta")
-    (version "1.7.1")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "insta" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0i4jdrr888h0qvfhy2b4vvswlpi2x2ghwg31ljfa9kki54db58f4"))))
+        (base32 "16d0r0pbl9f86zb0rbvlc25964ayq47n7203rx5nnipy9a4v79gy"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:cargo-test-flags
+       '("--release"
+         "--"
+         "--skip=utils::test_format_rust_expression")
        #:cargo-inputs
-       (("rust-backtrace" ,rust-backtrace-0.3)
-        ("rust-console" ,rust-console-0.14)
+       (("rust-console" ,rust-console-0.15)
         ("rust-csv" ,rust-csv-1)
         ("rust-globset" ,rust-globset-0.4)
         ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-linked-hash-map" ,rust-linked-hash-map-0.5)
         ("rust-pest" ,rust-pest-2)
         ("rust-pest-derive" ,rust-pest-derive-2)
-        ("rust-ron" ,rust-ron-0.6)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-ron" ,rust-ron-0.7)
         ("rust-serde" ,rust-serde-1)
-        ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-serde-yaml" ,rust-serde-yaml-0.8)
-        ("rust-similar" ,rust-similar-1)
+        ("rust-similar" ,rust-similar-2)
         ("rust-toml" ,rust-toml-0.5)
-        ("rust-uuid" ,rust-uuid-0.8)
-        ("rust-walkdir" ,rust-walkdir-2))))
+        ("rust-walkdir" ,rust-walkdir-2)
+        ("rust-yaml-rust" ,rust-yaml-rust-0.4))
+       #:cargo-development-inputs
+       (("rust-serde" ,rust-serde-1)
+        ("rust-similar-asserts" ,rust-similar-asserts-1))))
     (home-page "https://insta.rs/")
     (synopsis "Snapshot testing library for Rust")
     (description
@@ -28622,8 +30017,34 @@ library.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-ipconfig-0.3
+  (package
+    (name "rust-ipconfig")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ipconfig" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1gn5j5sp58mz0630dhs1b8by7j0jqagldbd5iyln690gp7qjlc5x"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-socket2" ,rust-socket2-0.4)
+        ("rust-widestring" ,rust-widestring-0.5)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-winreg" ,rust-winreg-0.10))))
+    (home-page "https://github.com/liranringel/ipconfig")
+    (synopsis "Get network adapters and configuration information for Windows")
+    (description "This package lets you get network adapters information and
+network configuration for Windows.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-ipconfig-0.2
   (package
+    (inherit rust-ipconfig-0.3)
     (name "rust-ipconfig")
     (version "0.2.2")
     (source
@@ -28634,18 +30055,12 @@ library.")
        (sha256
         (base32
          "1mzsagc6bk3i3fpggqlq8am5rxn4hgs297rsaya90w79xj5g3qpp"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-socket2" ,rust-socket2-0.3)
         ("rust-widestring" ,rust-widestring-0.4)
         ("rust-winapi" ,rust-winapi-0.3)
-        ("rust-winreg" ,rust-winreg-0.6))))
-    (home-page "https://github.com/liranringel/ipconfig")
-    (synopsis "Get network adapters and configuration information for Windows")
-    (description "This package lets you get network adapters information and
-network configuration for Windows.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-winreg" ,rust-winreg-0.6))))))
 
 (define-public rust-is-macro-0.1
   (package
@@ -29134,6 +30549,29 @@ primitives to an @code{io::Write}.")
         (base32
          "136vwi6l2k1vrlvfx49lhficj813pk88xrcx1q3axqh1mwms6943"))))))
 
+(define-public rust-itoap-1
+  (package
+    (name "rust-itoap")
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "itoap" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1f48gsd18kbvskwbnwszhqjpk1l4rdmahh7kaz86b432cj9g8a4h"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-itoa" ,rust-itoa-0.4)
+        ("rust-rand" ,rust-rand-0.8))))
+    (home-page "https://github.com/Kogia-sima/itoap")
+    (synopsis "Functions for printing integers with decimal format")
+    (description
+     "This package provides functions for printing integers with decimal
+format.")
+    (license license:expat)))
+
 (define-public rust-ivf-0.1
   (package
     (name "rust-ivf")
@@ -29178,8 +30616,44 @@ primitives to an @code{io::Write}.")
      "Sys functions for the Rust bindings of the javacriptcore library.")
     (license license:expat)))
 
+(define-public rust-jemalloc-sys-0.5
+  (package
+    (name "rust-jemalloc-sys")
+    (version "0.5.3+5.3.0-patched")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "jemalloc-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "18bwwikzq2krgafq3811n1zlsrjrayk0kqmjf6smivd7drhmvggr"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin (delete-file-recursively "jemalloc")))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cc" ,rust-cc-1)
+        ("rust-libc" ,rust-libc-0.2))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'configure 'override-jemalloc
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((jemalloc (assoc-ref inputs "jemalloc")))
+               ;; This flag is needed when not using the bundled jemalloc.
+               ;; https://github.com/tikv/jemallocator/issues/19
+               (setenv "CARGO_FEATURE_UNPREFIXED_MALLOC_ON_SUPPORTED_PLATFORMS" "1")
+               (setenv "JEMALLOC_OVERRIDE"
+                       (string-append jemalloc "/lib/libjemalloc_pic.a"))))))))
+    (native-inputs
+     (list jemalloc))
+    (home-page "https://github.com/tikv/jemallocator")
+    (synopsis "Rust FFI bindings to jemalloc")
+    (description "This package provides Rust FFI bindings to jemalloc.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-jemalloc-sys-0.3
   (package
+    (inherit rust-jemalloc-sys-0.5)
     (name "rust-jemalloc-sys")
     (version "0.3.2")
     (source
@@ -29193,7 +30667,6 @@ primitives to an @code{io::Write}.")
         (modules '((guix build utils)))
         (snippet
          '(begin (delete-file-recursively "jemalloc") #t))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
@@ -29207,14 +30680,7 @@ primitives to an @code{io::Write}.")
              (let ((jemalloc (assoc-ref inputs "jemalloc")))
                (setenv "JEMALLOC_OVERRIDE"
                        (string-append jemalloc "/lib/libjemalloc_pic.a")))
-             #t)))))
-    (native-inputs
-     (list jemalloc))
-    (home-page "https://github.com/gnzlbg/jemallocator")
-    (synopsis "Rust FFI bindings to jemalloc")
-    (description "This package provides Rust FFI bindings to jemalloc.")
-    (license (list license:asl2.0
-                   license:expat))))
+             #t)))))))
 
 (define-public rust-jemalloc-sys-0.1
   (package
@@ -29234,8 +30700,44 @@ primitives to an @code{io::Write}.")
         (snippet
          '(begin (delete-file-recursively "jemalloc") #t))))))
 
+(define-public rust-jemallocator-0.5
+  (package
+    (name "rust-jemallocator")
+    (version "0.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "jemallocator" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "19kfd64hhh2anzfqm1c0yg0mg0nkmlzmcaw2njq543486x0m3hhn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-jemalloc-sys" ,rust-jemalloc-sys-0.5)
+        ("rust-libc" ,rust-libc-0.2))
+       #:cargo-development-inputs
+       (("rust-paste" ,rust-paste-1))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'configure 'override-jemalloc
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((jemalloc (assoc-ref inputs "jemalloc")))
+               ;; This flag is needed when not using the bundled jemalloc.
+               ;; https://github.com/tikv/jemallocator/issues/19
+               (setenv "CARGO_FEATURE_UNPREFIXED_MALLOC_ON_SUPPORTED_PLATFORMS" "1")
+               (setenv "JEMALLOC_OVERRIDE"
+                       (string-append jemalloc "/lib/libjemalloc_pic.a"))))))))
+    (native-inputs
+     (list jemalloc))
+    (home-page "https://github.com/tikv/jemallocator")
+    (synopsis "Rust allocator backed by jemalloc")
+    (description
+     "This package provides a Rust allocator backed by jemalloc.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-jemallocator-0.3
   (package
+    (inherit rust-jemallocator-0.5)
     (name "rust-jemallocator")
     (version "0.3.2")
     (source
@@ -29247,19 +30749,13 @@ primitives to an @code{io::Write}.")
        (sha256
         (base32
          "0sabfa5118b7l4ars5n36s2fjyfn59w4d6mjs6rrmsa5zky67bj3"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-jemalloc-sys" ,rust-jemalloc-sys-0.3)
         ("rust-libc" ,rust-libc-0.2))
        #:cargo-development-inputs
-       (("rust-paste" ,rust-paste-0.1))))
-    (home-page "https://github.com/gnzlbg/jemallocator")
-    (synopsis "Rust allocator backed by jemalloc")
-    (description
-     "This package provides a Rust allocator backed by jemalloc.")
-    (license (list license:expat license:asl2.0))))
+       (("rust-paste" ,rust-paste-0.1))))))
 
 (define-public rust-jemallocator-0.1
   (package
@@ -29330,17 +30826,17 @@ strings and byte slices for sets of ASCII characters or bytes.")
         (base32 "1sq6d6c9vi44gkr566w2f1d4n6mmrjx8gjdwgnhkgcsg051j391j"))))
     (arguments `(#:skip-build? #t))))
 
-(define-public rust-jni-0.18
+(define-public rust-jni-0.19
   (package
     (name "rust-jni")
-    (version "0.18.0")
+    (version "0.19.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "jni" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1brglk3kfia9wkr6rkm6p297b8qk6rv3k8rf6jjiqc74l49735i4"))))
+        (base32 "1v0pn0i1wb8zp4wns4l8hz9689hqsplv7iba7hylaznvwg11ipy6"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -29361,6 +30857,29 @@ code from Rust, embed JVM in Rust applications and use any Java
 libraries.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-jni-0.18
+  (package
+    (inherit rust-jni-0.19)
+    (name "rust-jni")
+    (version "0.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "jni" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1brglk3kfia9wkr6rkm6p297b8qk6rv3k8rf6jjiqc74l49735i4"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cesu8" ,rust-cesu8-1)
+        ("rust-combine" ,rust-combine-4)
+        ("rust-jni-sys" ,rust-jni-sys-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-walkdir" ,rust-walkdir-2))
+       #:cargo-development-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1))))))
+
 (define-public rust-jni-0.14
   (package
     (inherit rust-jni-0.18)
@@ -29534,7 +31053,7 @@ JSON-RPC 2.0 specification.")
 (define-public rust-js-sys-0.3
   (package
     (name "rust-js-sys")
-    (version "0.3.55")
+    (version "0.3.61")
     (source
      (origin
        (method url-fetch)
@@ -29542,15 +31061,20 @@ JSON-RPC 2.0 specification.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "116cg9vn62cl3vifbs6cjdsg7hz98kr7sr8kpy31liccsg6gzjbw"))))
+        (base32 "0c075apyc5fxp2sbgr87qcvq53pcjxmp05l47lzlhpn5a0hxwpa4"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (substitute* "Cargo.toml"
+             (("=0\\.3\\.34") "^0.3.34"))))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("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))))
+        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3)
+        ("rust-web-sys" ,rust-web-sys-0.3))))
     (home-page "https://rustwasm.github.io/wasm-bindgen/")
     (synopsis "Bindings for all JS global objects and functions in WASM")
     (description
@@ -30172,6 +31696,27 @@ requires non-const function calls to be computed.")
      `(#:cargo-inputs
        (("rust-clippy" ,rust-clippy-0.0))))))
 
+(define-public rust-lebe-0.5
+  (package
+    (name "rust-lebe")
+    (version "0.5.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "lebe" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1j2l6chx19qpa5gqcw434j83gyskq3g2cnffrbl3842ymlmpq203"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-bencher" ,rust-bencher-0.1)
+        ("rust-byteorder" ,rust-byteorder-1))))
+    (home-page "https://github.com/johannesvollmer/lebe")
+    (synopsis "Endianness conversions with a generic API")
+    (description
+     "This package provides endianness conversions with a generic API in rust.")
+    (license license:bsd-3)))
+
 (define-public rust-lettre-0.9
   (package
     (name "rust-lettre")
@@ -30397,39 +31942,17 @@ a no_std environment.  This does not depend on any standard library features,
 nor a system allocator.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-lexical-5
-  (package
-    (inherit rust-lexical-6)
-    (name "rust-lexical")
-    (version "5.2.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "lexical" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1r8lsi523h53kbb99xgv31jabwhcp4rzqd4hfazfhcjffh5aj17l"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-cfg-if" ,rust-cfg-if-1)
-        ("rust-lexical-core" ,rust-lexical-core-0.7)
-        ("rust-rand" ,rust-rand-0.4)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-serde-derive" ,rust-serde-derive-1)
-        ("rust-toml" ,rust-toml-0.5))))))
-
-(define-public rust-lexopt-0.2
+(define-public rust-lexopt-0.3
   (package
     (name "rust-lexopt")
-    (version "0.2.1")
+    (version "0.3.0")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "lexopt" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32 "1s7k6hra9p9xilhl852qi1a7c2gis59qf4yl1ca5pbxf5bkfk3j7"))))
+         (base32 "00dlvik2ygw8z101vf3bfndcvxhp92v25sbzz6bdiwvxgxhlpzxs"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/blyxxyz/lexopt")
     (synopsis "Minimalist pedantic command line parser")
@@ -30511,21 +32034,20 @@ macros on libc without stdlib.")
     (description "This package provides FFI bindings to libdbus.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-libdeflate-sys-0.5
+;; TODO: Unbundle libdeflate
+(define-public rust-libdeflate-sys-0.11
   (package
     (name "rust-libdeflate-sys")
-    (version "0.5.0")
+    (version "0.11.0")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "libdeflate-sys" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
-               (base32
-                "07ychzvz9xrqs92frs3zpny0l8jp3sndzqpl7zhv6kdqhzx9xqr1"))))
+               (base32 "0xs2wdly73ar7r9qyrbwnkwjjz4wd92kv5h78cdxfrsbp2v88ryb"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-cc" ,rust-cc-1))))
+     `(#:cargo-inputs (("rust-cc" ,rust-cc-1))))
     (home-page "https://github.com/adamkewley/libdeflater")
     (synopsis "Bindings to libdeflate")
     (description
@@ -30534,6 +32056,47 @@ exposed as non-streaming buffer operations.  It contains bindings for raw
 deflate, zlib, and gzip data.")
     (license license:asl2.0)))
 
+(define-public rust-libdeflate-sys-0.5
+  (package
+    (inherit rust-libdeflate-sys-0.11)
+    (name "rust-libdeflate-sys")
+    (version "0.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "libdeflate-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "07ychzvz9xrqs92frs3zpny0l8jp3sndzqpl7zhv6kdqhzx9xqr1"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cc" ,rust-cc-1))))
+    (home-page "https://github.com/adamkewley/libdeflater")))
+
+(define-public rust-libdeflater-0.11
+  (package
+    (name "rust-libdeflater")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "libdeflater" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0385hpai7fsnpfvxd3hki43v1cj8w6z1cb2rn8wd6vq4dam8bqnq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libdeflate-sys" ,rust-libdeflate-sys-0.11))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-flate2" ,rust-flate2-1))))
+    (home-page "https://github.com/adamkewley/libdeflater")
+    (synopsis "Bindings to libdeflate for DEFLATE")
+    (description "This package provides bindings to libdeflate for DEFLATE
+(de)compression exposed as non-streaming buffer operations.  Contains bindings
+for raw deflate, zlib, and gzip data.")
+    (license license:asl2.0)))
+
 (define-public rust-libflate-1
   (package
     (name "rust-libflate")
@@ -30631,7 +32194,7 @@ algorithm and related formats (ZLIB, GZIP).")
 (define-public rust-libgit2-sys-0.14
   (package
     (name "rust-libgit2-sys")
-    (version "0.14.0+1.5.0")
+    (version "0.14.2+1.5.1")
     (source
      (origin
        (method url-fetch)
@@ -30640,7 +32203,7 @@ algorithm and related formats (ZLIB, GZIP).")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "16wm7m65xvfqn11bhiclg7v5ajswhwrcrlg631r4z2hcqxchi827"))
+         "1926x5f84ykr8j2lsdmb0n0bj4jz173j5bm722cgwx8hnpv9agbz"))
        (modules '((guix build utils)))
        (snippet
         '(begin (delete-file-recursively "libgit2")))))
@@ -30668,7 +32231,7 @@ library.")
   (package
     (inherit rust-libgit2-sys-0.14)
     (name "rust-libgit2-sys")
-    (version "0.13.4+1.4.2")
+    (version "0.13.5+1.4.5")
     (source
      (origin
        (method url-fetch)
@@ -30677,7 +32240,7 @@ library.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1lgm4ssz4aw85k8jaj9xmp9wbhgvd8y80vbzrksjbphy8dinbynh"))
+         "1fkdgfqdkd38hfsyw3znq629gp7wdknzslym5l0g29k9q83fmrai"))
        (modules '((guix build utils)))
        (snippet
         '(begin (delete-file-recursively "libgit2")))))
@@ -30688,13 +32251,15 @@ library.")
         ("rust-libssh2-sys" ,rust-libssh2-sys-0.2)
         ("rust-libz-sys" ,rust-libz-sys-1)
         ("rust-openssl-sys" ,rust-openssl-sys-0.9)
-        ("rust-pkg-config" ,rust-pkg-config-0.3))))))
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (inputs
+     (list libgit2-1.4 openssl zlib))))
 
 (define-public rust-libgit2-sys-0.12
   (package
     (inherit rust-libgit2-sys-0.14)
     (name "rust-libgit2-sys")
-    (version "0.12.25+1.3.0")
+    (version "0.12.26+1.3.0")
     (source
      (origin
        (method url-fetch)
@@ -30703,7 +32268,7 @@ library.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1axsdyb2i67pn85vh8sb2z037n88fiiwqghkzsr1jrcdy2g1cs4g"))
+         "153l8nvz9p8vyd5840xi6fwblvhpn3c33jwdwsznyq4f4jcwiq8r"))
        (modules '((guix build utils)))
        (snippet
         '(begin (delete-file-recursively "libgit2")))))
@@ -30785,7 +32350,7 @@ library.")
 (define-public rust-libloading-0.7
   (package
     (name "rust-libloading")
-    (version "0.7.0")
+    (version "0.7.4")
     (source
      (origin
        (method url-fetch)
@@ -30794,7 +32359,11 @@ library.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0sidr67nsa693mqrqgk2np3bkqni0778yk147xncspy171jdk13g"))))
+         "17wbccnjvhjd9ibh019xcd8kjvqws8lqgq86lqkpbgig7gyq0wxn"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (for-each delete-file
+                          (find-files "tests" "\\.dll$"))))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -30822,7 +32391,11 @@ loading utilities.")
        (uri (crate-uri "libloading" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "10wq4a4jkman8k6y0v2cw3d38y1h3rw6d2in5klggm8jg90k46im"))))
+        (base32 "10wq4a4jkman8k6y0v2cw3d38y1h3rw6d2in5klggm8jg90k46im"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (for-each delete-file
+                          (find-files "tests" "\\.dll$"))))))
     (arguments
      `(#:skip-build? #true
        #:cargo-inputs
@@ -30845,7 +32418,11 @@ loading utilities.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0lyply8rcqc8agajzxs7bq6ivba9dnn1i68kgb9z2flnfjh13cgj"))))
+          "0lyply8rcqc8agajzxs7bq6ivba9dnn1i68kgb9z2flnfjh13cgj"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (for-each delete-file
+                          (find-files "tests" "\\.dll$"))))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -30874,7 +32451,11 @@ functions and static variables these libraries contain.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0risz19rllhdc0d7nkpwkf4pcbjjgg1iim0kkmzb6kkp874hl0ha"))))
+         "0risz19rllhdc0d7nkpwkf4pcbjjgg1iim0kkmzb6kkp874hl0ha"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (for-each delete-file
+                          (find-files "tests" "\\.dll$"))))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f      ; Some test libraries not included in release.
@@ -30934,7 +32515,10 @@ functions and static variables these libraries contain.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0bbm03687j9fspvk6nqspmjlvchlvbxydl0mrc1x9i1k6kqiy5c2"))))
+         "0bbm03687j9fspvk6nqspmjlvchlvbxydl0mrc1x9i1k6kqiy5c2"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (delete-file-recursively "c_src/mimalloc/bin")))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -30948,6 +32532,39 @@ functions and static variables these libraries contain.")
 allocator.")
     (license license:expat)))
 
+(define-public rust-libmdns-0.6
+  (package
+    (name "rust-libmdns")
+    (version "0.6.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "libmdns" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0n1ymkv5246c5yj2m70ql07z38hrz6b2l16lg3wpb98vz7mbqd59"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-hostname" ,rust-hostname-0.3)
+        ("rust-if-addrs" ,rust-if-addrs-0.6)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-multimap" ,rust-multimap-0.8)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-socket2" ,rust-socket2-0.4)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-tokio" ,rust-tokio-1))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.8))))
+    (home-page "https://github.com/librespot-org/libmdns")
+    (synopsis "DNS-SD and mDNS library for building discoverable LAN services")
+    (description "A Multi-Cast DNS (RFC 6762) and DNS Service Discovery
+(RFC 6763) library.  Used for resolution of hostnames to IP addresses on
+networks that do not have a local name server.  Network services can be
+advertised and discovered using this mechanism.")
+    (license license:expat)))
+
 (define-public rust-libnghttp2-sys-0.1
   (package
     (name "rust-libnghttp2-sys")
@@ -31298,7 +32915,7 @@ C parser and toolkit developed for the GNOME project.")
 (define-public rust-libz-sys-1
   (package
     (name "rust-libz-sys")
-    (version "1.1.1")
+    (version "1.1.8")
     (source
       (origin
         (method url-fetch)
@@ -31306,12 +32923,11 @@ C parser and toolkit developed for the GNOME project.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1q25cb8vs113si7q2p0innhi8jk0wpq37hqi2wcc219hcmw43cr3"))
+          "1gqb8nk7j4ngvlcll8plm2fvjwic40p2g4qp20pwry1m74f7c0lp"))
         (modules '((guix build utils)))
         (snippet
          '(begin (delete-file-recursively "src/zlib")
-                 (delete-file-recursively "src/zlib-ng")
-                 #t))))
+                 (delete-file-recursively "src/zlib-ng")))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -31331,6 +32947,30 @@ known as zlib).")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-libz-ng-sys-1
+  (package
+    (name "rust-libz-ng-sys")
+    (version "1.1.8")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "libz-ng-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1wp0aya5hh76h1acspvrrsvq2fl0kyb8dpi6wy0zaswnm6bax6a3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cmake" ,rust-cmake-0.1)
+        ("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/rust-lang/libz-sys")
+    (synopsis "Low-level bindings to zlib-ng (libz-ng)")
+    (description
+     "This package provides low-level bindings to zlib-ng (libz-ng), a
+high-performance zlib library.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-lifeguard-0.6
   (package
     (name "rust-lifeguard")
@@ -31442,7 +33082,7 @@ manually from Rust.")
 (define-public rust-linked-hash-map-0.5
   (package
     (name "rust-linked-hash-map")
-    (version "0.5.3")
+    (version "0.5.6")
     (source
      (origin
        (method url-fetch)
@@ -31450,19 +33090,17 @@ manually from Rust.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0jih3za0p1mywlnwcakc462q1byk6z8vnrzdm36hg6cxk7asdmcd"))))
+        (base32 "03vpgw7x507g524nx5i1jf5dl8k3kv0fzg8v3ip6qqwbpkqww5q7"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-clippy" ,rust-clippy-0.0)
-        ("rust-heapsize" ,rust-heapsize-0.4)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-serde-test" ,rust-serde-test-1))))
-    (home-page
-     "https://github.com/contain-rs/linked-hash-map")
-    (synopsis
-     "HashMap wrapper that holds key-value pairs in insertion order")
+     `(#:tests? #f              ; Not all files included.
+       #:cargo-inputs
+       (("rust-heapsize" ,rust-heapsize-0.4)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-serde-test" ,rust-serde-test-1))))
+    (home-page "https://github.com/contain-rs/linked-hash-map")
+    (synopsis "HashMap wrapper that holds key-value pairs in insertion order")
     (description
      "This package provides a HashMap wrapper that holds key-value
 pairs in insertion order.")
@@ -31619,21 +33257,21 @@ Linux userspace APIs.")
     (license (list license:asl2.0
                    license:expat))))
 
-(define-public rust-libtest-mimic-0.5
+(define-public rust-libtest-mimic-0.6
   (package
     (name "rust-libtest-mimic")
-    (version "0.5.2")
+    (version "0.6.0")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "libtest-mimic" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
-               (base32
-                "1v103c90ibs35ffr9mww9h5la3b7xxvil32v6x0szxcqq9wr8lkr"))))
+               (base32 "1yipifm9fgfg6my2jj3i5wrc6ri9wqix02fys0isplb7cx8h7dnp"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-clap" ,rust-clap-3)
+     `(#:tests? #f              ; terse_output test fails
+       #:cargo-inputs
+       (("rust-clap" ,rust-clap-4)
         ("rust-termcolor" ,rust-termcolor-1)
         ("rust-threadpool" ,rust-threadpool-1))
        #:cargo-development-inputs
@@ -31646,6 +33284,27 @@ Linux userspace APIs.")
 harness used by @code{rustc --test}.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-libtest-mimic-0.5
+  (package
+    (inherit rust-libtest-mimic-0.6)
+    (name "rust-libtest-mimic")
+    (version "0.5.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "libtest-mimic" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1v103c90ibs35ffr9mww9h5la3b7xxvil32v6x0szxcqq9wr8lkr"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-clap" ,rust-clap-3)
+        ("rust-termcolor" ,rust-termcolor-1)
+        ("rust-threadpool" ,rust-threadpool-1))
+       #:cargo-development-inputs
+       (("rust-fastrand" ,rust-fastrand-1)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-1))))))
+
 (define-public rust-libtest-mimic-0.3
   (package
     (inherit rust-libtest-mimic-0.5)
@@ -31665,6 +33324,27 @@ harness used by @code{rustc --test}.")
         ("rust-structopt" ,rust-structopt-0.3)
         ("rust-termcolor" ,rust-termcolor-1))))))
 
+(define-public rust-litrs-0.2
+  (package
+    (name "rust-litrs")
+    (version "0.2.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "litrs" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1akrxglqv6dz41jrjr409pjjysd00z5w0949007v52yg6c4mw9zr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1))))
+    (home-page "https://github.com/LukasKalbertodt/litrs/")
+    (synopsis "Parse and inspect Rust literals")
+    (description
+     "Parse and inspect Rust literals (i.e. tokens in the Rust programming
+language representing fixed values).  Particularly useful for proc macros, but
+can also be used outside of a proc-macro context.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-locale-0.2
   (package
     (name "rust-locale")
@@ -31851,8 +33531,7 @@ by inspecting the system for user preference.")
                 "1x9hmiv00ir79kypcg0jdw0j0fkd3ymq6rpv6pli6q5qifrfql7z"))))
     (build-system cargo-build-system)
     (arguments
-     `(;#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-generator" ,rust-generator-0.7)
         ("rust-pin-utils" ,rust-pin-utils-0.1)
@@ -32074,8 +33753,33 @@ image together with its neighboring pixels.")
 key-value pairs.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-lscolors-0.13
+  (package
+    (name "rust-lscolors")
+    (version "0.13.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "lscolors" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1wnxs5d004fx71apvh9124xqky0qjjmpibag24km7bvvss2xrpn2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ansi-term" ,rust-ansi-term-0.12)
+        ("rust-crossterm" ,rust-crossterm-0.25)
+        ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.46))
+       #:cargo-development-inputs
+       (("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://github.com/sharkdp/lscolors")
+    (synopsis "Colorize paths using the LS_COLORS environment variable")
+    (description
+     "Colorize paths using the LS_COLORS environment variable.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-lscolors-0.7
   (package
+    (inherit rust-lscolors-0.13)
     (name "rust-lscolors")
     (version "0.7.1")
     (source
@@ -32087,17 +33791,11 @@ key-value pairs.")
        (sha256
         (base32
          "0vn1824lagf0xdv5rxyl7m9fbrcylyjibmnd4634dnn98m68jjyj"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-ansi-term" ,rust-ansi-term-0.12))
        #:cargo-development-inputs
-       (("rust-tempfile" ,rust-tempfile-3))))
-    (home-page "https://github.com/sharkdp/lscolors")
-    (synopsis "Colorize paths using the LS_COLORS environment variable")
-    (description
-     "Colorize paths using the LS_COLORS environment variable.")
-    (license (list license:expat license:asl2.0))))
+       (("rust-tempfile" ,rust-tempfile-3))))))
 
 (define-public rust-lsp-types-0.91
   (package
@@ -32453,6 +34151,28 @@ library")
      "This package provides test harness for macro expansion in Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-magma-0.8
+  (package
+    (name "rust-magma")
+    (version "0.8.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "magma" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1w321p30599kc85bb35ps32ykqc9gzpi5b99dsw793nxrypnj9xb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cipher" ,rust-cipher-0.4))
+       #:cargo-development-inputs
+       (("rust-cipher" ,rust-cipher-0.4)
+        ("rust-hex-literal" ,rust-hex-literal-0.3))))
+    (home-page "https://github.com/RustCrypto/block-ciphers")
+    (synopsis "Magma (GOST R 34.12-2015) block cipher")
+    (description "Magma (GOST R 34.12-2015) block cipher")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-magic-crypt-3
   (package
     (name "rust-magic-crypt")
@@ -32580,6 +34300,52 @@ algorithms.  It supports CBC block cipher mode, PKCS5 padding and 64, 128,
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-markup-proc-macro-0.13
+  (package
+    (name "rust-markup-proc-macro")
+    (version "0.13.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "markup-proc-macro" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0l41di814m9vzw3bz3j49j09j6cb3r73rc4a3a6dvjvx4c77z4hs"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/utkarshkukreti/markup.rs")
+    (synopsis "Macros for template engine for Rust")
+    (description
+     "This package provides macros for \"markup\", the fast, type-safe
+template engine for Rust.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-markup-0.13
+  (package
+    (name "rust-markup")
+    (version "0.13.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "markup" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "03cb086vkqdym3z0wq9h8ywgc2v1w9n4d8pn0j6p76fl6ni9d4dx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-itoa" ,rust-itoa-1)
+        ("rust-markup-proc-macro" ,rust-markup-proc-macro-0.13))))
+    (home-page "https://github.com/utkarshkukreti/markup.rs")
+    (synopsis "Fast, type-safe template engine for Rust")
+    (description
+     "This package provides a fast, type-safe template engine for Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-markup5ever-0.10
   (package
     (name "rust-markup5ever")
@@ -32923,6 +34689,26 @@ parallelize and optimize.")
      `(#:cargo-inputs (("rust-rawpointer" ,rust-rawpointer-0.1))
        #:cargo-development-inputs (("rust-bencher" ,rust-bencher-0.1))))))
 
+(define-public rust-maybe-rayon-0.1
+  (package
+    (name "rust-maybe-rayon")
+    (version "0.1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "maybe-rayon" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "06cmvhj4n36459g327ng5dnj8d58qs472pv5ahlhm7ynxl6g78cf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-rayon" ,rust-rayon-1))))
+    (home-page "https://github.com/shssoichiro/maybe-rayon")
+    (synopsis "Either acts as rayon or creates a single-threaded facade")
+    (description "Either acts as rayon or creates a single-threaded facade")
+    (license license:expat)))
+
 (define-public rust-maybe-uninit-2
   (package
     (name "rust-maybe-uninit")
@@ -33262,20 +35048,21 @@ file IO.")
 (define-public rust-memmap2-0.5
   (package
     (name "rust-memmap2")
-    (version "0.5.5")
+    (version "0.5.10")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "memmap2" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1irzc4skrr8a2i0x9kdisq59w6rzyigkp8prx9za59d7jffb6y9s"))))
+        (base32 "09xk415fxyl4a9pgby4im1v2gqlb5lixpm99dczkk30718na9yl3"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
-        ("rust-owning-ref" ,rust-owning-ref-0.4)
-        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1)
+        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))
+       #:cargo-development-inputs
+       (("rust-owning-ref" ,rust-owning-ref-0.4)
         ("rust-tempfile" ,rust-tempfile-3))))
     (home-page "https://github.com/RazrFalcon/memmap2-rs")
     (synopsis "Cross-platform Rust API for memory-mapped file IO")
@@ -33616,10 +35403,10 @@ based on Rustls and Ring.")
     (description "This package provides thousand separators for numerals.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-tls-parser-0.10
+(define-public rust-tls-parser-0.11
   (package
     (name "rust-tls-parser")
-    (version "0.10.0")
+    (version "0.11.0")
     (source
      (origin
        (method url-fetch)
@@ -33628,21 +35415,27 @@ based on Rustls and Ring.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1spgykvrxlzb059zzz1hzinc4vvkpixw9nd6p94vw3rimar5m68n"))))
+         "1q0vd41sjf6pbcygp5bqlpqrxbqdd0qsqi4sm5zbzvb4vvi0d4j0"))
+       (snippet
+        #~(begin (use-modules (guix build utils))
+                 ;; Accept newer versions of rust-clap.
+                 (substitute* "Cargo.toml"
+                   (("~2\\.33") "^2.33"))))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f ;; requires assets not included in crates.io tarball
        #:cargo-inputs
        (("rust-cookie-factory" ,rust-cookie-factory-0.3)
         ("rust-enum-primitive" ,rust-enum-primitive-0.1)
-        ("rust-nom" ,rust-nom-6)
-        ("rust-nom-derive" ,rust-nom-derive-0.7)
-        ("rust-phf" ,rust-phf-0.8)
-        ("rust-phf-codegen" ,rust-phf-codegen-0.8)
-        ("rust-rusticata-macros" ,rust-rusticata-macros-3))
+        ("rust-nom" ,rust-nom-7)
+        ("rust-nom-derive" ,rust-nom-derive-0.10)
+        ("rust-phf" ,rust-phf-0.10)
+        ("rust-phf-codegen" ,rust-phf-codegen-0.10)
+        ("rust-rusticata-macros" ,rust-rusticata-macros-4))
        #:cargo-development-inputs
-       (("rust-hex-literal" ,rust-hex-literal-0.3)
-        ("rust-pretty-assertions" ,rust-pretty-assertions-0.6))))
+       (("rust-clap" ,rust-clap-2)
+        ("rust-hex-literal" ,rust-hex-literal-0.3)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-0.7))))
     (home-page "https://github.com/rusticata/tls-parser")
     (synopsis "Parser for the TLS protocol")
     (description "This package provides a Rust parser for the TLS protocol.")
@@ -33998,8 +35791,35 @@ efficient round-trip float parsing. Minimal-lexical implements a correct, fast
 float parser.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-miniz-oxide-0.6
+  (package
+    (name "rust-miniz-oxide")
+    (version "0.6.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "miniz-oxide" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "08j82769wkgbzfpg0k2qa744w3sg79vx1vsmjw88p1yy5rc15qpj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-adler" ,rust-adler-1)
+        ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
+        ("rust-simd-adler32" ,rust-simd-adler32-0.3))))
+    (home-page "https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide")
+    (synopsis "Pure rust replacement for the miniz DEFLATE/zlib encoder/decoder")
+    (description
+     "A pure rust replacement for the miniz DEFLATE/zlib encoder/decoder.  Using
+@code{flate2} with the @code{rust_backend} feature provides an easy to use
+streaming API for miniz_oxide.")
+    (license (list license:expat license:zlib license:asl2.0))))
+
 (define-public rust-miniz-oxide-0.5
   (package
+    (inherit rust-miniz-oxide-0.6)
     (name "rust-miniz-oxide")
     (version "0.5.3")
     (source
@@ -34009,21 +35829,13 @@ float parser.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1k1wfxb35v129mhqy14yqhrj3wvknafrwygiq7zvi0m5iml7ap3g"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-adler" ,rust-adler-1)
         ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
         ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
         ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
-        ("rust-simd-adler32" ,rust-simd-adler32-0.3))))
-    (home-page  "https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide")
-    (synopsis "Pure rust replacement for the miniz DEFLATE/zlib encoder/decoder")
-    (description
-     "A pure rust replacement for the miniz DEFLATE/zlib encoder/decoder.  Using
-@code{flate2} with the @code{rust_backend} feature provides an easy to use
-streaming API for miniz_oxide.")
-    (license (list license:expat license:zlib license:asl2.0))))
+        ("rust-simd-adler32" ,rust-simd-adler32-0.3))))))
 
 (define-public rust-miniz-oxide-0.4
   (package
@@ -34302,21 +36114,21 @@ possible over the OS abstractions.")
      "Unix domain socket bindings for mio.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-miow-0.4
+(define-public rust-miow-0.5
   (package
     (name "rust-miow")
-    (version "0.4.0")
+    (version "0.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "miow" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "03p0dgbahlysgxk0sihhf09k5h13r9aam3d6rfivdbxkj9vpydx7"))))
+        (base32 "08qi8xm2zf8dqacdbnrp19aqk2xiwmw75n1mpq43rqsmysibrzsj"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-windows-sys" ,rust-windows-sys-0.28))
+       (("rust-windows-sys" ,rust-windows-sys-0.42))
        #:cargo-development-inputs
        (("rust-rand" ,rust-rand-0.8)
         ("rust-socket2" ,rust-socket2-0.4))))
@@ -34328,6 +36140,25 @@ IOCP and Async I/O abstractions.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-miow-0.4
+  (package
+    (inherit rust-miow-0.5)
+    (name "rust-miow")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "miow" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "03p0dgbahlysgxk0sihhf09k5h13r9aam3d6rfivdbxkj9vpydx7"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-windows-sys" ,rust-windows-sys-0.28))
+       #:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.8)
+        ("rust-socket2" ,rust-socket2-0.4))))))
+
 (define-public rust-miow-0.3
   (package
     (inherit rust-miow-0.4)
@@ -34370,6 +36201,25 @@ IOCP and Async I/O abstractions.")
        #:cargo-development-inputs
        (("rust-rand" ,rust-rand-0.3))))))
 
+(define-public rust-mock-instant-0.2
+  (package
+    (name "rust-mock-instant")
+    (version "0.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "mock-instant" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0vg0kmz96zazjdq57l57nm24mc2in57y090ywcq827xq8fi2jzki"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-once-cell" ,rust-once-cell-1))))
+    (home-page "https://github.com/museun/mock_instant")
+    (synopsis "Mock an std::time::Instant")
+    (description
+     "This package provides a simple way to mock an std::time::Instant in rust.")
+    (license license:bsd-0)))
+
 (define-public rust-mockall-0.11
   (package
     (name "rust-mockall")
@@ -34721,8 +36571,33 @@ library.")
 libmysqlclient.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-nanorand-0.7
+  (package
+    (name "rust-nanorand")
+    (version "0.7.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "nanorand" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1hr60b8zlfy7mxjcwx2wfmhpkx7vfr3v9x12shmv1c10b0y32lba"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-getrandom" ,rust-getrandom-0.2)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-hex" ,rust-hex-0.4))))
+    (home-page "https://github.com/Absolucy/nanorand-rs")
+    (synopsis "Tiny, fast, zero-dep library for random number generation")
+    (description
+     "This library is meant for fast, random number generation with
+quick compile time, and minimal dependencies.")
+    (license license:zlib)))
+
 (define-public rust-nanorand-0.5
   (package
+    (inherit rust-nanorand-0.7)
     (name "rust-nanorand")
     (version "0.5.1")
     (source
@@ -34732,7 +36607,6 @@ libmysqlclient.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1ryi6jdfsfij4di33f269099g7m32rlr7sv7j4pklnjcj2xxfwri"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #true              ;error with pre-release randomize
        #:cargo-inputs
@@ -34743,13 +36617,7 @@ libmysqlclient.")
         ("rust-fastrand" ,rust-fastrand-1)
         ("rust-hex" ,rust-hex-0.4)
         ("rust-random-fast-rng" ,rust-random-fast-rng-0.1)
-        ("rust-randomize" ,rust-randomize-4))))
-    (home-page "https://github.com/aspenluxxxy/nanorand-rs")
-    (synopsis "Tiny, fast, zero-dep library for random number generation")
-    (description
-     "This library is meant for fast, random number generation with
-quick compile time, and minimal dependencies.")
-    (license license:zlib)))
+        ("rust-randomize" ,rust-randomize-4))))))
 
 (define-public rust-nanorand-0.4
   (package
@@ -35177,14 +37045,14 @@ linear algebra library.")
 (define-public rust-native-tls-0.2
   (package
     (name "rust-native-tls")
-    (version "0.2.7")
+    (version "0.2.11")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "native-tls" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1m6v16xl8h4pm32pw6yhrvgwznf60bqhj2qhb1yrb8wd3hp6pndq"))))
+        (base32 "0bmrlg0fmzxaycjpkgkchi93av07v2yf9k33gc12ca9gqdrn28h7"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f                      ; tests require network access
@@ -35200,8 +37068,8 @@ linear algebra library.")
         ("rust-security-framework-sys" ,rust-security-framework-sys-2)
         ("rust-tempfile" ,rust-tempfile-3))
        #:cargo-development-inputs
-       (("rust-hex" ,rust-hex-0.4)
-        ("rust-test-cert-gen" ,rust-test-cert-gen-0.1))))
+       (("rust-tempfile" ,rust-tempfile-3)
+        ("rust-test-cert-gen" ,rust-test-cert-gen-0.7))))
     (native-inputs
      (list pkg-config))
     (inputs
@@ -35470,27 +37338,28 @@ general elements and for numerics.")
         ("rust-quickcheck" ,rust-quickcheck-0.7)
         ("rust-rawpointer" ,rust-rawpointer-0.1))))))
 
-(define-public rust-ndk-0.5
+(define-public rust-ndk-0.7
   (package
     (name "rust-ndk")
-    (version "0.5.0")
+    (version "0.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "ndk" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "17b9imdmv6cffr12bdpvxw1myxdyvaf6jwkmd3w7abn7akv6in4n"))))
+        (base32 "180sjpyf1ylqgqw4ni8jcg3kv96vvrddzamknp4730kiwjvj4525"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #true              ;XXX: Android only
        #:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-jni" ,rust-jni-0.18)
+        ("rust-jni" ,rust-jni-0.19)
         ("rust-jni-glue" ,rust-jni-glue-0.0)
         ("rust-jni-sys" ,rust-jni-sys-0.3)
-        ("rust-ndk-sys" ,rust-ndk-sys-0.2)
+        ("rust-ndk-sys" ,rust-ndk-sys-0.4)
         ("rust-num-enum" ,rust-num-enum-0.5)
+        ("rust-raw-window-handle" ,rust-raw-window-handle-0.5)
         ("rust-thiserror" ,rust-thiserror-1))))
     (home-page "https://github.com/rust-windowing/android-ndk-rs")
     (synopsis "Safe Rust bindings to the Android NDK")
@@ -35498,6 +37367,29 @@ general elements and for numerics.")
      "This package provides safe Rust bindings to the Android NDK.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-ndk-0.5
+  (package
+    (inherit rust-ndk-0.7)
+    (name "rust-ndk")
+    (version "0.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ndk" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "17b9imdmv6cffr12bdpvxw1myxdyvaf6jwkmd3w7abn7akv6in4n"))))
+    (arguments
+     `(#:skip-build? #true              ;XXX: Android only
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-jni" ,rust-jni-0.18)
+        ("rust-jni-glue" ,rust-jni-glue-0.0)
+        ("rust-jni-sys" ,rust-jni-sys-0.3)
+        ("rust-ndk-sys" ,rust-ndk-sys-0.2)
+        ("rust-num-enum" ,rust-num-enum-0.5)
+        ("rust-thiserror" ,rust-thiserror-1))))))
+
 (define-public rust-ndk-0.2
   (package
     (inherit rust-ndk-0.5)
@@ -35636,24 +37528,40 @@ general elements and for numerics.")
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))))))
 
-(define-public rust-ndk-sys-0.2
+(define-public rust-ndk-sys-0.4
   (package
     (name "rust-ndk-sys")
-    (version "0.2.2")
+    (version "0.4.1+23.1.7779620")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "ndk-sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "08915adplysmvx0ha12if1v7zxzx82xgj3nnmiddkm8aq9sdvg71"))))
+        (base32 "18z5xsnrnpq65aspavb8cg925m3scs8hb1b9a2n2q8xxb3lsmwiw"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-jni-sys" ,rust-jni-sys-0.3))))
     (home-page "https://github.com/rust-windowing/android-ndk-rs")
     (synopsis "FFI bindings for the Android NDK")
     (description "This package provides FFI bindings for the Android NDK.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-ndk-sys-0.2
+  (package
+    (inherit rust-ndk-sys-0.4)
+    (name "rust-ndk-sys")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ndk-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "08915adplysmvx0ha12if1v7zxzx82xgj3nnmiddkm8aq9sdvg71"))))
+    (arguments `(#:skip-build? #t))))
+
 (define-public rust-needletail-0.4
   (package
     (name "rust-needletail")
@@ -36154,14 +38062,14 @@ nitrokey-test crate.")
 (define-public rust-nix-0.26
   (package
     (name "rust-nix")
-    (version "0.26.1")
+    (version "0.26.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nix" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "155610n6bp37sqg7p0qihzi0jnvqkpqc40nyik89frbc6lfqv9a6"))))
+        (base32 "06lfvjhsj5zlslsg2jhijrm69npprmsh7r1667qnl7c2jv8s7pdz"))))
     (build-system cargo-build-system)
     (arguments
      (list #:skip-build? #t
@@ -36169,7 +38077,9 @@ nitrokey-test crate.")
            `(("rust-bitflags" ,rust-bitflags-1)
              ("rust-cfg-if" ,rust-cfg-if-1)
              ("rust-libc" ,rust-libc-0.2)
-             ("rust-memoffset" ,rust-memoffset-0.7))))
+             ("rust-memoffset" ,rust-memoffset-0.7)
+             ("rust-pin-utils" ,rust-pin-utils-0.1)
+             ("rust-static-assertions" ,rust-static-assertions-1))))
     (home-page "https://github.com/nix-rust/nix")
     (synopsis "Rust friendly bindings to *nix APIs")
     (description
@@ -36178,6 +38088,28 @@ The goal is to not provide a 100% unified interface, but to unify what can be
 while still providing platform specific APIs.")
     (license license:expat)))
 
+(define-public rust-nix-0.25
+  (package
+    (inherit rust-nix-0.26)
+    (name "rust-nix")
+    (version "0.25.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "nix" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1r4vyp5g1lxzpig31bkrhxdf2bggb4nvk405x5gngzfvwxqgyipk"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-autocfg" ,rust-autocfg-1)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-memoffset" ,rust-memoffset-0.6)
+        ("rust-pin-utils" ,rust-pin-utils-0.1))))))
+
 (define-public rust-nix-0.24
   (package
     (inherit rust-nix-0.26)
@@ -36744,10 +38676,34 @@ combinators library.")
       ;; This is an ancient version and all inputs are optional.
      `(#:skip-build? #t))))
 
-(define-public rust-nom-derive-0.7
+(define-public rust-nom8-0.2
+  (package
+    (name "rust-nom8")
+    (version "0.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "nom8" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1y6jzabxyrl05vxnh63r66ac2fh0symg5fnynxm4ii3zkif580df"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f              ; Not all files included.
+       #:cargo-inputs
+       (("rust-memchr" ,rust-memchr-2))
+       #:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-proptest" ,rust-proptest-1))))
+    (home-page "https://github.com/epage/nom-experimental")
+    (synopsis "Byte-oriented, zero-copy, parser combinators library")
+    (description "This package provides a byte-oriented, zero-copy, parser
+combinators library (fork for proposals for v8)")
+    (license license:expat)))
+
+(define-public rust-nom-derive-0.10
   (package
     (name "rust-nom-derive")
-    (version "0.7.2")
+    (version "0.10.1")
     (source
      (origin
        (method url-fetch)
@@ -36756,22 +38712,42 @@ combinators library.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1xwbbkfhr8zrlcknlj75l50rp2b267qm9sd8vphx6gwzyg24n2zz"))))
+         "19vrbhkn47zw5sks17ril7aryzx0ixg62n0ddrxbil48igb47y8z"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-proc-macro2" ,rust-proc-macro2-1)
-        ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-1))
+       (("rust-nom" ,rust-nom-7)
+        ("rust-nom-derive-impl" ,rust-nom-derive-impl-0.10)
+        ("rust-rustversion" ,rust-rustversion-1))
        #:cargo-development-inputs
-       (("rust-nom" ,rust-nom-6)
-        ("rust-pretty-assertions" ,rust-pretty-assertions-0.7)
+       (("rust-pretty-assertions" ,rust-pretty-assertions-0.7)
         ("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://github.com/rust-bakery/nom-derive")
     (synopsis "Custom derive nom parsers from struct")
     (description "This package derives custom nom parsers from structs.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-nom-derive-impl-0.10
+  (package
+    (name "rust-nom-derive-impl")
+    (version "0.10.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "nom-derive-impl" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0qnsvvg74wdpzhbkxrndr7x6vb1kvhrd60hfwz1kw3abm29rl2yd"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/rust-bakery/nom-derive")
+    (synopsis "Custom derive nom parsers from struct")
+    (description "This package provides custom derive nom parsers from structs.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-noop-proc-macro-0.3
   (package
     (name "rust-noop-proc-macro")
@@ -36829,45 +38805,66 @@ with all line endings.")
         (base32
          "1a1knz9j1w5a1pl2q6whmjphm3z6p64r5njnam7syp5rx8wil2if"))))))
 
+(define-public rust-normpath-0.3
+  (package
+    (name "rust-normpath")
+    (version "0.3.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "normpath" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1bxwffmqqhic8rfb711009w9hsprrpm5jca2q0y8igqgrglzbah4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-print-bytes" ,rust-print-bytes-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://github.com/dylni/normpath")
+    (synopsis "More reliable path manipulation")
+    (description "This package provides more reliable path manipulation in rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-notify-5
   (package
     (name "rust-notify")
-    (version "5.0.0-pre.13")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "notify" version))
-        (file-name
-          (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32
-            "0za8mpacxkr62fii5h7ny4h396y0m8myd3hf08njqdg2h21kap94"))))
+    (version "5.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "notify" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1a8vxbyh3aghyyvg76x4zzdwhr0d9p20x706vf7y81lalq58bsjq"))))
     (build-system cargo-build-system)
     (arguments
-      `(#:skip-build? #t
-        #:cargo-inputs
-        (("rust-bitflags" ,rust-bitflags-1)
-         ("rust-crossbeam-channel"
-          ,rust-crossbeam-channel-0.5)
-         ("rust-filetime" ,rust-filetime-0.2)
-         ("rust-fsevent" ,rust-fsevent-2)
-         ("rust-fsevent-sys" ,rust-fsevent-sys-4)
-         ("rust-kqueue" ,rust-kqueue-1)
-         ("rust-inotify" ,rust-inotify-0.9)
-         ("rust-libc" ,rust-libc-0.2)
-         ("rust-mio" ,rust-mio-0.7)
-         ("rust-serde" ,rust-serde-1)
-         ("rust-walkdir" ,rust-walkdir-2)
-         ("rust-winapi" ,rust-winapi-0.3))
-        #:cargo-development-inputs
-        (("rust-serde-json" ,rust-serde-json-1)
-         ("rust-futures" ,rust-futures-0.3)
-         ("rust-tempfile" ,rust-tempfile-3))))
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
+        ("rust-filetime" ,rust-filetime-0.2)
+        ("rust-fsevent-sys" ,rust-fsevent-sys-4)
+        ("rust-inotify" ,rust-inotify-0.9)
+        ("rust-kqueue" ,rust-kqueue-1)
+        ("rust-kqueue" ,rust-kqueue-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-mio" ,rust-mio-0.8)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-walkdir" ,rust-walkdir-2)
+        ("rust-windows-sys" ,rust-windows-sys-0.42))
+       #:cargo-development-inputs
+       (("rust-nix" ,rust-nix-0.23)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-tempfile" ,rust-tempfile-3))))
     (home-page "https://github.com/notify-rs/notify")
-    (synopsis
-      "Cross-platform filesystem notification library")
-    (description
-      "Cross-platform filesystem notification library")
+    (synopsis "Cross-platform filesystem notification library")
+    (description "This package contains a cross-platform filesystem
+notification library.")
     (license (list license:cc0 license:artistic2.0))))
 
 (define-public rust-notify-4
@@ -36960,10 +38957,10 @@ with all line endings.")
     (description "FFI bindings for Native API")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-ntest-0.3
+(define-public rust-ntest-0.8
   (package
     (name "rust-ntest")
-    (version "0.3.3")
+    (version "0.8.1")
     (source
      (origin
        (method url-fetch)
@@ -36971,25 +38968,46 @@ with all line endings.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "04cljndihkcqqwj061bgpnxyv7wqbd3f91ag1b3ryrayn7rrclxv"))))
+         "1yyih3b0bcr9gj11m9xj330as2sjihblkmb2bmv10lp38q5m0rg8"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-ntest-test-cases" ,rust-ntest-test-cases-0.3)
-        ("rust-ntest-timeout" ,rust-ntest-timeout-0.3)
-        ("rust-timebomb" ,rust-timebomb-0.1))
+       (("rust-ntest-proc-macro-helper" ,rust-ntest-proc-macro-helper-0.8)
+        ("rust-ntest-test-cases" ,rust-ntest-test-cases-0.8)
+        ("rust-ntest-timeout" ,rust-ntest-timeout-0.8))
        #:cargo-development-inputs
-       (("rust-ntest-test-cases" ,rust-ntest-test-cases-0.3)
-        ("rust-ntest-timeout" ,rust-ntest-timeout-0.3)
-        ("rust-timebomb" ,rust-timebomb-0.1))))
+       (("rust-tokio" ,rust-tokio-1))))
     (home-page "https://github.com/becheran/ntest")
     (synopsis "Testing framework for Rust")
     (description "This package provides a testing framework for Rust which
 enhances the built-in library with some useful features.")
     (license license:expat)))
 
+(define-public rust-ntest-test-cases-0.8
+  (package
+    (name "rust-ntest-test-cases")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ntest_test_cases" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "03ip2dpi7fd2wyz99yd17w302nci3b05slbl3rr6dfs2683ayz3g"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/becheran/ntest")
+    (synopsis "Test cases for ntest framework")
+    (description "This package provides test cases for ntest framework.")
+    (license license:expat)))
+
 (define-public rust-ntest-test-cases-0.3
   (package
+    (inherit rust-ntest-test-cases-0.8)
     (name "rust-ntest-test-cases")
     (version "0.3.4")
     (source
@@ -37000,19 +39018,40 @@ enhances the built-in library with some useful features.")
        (sha256
         (base32
          "0b67m368599b2zgwx19psqz6n3m9m5532h1257x6vz1pym3gd2na"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))))
+
+(define-public rust-ntest-timeout-0.8
+  (package
+    (name "rust-ntest-timeout")
+    (version "0.8.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ntest_timeout" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "01vcdlz9xj471z5knk2qynm7adz3p614glf6n0pgn161qynym9mw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ntest-proc-macro-helper" ,rust-ntest-proc-macro-helper-0.8)
+        ("rust-proc-macro-crate" ,rust-proc-macro-crate-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))))
     (home-page "https://github.com/becheran/ntest")
-    (synopsis "Test cases for ntest framework")
-    (description "This package provides test cases for ntest framework.")
+    (synopsis "Timeout attribute for the ntest framework")
+    (description "This package provides a timeout attribute for the ntest
+framework.")
     (license license:expat)))
 
 (define-public rust-ntest-timeout-0.3
   (package
+    (inherit rust-ntest-timeout-0.8)
     (name "rust-ntest-timeout")
     (version "0.3.3")
     (source
@@ -37023,17 +39062,55 @@ enhances the built-in library with some useful features.")
        (sha256
         (base32
          "0klryn3rgjxnq3cv6j8bwcsr0b7zw3x216h63144v22aja18p0g0"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1)
-        ("rust-timebomb" ,rust-timebomb-0.1))))
+        ("rust-timebomb" ,rust-timebomb-0.1))))))
+
+(define-public rust-ntest-proc-macro-helper-0.8
+  (package
+    (name "rust-ntest-proc-macro-helper")
+    (version "0.8.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ntest-proc-macro-helper" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "154r3r9nnnp6qjzlayc54213bdrgdk8b68jjnn1xcyd6cz92iqx0"))))
+    (build-system cargo-build-system)
     (home-page "https://github.com/becheran/ntest")
-    (synopsis "Timeout attribute for the ntest framework")
-    (description "This package provides a timeout attribute for the ntest
-framework.")
+    (synopsis "Helper functions for the procedural macros used in ntest")
+    (description "This package provides helper functions for the procedural
+macros used in ntest.")
+    (license license:expat)))
+
+(define-public rust-nu-ansi-term-0.46
+  (package
+    (name "rust-nu-ansi-term")
+    (version "0.46.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "nu-ansi-term" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "115sywxh53p190lyw97alm14nc004qj5jm5lvdj608z84rbida3p"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-overload" ,rust-overload-0.1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/nushell/nu-ansi-term")
+    (synopsis "Library for ANSI terminal colors and styles (bold, underline)")
+    (description
+     "This package provides a library for ANSI terminal colors and styles (bold,
+underline) in rust.")
     (license license:expat)))
 
 (define-public rust-num-0.4
@@ -37361,18 +39438,18 @@ Rust.")
 (define-public rust-num-cpus-1
   (package
     (name "rust-num-cpus")
-    (version "1.13.1")
+    (version "1.15.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "num-cpus" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "18apx62z4j4lajj2fi6r1i8slr9rs2d0xrbj2ls85qfyxck4brhr"))))
+        (base32 "0fsrjy3arnbcl41vz0gppya8d7d24cpkjgfflr3v8pivl4nrxb0g"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-hermit-abi" ,rust-hermit-abi-0.1)
+       (("rust-hermit-abi" ,rust-hermit-abi-0.2)
         ("rust-libc" ,rust-libc-0.2))))
     (home-page "https://github.com/seanmonstar/num_cpus")
     (synopsis "Get the number of CPUs on a machine")
@@ -37640,18 +39717,17 @@ directly.")
 (define-public rust-num-rational-0.4
   (package
     (name "rust-num-rational")
-    (version "0.4.0")
+    (version "0.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "num-rational" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0ska19zb05f84b1cki7vyzy5wjqs26y82hiq1d9gabbw2syh45yl"))))
+        (base32 "1c0rb8x4avxy3jvvzv764yk7afipzxncfnqlb10r3h53s34s2f06"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-autocfg" ,rust-autocfg-1)
         ("rust-num-bigint" ,rust-num-bigint-0.4)
         ("rust-num-integer" ,rust-num-integer-0.1)
@@ -37729,6 +39805,26 @@ directly.")
         ("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
         ("rust-serde" ,rust-serde-0.8))))))
 
+(define-public rust-num-threads-0.1
+  (package
+    (name "rust-num-threads")
+    (version "0.1.6")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "num-threads" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0i5vmffsv6g79z869flp1sja69g1gapddjagdw1k3q9f3l2cw698"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f              ; Unclear why these tests fail.
+       #:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/jhpratt/num_threads")
+    (synopsis "Determine the number of running threads for the current process")
+    (description "This package provides a minimal library that determines the
+number of running threads for the current process.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-num-traits-0.2
   (package
     (name "rust-num-traits")
@@ -37991,6 +40087,44 @@ Foundation framework.")
      "This package provides Rust smart pointers for Objective-C reference counting.")
     (license license:expat)))
 
+(define-public rust-objc-sys-0.3
+  (package
+    (name "rust-objc-sys")
+    (version "0.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "objc-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "18qqjf2qwlhzzzlf8d5zisn0m92607kyp17kqk31v07njc5gyc6s"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t         ; Needs gcc-objc
+       #:cargo-inputs (("rust-cc" ,rust-cc-1))))
+    (home-page "https://github.com/madsmtm/objc2")
+    (synopsis "Raw bindings to the Objective-C runtime and ABI")
+    (description
+     "This package provides raw bindings to the Objective-C runtime and ABI.")
+    (license license:expat)))
+
+(define-public rust-objc-sys-0.2
+  (package
+    (inherit rust-objc-sys-0.3)
+    (name "rust-objc-sys")
+    (version "0.2.0-beta.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "objc-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1msm1bwv69k12ikxm71mi1ifrbx2bzsmk2w2bah98mp9q4s9hfyz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t         ; Needs gcc-objc
+       #:cargo-inputs (("rust-cc" ,rust-cc-1))))))
+
 (define-public rust-objc-test-utils-0.0
   (package
     (name "rust-objc-test-utils")
@@ -38015,6 +40149,70 @@ Foundation framework.")
      "This package provides utilities for testing Objective-C interop.")
     (license license:expat)))
 
+(define-public rust-objc2-0.3
+  (package
+    (name "rust-objc2")
+    (version "0.3.0-beta.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "objc2" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0jfnrwmp6n2d6snlpcyfk9l41nhm50wj9h42b6hqj2rxbm1facgy"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-block2" ,rust-block2-0.2)            ; 0.2.0-alpha.6
+        ("rust-objc-sys" ,rust-objc-sys-0.2)        ; 0.2.0-beta.2
+        ("rust-objc2-encode" ,rust-objc2-encode-2)  ; 2.0.0-pre.2
+        ("rust-objc2-proc-macros" ,rust-objc2-proc-macros-0.1)
+        ("rust-uuid" ,rust-uuid-1))))
+    (home-page "https://github.com/madsmtm/objc2")
+    (synopsis
+     "Objective-C interface and bindings to the Cocoa Foundation framework")
+    (description "This package provides Objective-C interface and bindings to
+the Cocoa Foundation framework.")
+    (license license:expat)))
+
+(define-public rust-objc2-encode-2
+  (package
+    (name "rust-objc2-encode")
+    (version "2.0.0-pre.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "objc2-encode" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "04h5wns3hxmc9g652hr9xqzrijs4ij9sdnlgc0ha202v050srz5b"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-objc-sys" ,rust-objc-sys-0.2))))
+    (home-page "https://github.com/madsmtm/objc2")
+    (synopsis "Objective-C type-encoding representation and parsing")
+    (description "This package provides objective-C type-encoding
+representation and parsing.")
+    (license license:expat)))
+
+(define-public rust-objc2-proc-macros-0.1
+  (package
+    (name "rust-objc2-proc-macros")
+    (version "0.1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "objc2-proc-macros" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "07j3snswvj6532x32zgn4llc2xaf31rj4iw18n6dsrf2p0jvh1xr"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/madsmtm/objc2")
+    (synopsis "Procedural macros for the objc2 project")
+    (description "This package provides procedural macros for the objc2 project.")
+    (license license:expat)))
+
 (define-public rust-object-0.29
   (package
     (name "rust-object")
@@ -38141,29 +40339,6 @@ file formats.")
        #:cargo-development-inputs
        (("rust-memmap" ,rust-memmap-0.7))))))
 
-(define-public rust-object-0.23
-  (package
-    (inherit rust-object-0.24)
-    (name "rust-object")
-    (version "0.23.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "object" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1m658q2ci9hk8csbl17zwcg1hpvcxm2sspjb9bzg0kc1cifsp9x9"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
-        ("rust-crc32fast" ,rust-crc32fast-1)
-        ("rust-flate2" ,rust-flate2-1)
-        ("rust-indexmap" ,rust-indexmap-1)
-        ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
-        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
-        ("rust-wasmparser" ,rust-wasmparser-0.57))))))
-
 (define-public rust-odds-0.3
   (package
     (name "rust-odds")
@@ -38303,7 +40478,7 @@ other crates to create safe wrappers around Oniguruma.")
 (define-public rust-once-cell-1
   (package
     (name "rust-once-cell")
-    (version "1.17.0")
+    (version "1.17.1")
     (source
      (origin
        (method url-fetch)
@@ -38311,11 +40486,10 @@ other crates to create safe wrappers around Oniguruma.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0rpackaf6ljxkcaa3svaiak1ddsbh0hqf5z3l7bb78hyfjhznqbg"))))
+         "1lrsy9c5ikf2iwxr4iwgd3rlq9mg8alh0np1g8abnvp1k4151rdp"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:tests? #f      ; Needs a newer rust
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-atomic-polyfill" ,rust-atomic-polyfill-1)
         ("rust-critical-section" ,rust-critical-section-1)
         ("rust-parking-lot-core" ,rust-parking-lot-core-0.9))
@@ -38707,6 +40881,63 @@ system for OpenSSL.")
     (description "This package provides an OPML parser for Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-option-set-0.1
+  (package
+    (name "rust-option-set")
+    (version "0.1.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "option-set" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "16wsxh2qmjb2bf7mcq7dhlpzwkslzgjpg3nwzx97ia6gpnb2sfy8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-heck" ,rust-heck-0.3)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-yaml" ,rust-serde-yaml-0.8))))
+    (home-page "https://github.com/H2CO3/option_set.git")
+    (synopsis "Bitflags on steroids")
+    (description "This package provides an extended version of rust bitflags.")
+    (license license:expat)))
+
+(define-public rust-orbclient-0.3
+  (package
+    (name "rust-orbclient")
+    (version "0.3.44")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "orbclient" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0zbn0kckbsa4bk3cik8gpfcir33zw4gsvqmmxya2w4aydkhjk60f"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t     ; Building requires SDL2 inputs.
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-raw-window-handle" ,rust-raw-window-handle-0.3)
+        ("rust-redox-syscall" ,rust-redox-syscall-0.2)
+        ("rust-sdl2" ,rust-sdl2-0.35)
+        ("rust-sdl2-sys" ,rust-sdl2-sys-0.35)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
+        ("rust-web-sys" ,rust-web-sys-0.3))
+       #:cargo-development-inputs
+       (("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-toml" ,rust-toml-0.7))))
+    (home-page "https://gitlab.redox-os.org/redox-os/orbclient")
+    (synopsis "Orbital Client Library")
+    (description
+     "This package provides the Orbital Client Library, used for RedoxOS.")
+    (license license:expat)))
+
 (define-public rust-ord-subset-3
   (package
     (name "rust-ord-subset")
@@ -38854,20 +41085,19 @@ under its new name.")
 (define-public rust-os-info-3
   (package
     (name "rust-os-info")
-    (version "3.0.7")
+    (version "3.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "os_info" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "09x2sm4pgcpk14hakj4iq0zkglx1bwxlq3a5mbwc737dpwh11jba"))))
+        (base32 "1h5q42l0azly64b80gb36f0lsm296idkn0dc7247gq0mip34nhjw"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-development-inputs
+     `(#:cargo-development-inputs
        (("rust-doc-comment" ,rust-doc-comment-0.3)
-        ("rust-pretty-assertions" ,rust-pretty-assertions-0.7))
+        ("rust-pretty-assertions" ,rust-pretty-assertions-1))
        #:cargo-inputs
        (("rust-log" ,rust-log-0.4)
         ("rust-serde" ,rust-serde-1)
@@ -39144,6 +41374,26 @@ platform-native strings.")
      "This package provides a macro to simplify operator overloading.")
     (license license:expat)))
 
+(define-public rust-owned-ttf-parser-0.19
+  (package
+    (name "rust-owned-ttf-parser")
+    (version "0.19.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "owned-ttf-parser" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "192v6mjgy2fv7z8n7wm6548pikngcc293l9qh8xdc4s147iffvbh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-ttf-parser" ,rust-ttf-parser-0.19))))
+    (home-page "https://github.com/alexheretic/owned-ttf-parser")
+    (synopsis "Ttf-parser plus support for owned data")
+    (description
+     "This package provides a ttf-parser plus support for owned data.")
+    (license license:asl2.0)))
+
 (define-public rust-owned-ttf-parser-0.6
   (package
     (name "rust-owned-ttf-parser")
@@ -39260,6 +41510,45 @@ normally prevent moving a type that has been borrowed from.")
     (description "Portable Packed SIMD vectors.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-packed-struct
+  (package
+    (name "rust-packed-struct")
+    (version "0.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "packed_struct" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32 "10b2fmxchmcigwagnhi42frj74dl02wyv0xwmbr9839qfh7gijlh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1))))
+    (home-page "http://www.hashmismatch.net/libraries/packed-struct/")
+    (synopsis "Binary-level structure packing and unpacking generator")
+    (description "This package provides bit-level packing an unpacking
+of structs.  Tkhe library provides a meta-programming approach, using
+attributes to define fields and how they should be packed.  The resulting
+trait implementations provide safe packing, unpacking and runtime debugging
+formatters with per-field documentation generated for each structure.
+
+@itemize
+@item Plain Rust structures, decorated with attributes
+@item MSB or LSB integers of user-defined bit widths
+@item Primitive enum code generation helper
+@item MSB0 or LSB0 bit positioning
+@item Documents the field's packing table
+@item Runtime packing visualization
+@item Nested packed types
+@item Arrays of packed structures as fields
+@item Reserved fields, their bits are always 0 or 1
+@end itemize")
+    ;; User can choose either license.
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-pad-0.1
   (package
     (name "rust-pad")
@@ -39307,10 +41596,10 @@ normally prevent moving a type that has been borrowed from.")
 memory page size.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-pager-0.15
+(define-public rust-pager-0.16
   (package
     (name "rust-pager")
-    (version "0.15.0")
+    (version "0.16.1")
     (source
      (origin
        (method url-fetch)
@@ -39318,8 +41607,7 @@ memory page size.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0a35mg68s0p63ya2k5hsg620c4llkjw2fx1sfi0laz4pz8myv75n"))))
+        (base32 "10188qgnsz988g30fvl4whkljh2zl4gpbp6kc48bpywpbhd23695"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -39331,6 +41619,25 @@ memory page size.")
      "This package pipes your Rust output through an external pager.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-pager-0.15
+  (package
+    (inherit rust-pager-0.16)
+    (name "rust-pager")
+    (version "0.15.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pager" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0a35mg68s0p63ya2k5hsg620c4llkjw2fx1sfi0laz4pz8myv75n"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-errno" ,rust-errno-0.2)
+        ("rust-libc" ,rust-libc-0.2))))))
+
 (define-public rust-pam-sys-0.5
   (package
     (name "rust-pam-sys")
@@ -39548,31 +41855,6 @@ derive macro for Parity SCALE Codec.")
       "WebAssembly low-level format library")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-parity-wasm-0.40
-  (package
-    (name "rust-parity-wasm")
-    (version "0.40.3")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "parity-wasm" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "03qycy21avz4970zc7aj8rj5h4wvi4qsrc90a6hpws1a56mglf8y"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:tests? #f
-       #:cargo-development-inputs
-       (("rust-time" ,rust-time-0.1))))
-    (home-page "https://github.com/paritytech/parity-wasm")
-    (synopsis "Low-level WebAssembly format library")
-    (description
-     "This package provides a WebAssembly binary format serialization,
-deserialization, and interpreter in Rust.")
-    (license (list license:asl2.0
-                   license:expat))))
-
 (define-public rust-parking-2
   (package
     (name "rust-parking")
@@ -40179,21 +42461,20 @@ and would-block I/O operations.")
         ("rust-tokio-core" ,rust-tokio-core-0.1))))
     (license license:bsd-3)))
 
-(define-public rust-password-hash-0.3
+(define-public rust-password-hash-0.4
   (package
     (name "rust-password-hash")
-    (version "0.3.2")
+    (version "0.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "password-hash" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1n7ig9j5x2q0fk12nny40faggrs0ra5bbxp6gz5yghfwlqw1ay8x"))))
+        (base32 "003p2hssyrcaxyq9fs8x2wx5di8ny9byaakskrf352pfm963fxkn"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-base64ct" ,rust-base64ct-1)
         ("rust-rand-core" ,rust-rand-core-0.6)
         ("rust-subtle" ,rust-subtle-2))))
@@ -40207,6 +42488,24 @@ the PHC string format (a well-defined subset of the Modular Crypt
 Format (MCF).")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-password-hash-0.3
+  (package
+    (inherit rust-password-hash-0.4)
+    (name "rust-password-hash")
+    (version "0.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "password-hash" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1n7ig9j5x2q0fk12nny40faggrs0ra5bbxp6gz5yghfwlqw1ay8x"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64ct" ,rust-base64ct-1.0.1)
+        ("rust-rand-core" ,rust-rand-core-0.6)
+        ("rust-subtle" ,rust-subtle-2))))))
+
 (define-public rust-paste-1
   (package
     (name "rust-paste")
@@ -40345,24 +42644,23 @@ relative path from a provided base directory path to the provided
 path.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-pbkdf2-0.10
+(define-public rust-pbkdf2-0.11
   (package
     (name "rust-pbkdf2")
-    (version "0.10.0")
+    (version "0.11.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "pbkdf2" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0d3l06x5mg96njxfsksjwl6440alf72qh4rwrpnq4fwmrz1qqqm4"))))
+        (base32 "05q9wqjvfrs4dvw03yn3bvcs4zghz0a7ycfa53pz2k2fqhp6k843"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-base64ct" ,rust-base64ct-1.0.1)
-        ("rust-digest" ,rust-digest-0.10)
+       (("rust-digest" ,rust-digest-0.10)
         ("rust-hmac" ,rust-hmac-0.12)
-        ("rust-password-hash" ,rust-password-hash-0.3)
+        ("rust-password-hash" ,rust-password-hash-0.4)
         ("rust-rayon" ,rust-rayon-1)
         ("rust-sha-1" ,rust-sha-1-0.10)
         ("rust-sha2" ,rust-sha2-0.10))
@@ -40379,6 +42677,34 @@ algorithms, otherwise known as password-based key derivation functions, written
 in pure Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-pbkdf2-0.10
+  (package
+    (inherit rust-pbkdf2-0.11)
+    (name "rust-pbkdf2")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pbkdf2" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0d3l06x5mg96njxfsksjwl6440alf72qh4rwrpnq4fwmrz1qqqm4"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64ct" ,rust-base64ct-1.0.1)
+        ("rust-digest" ,rust-digest-0.10)
+        ("rust-hmac" ,rust-hmac-0.12)
+        ("rust-password-hash" ,rust-password-hash-0.3)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-sha-1" ,rust-sha-1-0.10)
+        ("rust-sha2" ,rust-sha2-0.10))
+       #:cargo-development-inputs
+       (("rust-hex-literal" ,rust-hex-literal-0.3)
+        ("rust-hmac" ,rust-hmac-0.12)
+        ("rust-sha-1" ,rust-sha-1-0.10)
+        ("rust-sha2" ,rust-sha2-0.10)
+        ("rust-streebog" ,rust-streebog-0.10))))))
+
 (define-public rust-pbkdf2-0.9
   (package
     (inherit rust-pbkdf2-0.10)
@@ -40781,6 +43107,26 @@ runtime support for rust-peg grammars.  To use rust-peg, see the peg crate.")
 PEM-encoded data.")
     (license license:expat)))
 
+(define-public rust-pem-0.8
+  (package
+    (inherit rust-pem-1)
+    (name "rust-pem")
+    (version "0.8.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pem" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1sqkzp87j6s79sjxk4n913gcmalzb2fdc75l832d0j7a3z9cnmpx"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.13)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-regex" ,rust-regex-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3))))))
+
 (define-public rust-pem-rfc7468-0.2
   (package
     (name "rust-pem-rfc7468")
@@ -41691,6 +44037,33 @@ provides comprehensive coverage of that portion of the specification
 along with strong support for variations and the core header tables.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-piper-0.1
+  (package
+    (name "rust-piper")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "piper" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "062zdv9w7l5037g113bh7r72wmygz92ajzr0z41v3bqdd3x8nq01"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false
+       #:cargo-inputs
+       (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
+        ("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-futures-sink" ,rust-futures-sink-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3))
+       #:cargo-development-inputs
+       (("rust-futures" ,rust-futures-0.3))))
+    (home-page "https://crates.io/crates/piper")
+    (synopsis "Async pipes, channels, mutexes, and more")
+    (description
+     "This crate provides async pipes, channels, mutexes, and more.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-pkcs1-0.2
   (package
     (name "rust-pkcs1")
@@ -41815,10 +44188,10 @@ used in Cargo build scripts.")
     (license (list license:asl2.0
                    license:expat))))
 
-(define-public rust-pktparse-0.5
+(define-public rust-pktparse-0.7
   (package
     (name "rust-pktparse")
-    (version "0.5.0")
+    (version "0.7.1")
     (source
      (origin
        (method url-fetch)
@@ -41827,11 +44200,11 @@ used in Cargo build scripts.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "17a78c29l070mlwjdr3bdph785c9v5rps0if3v0s21w4nwaybhck"))))
+         "06sy7lwnhwmkyqfdbi4cs11z55rihipxafbdspnd5zg76pnbgbm8"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-nom" ,rust-nom-5)
+       (("rust-nom" ,rust-nom-7)
         ("rust-serde" ,rust-serde-1))))
     (home-page "https://github.com/bestouff/pktparse-rs")
     (synopsis "Collection of packet parsers")
@@ -41859,6 +44232,27 @@ network packet formats.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-pledge-0.4
+  (package
+    (name "rust-pledge")
+    (version "0.4.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pledge" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1rc1r71hk0qi4ldbwbhbj6l6d1l4n28dfgf6znvl76kxgd0rj995"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/i80and/pledge-rs")
+    (synopsis "Rust binding to OpenBSD's pledge(2) interface")
+    (description
+     "This package provides Rust bindings to OpenBSD's pledge(2) interface.")
+    (license license:expat)))
+
 (define-public rust-plist-1
   (package
     (name "rust-plist")
@@ -42274,44 +44668,6 @@ applications.")
         ("rust-thiserror" ,rust-thiserror-1)
         ("rust-unsafe-unwrap" ,rust-unsafe-unwrap-0.1))))))
 
-(define-public rust-polars-core-0.14
-  (package
-    (inherit rust-polars-core-0.15)
-    (name "rust-polars-core")
-    (version "0.14.8")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "polars-core" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1vlzqsp0hrdixv4gyprlkmyhh7s3m2lnq9nizpm3sqhlccfdahyz"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-ahash" ,rust-ahash-0.7)
-        ("rust-anyhow" ,rust-anyhow-1)
-        ("rust-arrow" ,rust-arrow-4)
-        ("rust-chrono" ,rust-chrono-0.4)
-        ("rust-comfy-table" ,rust-comfy-table-1)
-        ("rust-hashbrown" ,rust-hashbrown-0.11)
-        ("rust-itertools" ,rust-itertools-0.10)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-ndarray" ,rust-ndarray-0.15)
-        ("rust-num" ,rust-num-0.4)
-        ("rust-num-cpus" ,rust-num-cpus-1)
-        ("rust-parquet" ,rust-parquet-4)
-        ("rust-polars-arrow" ,rust-polars-arrow-0.14)
-        ("rust-prettytable-rs" ,rust-prettytable-rs-0.8)
-        ("rust-rand" ,rust-rand-0.7)
-        ("rust-rand-distr" ,rust-rand-distr-0.3)
-        ("rust-rayon" ,rust-rayon-1)
-        ("rust-regex" ,rust-regex-1)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-thiserror" ,rust-thiserror-1)
-        ("rust-unsafe-unwrap" ,rust-unsafe-unwrap-0.1))))))
-
 (define-public rust-polars-io-0.17
   (package
     (name "rust-polars-io")
@@ -42382,40 +44738,6 @@ applications.")
         ("rust-regex" ,rust-regex-1)
         ("rust-simdutf8" ,rust-simdutf8-0.1))))))
 
-(define-public rust-polars-io-0.15
-  (package
-    (inherit rust-polars-io-0.16)
-    (name "rust-polars-io")
-    (version "0.15.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "polars-io" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "19r2l3rxjdk25ir93l85ap4q0w5p7apjw3g57pszxph9nh2j8ba2"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-ahash" ,rust-ahash-0.7)
-        ("rust-anyhow" ,rust-anyhow-1)
-        ("rust-arrow" ,rust-arrow-5)
-        ("rust-csv-core" ,rust-csv-core-0.1)
-        ("rust-dirs" ,rust-dirs-3)
-        ("rust-fast-float" ,rust-fast-float-0.2)
-        ("rust-flate2" ,rust-flate2-1)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-lexical" ,rust-lexical-5)
-        ("rust-memmap2" ,rust-memmap2-0.2)
-        ("rust-num" ,rust-num-0.4)
-        ("rust-num-cpus" ,rust-num-cpus-1)
-        ("rust-parquet" ,rust-parquet-5)
-        ("rust-polars-arrow" ,rust-polars-arrow-0.15)
-        ("rust-polars-core" ,rust-polars-core-0.15)
-        ("rust-rayon" ,rust-rayon-1)
-        ("rust-regex" ,rust-regex-1)
-        ("rust-simdutf8" ,rust-simdutf8-0.1))))))
-
 (define-public rust-polars-lazy-0.17
   (package
     (name "rust-polars-lazy")
@@ -42445,29 +44767,6 @@ applications.")
 library.")
     (license license:expat)))
 
-(define-public rust-polars-lazy-0.16
-  (package
-    (inherit rust-polars-lazy-0.17)
-    (name "rust-polars-lazy")
-    (version "0.16.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "polars-lazy" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "01bjsk880dvigyqx7aj3f8zvxpk9gl14k3s40w3dv3aanhdzq7wx"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-ahash" ,rust-ahash-0.7)
-        ("rust-itertools" ,rust-itertools-0.10)
-        ("rust-polars-arrow" ,rust-polars-arrow-0.16)
-        ("rust-polars-core" ,rust-polars-core-0.16)
-        ("rust-polars-io" ,rust-polars-io-0.16)
-        ("rust-rayon" ,rust-rayon-1)
-        ("rust-regex" ,rust-regex-1))))))
-
 (define-public rust-polling-2
   (package
     (name "rust-polling")
@@ -42523,8 +44822,36 @@ library.")
 a cipher, can be used as a Message Authentication Code (MAC).")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-polyval-0.6
+  (package
+    (name "rust-polyval")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "polyval" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1iihmpn1h1ag5zl368yfq0jz1drfdw7xg7zpaqpcppqiikh39wky"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-cpufeatures" ,rust-cpufeatures-0.2)
+        ("rust-opaque-debug" ,rust-opaque-debug-0.3)
+        ("rust-universal-hash" ,rust-universal-hash-0.5)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-hex-literal" ,rust-hex-literal-0.3))))
+    (home-page "https://github.com/RustCrypto/universal-hashes")
+    (synopsis "GHASH-like universal hash")
+    (description "POLYVAL is a GHASH-like universal hash over GF(2^128) useful
+for constructing a Message Authentication Code (MAC).")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-polyval-0.4
   (package
+    (inherit rust-polyval-0.6)
     (name "rust-polyval")
     (version "0.4.0")
     (source
@@ -42535,7 +44862,6 @@ a cipher, can be used as a Message Authentication Code (MAC).")
        (sha256
         (base32
          "1p0765j30qxr50zh74aflafx540xkxqb7pv8kw7fvcssnm1039fr"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-cfg-if" ,rust-cfg-if-0.1)
@@ -42545,12 +44871,7 @@ a cipher, can be used as a Message Authentication Code (MAC).")
        (("rust-criterion" ,rust-criterion-0.3)
         ("rust-criterion-cycles-per-byte"
          ,rust-criterion-cycles-per-byte-0.1)
-        ("rust-hex-literal" ,rust-hex-literal-0.1))))
-    (home-page "https://github.com/RustCrypto/universal-hashes")
-    (synopsis "GHASH-like universal hash")
-    (description "POLYVAL is a GHASH-like universal hash over GF(2^128) useful
-for constructing a Message Authentication Code (MAC).")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-hex-literal" ,rust-hex-literal-0.1))))))
 
 (define-public rust-polyval-0.3
   (package
@@ -43117,21 +45438,21 @@ particularly useful for printing structured recursive data like trees.")
 (define-public rust-pretty-assertions-1
   (package
     (name "rust-pretty-assertions")
-    (version "1.2.1")
+    (version "1.3.0")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "pretty_assertions" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0qrmkdwqn56af498vi8zjyq44wzcyvj5ic1dv54d01s2r6d9i7y8"))))
+                "0mgp1ajl3fdc55h989ph48znnk86m41j9dqnpg80yy5a435rnpm2"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-ansi-term" ,rust-ansi-term-0.12)
-        ("rust-ctor" ,rust-ctor-0.1)
+       (("rust-ctor" ,rust-ctor-0.1)
         ("rust-diff" ,rust-diff-0.1)
-        ("rust-output-vt100" ,rust-output-vt100-0.1))))
+        ("rust-output-vt100" ,rust-output-vt100-0.1)
+        ("rust-yansi" ,rust-yansi-0.5))))
     (home-page "https://github.com/colin-kiegel/rust-pretty-assertions")
     (synopsis "Drop-in replacements for assert_eq! and assert_ne!")
     (description
@@ -43367,19 +45688,19 @@ losslessly as possible.")
 (define-public rust-proc-macro-crate-1
   (package
     (name "rust-proc-macro-crate")
-    (version "1.0.0")
+    (version "1.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "proc-macro-crate" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "14pzgkpnlzq6y7yc749h2lwd1mv44min4iszjk2znmi1yqfvvza1"))))
+        (base32 "0d1zq41h7aymny4p87nmz20688zr9zrrn6nmczz7l77cwj4q6qb6"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-thiserror" ,rust-thiserror-1)
-        ("rust-toml" ,rust-toml-0.5))
+       (("rust-once-cell" ,rust-once-cell-1)
+        ("rust-toml-edit" ,rust-toml-edit-0.18))
        #:cargo-development-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
@@ -43565,22 +45886,23 @@ in your code.")
 (define-public rust-proc-macro2-1
   (package
     (name "rust-proc-macro2")
-    (version "1.0.47")
+    (version "1.0.52")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "proc-macro2" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "09g7alc7mlbycsadfh7lwskr1qfxbiic9qp9z751cqz3n04dk8sy"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "proc-macro2" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0922fkhi689x134yh6l97lnpwgarhbv0vnv3vpnkpk1nx3lil3hx"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-test-flags '("--lib")
        #:cargo-inputs
        (("rust-unicode-ident" ,rust-unicode-ident-1))
        #:cargo-development-inputs
-       (("rust-quote" ,rust-quote-1))))
+       (("rust-quote" ,rust-quote-1)
+        ("rust-rustversion" ,rust-rustversion-1))))
     ;; This is necessary for downstream packages such as rust-wayland-scanner
     (inputs (list rust-unicode-ident-1))
     (home-page "https://github.com/dtolnay/proc-macro2")
@@ -43930,28 +46252,28 @@ including most strategies and the testing framework itself.")
        #:cargo-development-inputs
        (("rust-regex" ,rust-regex-0.2))))))
 
-(define-public rust-proptest-derive-0.1
+(define-public rust-proptest-derive-0.3
   (package
     (name "rust-proptest-derive")
-    (version "0.1.2")
+    (version "0.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "proptest-derive" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0nziczbm7w0jisjrd216hh2j45fs5m363ga7r6nawwxcxlbxn7nk"))))
+        (base32 "1p4x6k1zxq9lrpk46npdnzj6894mjx5bpwkwrdk63ird72an5d4h"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:tests? #f          ; Needs nightly features.
+       #:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-0.4)
         ("rust-quote" ,rust-quote-0.6)
         ("rust-syn" ,rust-syn-0.15))
        #:cargo-development-inputs
        (("rust-compiletest-rs" ,rust-compiletest-rs-0.3)
         ("rust-criterion" ,rust-criterion-0.2)
-        ("rust-proptest" ,rust-proptest-0.9))))
+        ("rust-proptest" ,rust-proptest-1))))
     (home-page
      "https://altsysrq.github.io/proptest-book/proptest-derive/index.html")
     (synopsis "Custom-derive for the Arbitrary trait of proptest")
@@ -43959,6 +46281,29 @@ including most strategies and the testing framework itself.")
 trait of proptest.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-proptest-derive-0.1
+  (package
+    (inherit rust-proptest-derive-0.3)
+    (name "rust-proptest-derive")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "proptest-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0nziczbm7w0jisjrd216hh2j45fs5m363ga7r6nawwxcxlbxn7nk"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-0.4)
+        ("rust-quote" ,rust-quote-0.6)
+        ("rust-syn" ,rust-syn-0.15))
+       #:cargo-development-inputs
+       (("rust-compiletest-rs" ,rust-compiletest-rs-0.3)
+        ("rust-criterion" ,rust-criterion-0.2)
+        ("rust-proptest" ,rust-proptest-0.9))))))
+
 (define-public rust-prost-derive-0.9
   (package
     (name "rust-prost-derive")
@@ -44158,6 +46503,89 @@ implementation crates.")
 stack pointer and inspect the properties of the stack.")
     (license (list license:isc license:asl2.0))))
 
+(define-public rust-ptr-meta-0.1
+  (package
+    (name "rust-ptr-meta")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ptr_meta" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1wd4wy0wxrcays4f1gy8gwcmxg7mskmivcv40p0hidh6xbvwqf07"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-ptr-meta-derive" ,rust-ptr-meta-derive-0.1))))
+    (home-page "https://github.com/djkoloski/ptr_meta")
+    (synopsis "Manipulate metadata of fat pointers")
+    (description "This package allows manipulating the metadata of fat
+pointers:
+
+@itemize
+@item Naming the metadata’s type (as an associated type)
+@item Extracting metadata from a pointer
+@item Reconstructing a pointer from a data pointer and metadata
+@item Representing vtables, the metadata for trait objects, as a type with
+  some limited API.
+@end itemize")
+    (license license:expat)))
+
+(define-public rust-ptr-meta-derive-0.1
+  (package
+    (name "rust-ptr-meta-derive")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ptr_meta_derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1b69cav9wn67cixshizii0q5mlbl0lihx706vcrzm259zkdlbf0n"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/djkoloski/ptr_meta")
+    (synopsis "Macros for the ptr_meta fat pointer metadata API")
+    (description "This package provides macros for the ptr_meta API.")
+    (license license:expat)))
+
+(define-public rust-ptree-0.4
+  (package
+    (name "rust-ptree")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ptree" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0w72k0svlj8ihbf7m7ivay7rpv38xz9ad5a06isyqsiiddwq1pm0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-ansi-term" ,rust-ansi-term-0.12)
+        ("rust-atty" ,rust-atty-0.2)
+        ("rust-config" ,rust-config-0.11)
+        ("rust-directories" ,rust-directories-4)
+        ("rust-petgraph" ,rust-petgraph-0.6)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-value" ,rust-serde-value-0.7)
+        ("rust-tint" ,rust-tint-1))))
+    (home-page "https://gitlab.com/Noughmad/ptree")
+    (synopsis "Pretty-print tree-like structures")
+    (description
+     "The @code{ptree} crate supports output formatting due to a user-provided
+configuration file and/or environment variables.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-publicsuffix-2
   (package
     (name "rust-publicsuffix")
@@ -44414,6 +46842,31 @@ they were parsed from")
 @code{LC_COLLATE} and @code{LC_CTYPE} are not yet supported.")
     (license license:expat)))
 
+(define-public rust-pyo3-build-config-0.18
+  (package
+    (name "rust-pyo3-build-config")
+    (version "0.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pyo3-build-config" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0zb7sz2w59ba0ipmy7saigyyr9v6pkrzqb8r5gagmp87bncryhvm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-once-cell" ,rust-once-cell-1)
+        ("rust-python3-dll-a" ,rust-python3-dll-a-0.2)
+        ("rust-target-lexicon" ,rust-target-lexicon-0.12))))
+    (native-inputs (list python))       ;for tests
+    (home-page "https://github.com/pyo3/pyo3")
+    (synopsis "Build configuration for PyO3")
+    (description
+     "This package contains build configuration helpers for the PyO3
+ecosystem.")
+    (license license:asl2.0)))
+
 (define-public rust-pyo3-build-config-0.16
   (package
     (name "rust-pyo3-build-config")
@@ -44478,6 +46931,32 @@ ecosystem.")
      "This crate provides Rust FFI declarations for Python 3.")
     (license license:asl2.0)))
 
+(define-public rust-pyo3-ffi-0.18
+  (package
+    (name "rust-pyo3-ffi")
+    (version "0.18.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pyo3-ffi" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1r8fmkfad60wdidsj4h5w16h0n2avn5bcy9nh92gy5vsq2jjd5c3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(;; The doctests fail with this error: `core::slice::<impl
+       ;; [T]>::as_mut_ptr` is not yet stable as a const fn
+       #:tests? #false
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-pyo3-build-config" ,rust-pyo3-build-config-0.18))))
+    (native-inputs (list python))
+    (home-page "https://github.com/pyo3/pyo3")
+    (synopsis "Python API bindings for the PyO3 ecosystem")
+    (description
+     "This crate provides Rust FFI declarations for Python 3.")
+    (license license:asl2.0)))
+
 (define-public rust-pyo3-macros-backend-0.16
   (package
     (name "rust-pyo3-macros-backend")
@@ -44746,14 +47225,14 @@ Python code from a Rust binary is also supported.")
 (define-public rust-python3-dll-a-0.2
   (package
     (name "rust-python3-dll-a")
-    (version "0.2.5")
+    (version "0.2.6")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "python3-dll-a" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "01k2nf4wq4f4xnaq3fy1gx12v10pndwmdrjq4x4pshhjxxnrpml9"))))
+                "1a676r8xlbkijdagywwz838rbdnc9h28lgmx1ccvyqj9h9rbs5d9"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f                      ;Windows-like targets only
@@ -45306,18 +47785,123 @@ numbers.")
 and Petrick's method, an algorithm to automatically minimize boolean expressions.")
     (license license:expat)))
 
+(define-public rust-quinn-0.8
+  (package
+    (name "rust-quinn")
+    (version "0.8.5")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "quinn" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "13zgwm0pm73w26mzrgv3z9c9rf0zqmq1j8r7k64di85zv5qmwhsv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytes" ,rust-bytes-1)
+        ("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-fxhash" ,rust-fxhash-0.2)
+        ("rust-quinn-proto" ,rust-quinn-proto-0.8)
+        ("rust-quinn-udp" ,rust-quinn-udp-0.1)
+        ("rust-rustls" ,rust-rustls-0.20)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-webpki" ,rust-webpki-0.22))
+       #:cargo-development-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-bencher" ,rust-bencher-0.1)
+        ("rust-crc" ,rust-crc-2)
+        ("rust-directories-next" ,rust-directories-next-2)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rcgen" ,rust-rcgen-0.8)
+        ("rust-rustls-pemfile" ,rust-rustls-pemfile-0.2)
+        ("rust-structopt" ,rust-structopt-0.3)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tracing-futures" ,rust-tracing-futures-0.2)
+        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3)
+        ("rust-url" ,rust-url-2))))
+    (home-page "https://github.com/quinn-rs/quinn")
+    (synopsis "Versatile QUIC transport protocol implementation")
+    (description "Versatile QUIC transport protocol implementation")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-quinn-proto-0.8
+  (package
+    (name "rust-quinn-proto")
+    (version "0.8.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "quinn-proto" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0m9ak5nsplf3a6s7i9243y5rlh8d8a428r9hfnjngxw8jrmm9kiz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-arbitrary" ,rust-arbitrary-1)
+        ("rust-bytes" ,rust-bytes-1)
+        ("rust-fxhash" ,rust-fxhash-0.2)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-ring" ,rust-ring-0.16)
+        ("rust-rustls" ,rust-rustls-0.20)
+        ("rust-rustls-native-certs" ,rust-rustls-native-certs-0.6)
+        ("rust-rustls-pemfile" ,rust-rustls-pemfile-0.2)
+        ("rust-slab" ,rust-slab-0.4)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-tinyvec" ,rust-tinyvec-1)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-webpki" ,rust-webpki-0.22))
+       #:cargo-development-inputs
+       (("rust-assert-matches" ,rust-assert-matches-1)
+        ("rust-hex-literal" ,rust-hex-literal-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-rcgen" ,rust-rcgen-0.8)
+        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
+    (home-page "https://github.com/quinn-rs/quinn")
+    (synopsis "State machine for the QUIC transport protocol")
+    (description "State machine for the QUIC transport protocol")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-quinn-udp-0.1
+  (package
+    (name "rust-quinn-udp")
+    (version "0.1.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "quinn-udp" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0m4fafg9d87d8hr0988bg1dcichnxm4xkvwv4vm1lls1f4klcydh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-quinn-proto" ,rust-quinn-proto-0.8)
+        ("rust-socket2" ,rust-socket2-0.4)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tracing" ,rust-tracing-0.1))))
+    (home-page "https://github.com/quinn-rs/quinn")
+    (synopsis "UDP sockets with ECN information for the QUIC transport protocol")
+    (description
+     "This package provodes UDP sockets with ECN information for the QUIC
+transport protocol in Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-quote-1
   (package
     (name "rust-quote")
-    (version "1.0.21")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "quote" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0yai5cyd9h95n7hkwjcx8ig3yv0hindmz5gm60g9dmm7fzrlir5v"))))
+    (version "1.0.25")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "quote" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "117y035vad1a67md2r9fk9663i5cvbax1ykc998f3hr9hwhfh22k"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -45423,6 +48007,29 @@ data.")
     (description "This package provides a generic connection pool.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-radium-0.7
+  (package
+    (name "rust-radium")
+    (version "0.7.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "radium" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "02cxfi3ky3c4yhyqx9axqwhyaca804ws46nn4gc1imbk94nzycyw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-static-assertions" ,rust-static-assertions-1))))
+    (home-page "https://ferrilab.github.io/ferrilab")
+    (synopsis "Portable interfaces for maybe-atomic types")
+    (description
+     "@code{radium} provides abstractions and graceful degradation for
+behavior that must be shared-mutable, but merely may use atomic instructions
+to do so.")
+    (license license:expat)))
+
 (define-public rust-radium-0.6
   (package
     (name "rust-radium")
@@ -46616,6 +49223,47 @@ Rust.")
     (description "This package provides core APIs for Rayon.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-rcgen-0.8
+  (package
+    (name "rust-rcgen")
+    (version "0.8.14")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rcgen" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "19qvlcz8kl046q85xa40p3xg7l78jganj83hdbawjhs17x0d24ar"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Don't use a vendored botan.
+                  (substitute* "Cargo.toml"
+                    ((".*vendored.*") ""))))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-chrono" ,rust-chrono-0.4)
+        ("rust-pem" ,rust-pem-1)
+        ("rust-ring" ,rust-ring-0.16)
+        ("rust-x509-parser" ,rust-x509-parser-0.12)
+        ("rust-yasna" ,rust-yasna-0.4)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-botan" ,rust-botan-0.8)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rsa" ,rust-rsa-0.5)
+        ("rust-webpki" ,rust-webpki-0.22)
+        ("rust-x509-parser" ,rust-x509-parser-0.12))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list botan openssl))
+    (home-page "https://github.com/est31/rcgen")
+    (synopsis "Rust X.509 certificate generator")
+    (description "Rust X.509 certificate generator")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-rctree-0.4
   (package
     (name "rust-rctree")
@@ -46635,20 +49283,6 @@ Rust.")
 reference counting.")
     (license license:expat)))
 
-(define-public rust-rctree-0.3
-  (package
-    (inherit rust-rctree-0.4)
-    (name "rust-rctree")
-    (version "0.3.3")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "rctree" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1a54z2b850albiqx9vw009p9xg363vqzh1ybkwb89zn8375jk7my"))))))
-
 (define-public rust-rdrand-0.4
   (package
     (name "rust-rdrand")
@@ -46714,9 +49348,32 @@ currently pressed on macOS.")
 owned memory.")
     (license license:expat)))
 
+(define-public rust-redox-syscall-0.3
+  (package
+    (name "rust-redox-syscall")
+    (version "0.3.5")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "redox-syscall" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0acgiy2lc1m2vr8cr33l5s7k9wzby8dybyab1a9p753hcbr68xjn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))
+    (home-page "https://gitlab.redox-os.org/redox-os/syscall")
+    (synopsis "Rust library to access raw Redox system calls")
+    (description
+     "This package provides a Rust library to access raw Redox system calls.")
+    (license license:expat)))
 
 (define-public rust-redox-syscall-0.2
   (package
+    (inherit rust-redox-syscall-0.3)
     (name "rust-redox-syscall")
     (version "0.2.10")
     (source
@@ -46726,16 +49383,10 @@ owned memory.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1zq36bhw4c6xig340ja1jmr36iy0d3djp8smsabxx71676bg70w3"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1))))
-    (home-page "https://gitlab.redox-os.org/redox-os/syscall")
-    (synopsis "Rust library to access raw Redox system calls")
-    (description
-     "This package provides a Rust library to access raw Redox system calls.")
-    (license license:expat)))
+       (("rust-bitflags" ,rust-bitflags-1))))))
 
 ;; This package requires features which are unavailable
 ;; on the stable releases of Rust.
@@ -47222,28 +49873,6 @@ uses finite automata and guarantees linear time matching on all inputs.")
     (description "This package provides portable, relative paths for Rust.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-relay-0.1
-  (package
-    (name "rust-relay")
-    (version "0.1.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "relay" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "16j8y57rjrfy3h5xfi9fwfbjs1nka3iifi52rvp9szldd21f6xhm"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-futures" ,rust-futures-0.1))))
-    (home-page "")
-    (synopsis "Lightweight oneshot Future channel")
-    (description
-     "This package provides a lightweight oneshot Future channel.")
-    (license (list license:expat license:asl2.0))))
-
 (define-public rust-remove-dir-all-0.5
   (package
     (name "rust-remove-dir-all")
@@ -47270,29 +49899,6 @@ uses finite automata and guarantees linear time matching on all inputs.")
     (license (list license:asl2.0
                    license:expat))))
 
-;; rust-remove-dir-all-0.5.2 is only needed for tealdeer at 1.4.1
-;; Remove rust-remove-dir-all-0.5.2 when tealdeer is updated
-(define-public rust-remove-dir-all-0.5.2
-  (package
-    (inherit rust-remove-dir-all-0.5)
-    (name "rust-remove-dir-all")
-    (version "0.5.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "remove_dir_all" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0bkrlyg26mgizpiy1yb2hhpgscxcag8r5fnckqsvk25608vzm0sa"))))
-    (arguments
-     `(#:tests? #f  ; README.md is missing.
-       #:cargo-inputs
-       (("rust-winapi" ,rust-winapi-0.3))
-       #:cargo-development-inputs
-       (("rust-doc-comment" ,rust-doc-comment-0.3))))))
-
 (define-public rust-rend-0.3
   (package
     (name "rust-rend")
@@ -47313,6 +49919,26 @@ uses finite automata and guarantees linear time matching on all inputs.")
      "This package provides endian-aware primitives for Rust.")
     (license license:expat)))
 
+(define-public rust-rend-0.4
+  (package
+    (name "rust-rend")
+    (version "0.4.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rend" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1av8mfxrc6dvm0hmn2ymi56jrv6a7dqssxwdn1zx6h4j1790h42q"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-bytecheck" ,rust-bytecheck-0.6))))
+    (home-page "https://github.com/djkoloski/rend")
+    (synopsis "Endian-aware primitives for Rust")
+    (description "Rend is a library that provides endian-aware primitives for
+Rust.")
+    (license license:expat)))
+
 (define-public rust-reopen-0.3
   (package
     (name "rust-reopen")
@@ -47340,58 +49966,67 @@ uses finite automata and guarantees linear time matching on all inputs.")
 (define-public rust-reqwest-0.11
   (package
     (name "rust-reqwest")
-    (version "0.11.4")
+    (version "0.11.14")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "reqwest" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "08kdxaa7c5wzlr2f4qkqlczc86p30sz84xllk83dyxxvp5hryvi4"))))
+        (base32 "1s8yv7r76af4aqf55ckn7ndfr8ba427wybkp7gam42apr07dkvi1"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:cargo-test-flags
+       '("--release" "--"
+         ;; These tests go to the network
+         "--skip=test_badssl_modern"
+         "--skip=test_badssl_self_signed"
+         "--skip=connect_timeout"
+         "--skip=test_allowed_methods")
        #:cargo-inputs
        (("rust-async-compression" ,rust-async-compression-0.3)
-        ("rust-base64" ,rust-base64-0.13)
+        ("rust-base64" ,rust-base64-0.21)
         ("rust-bytes" ,rust-bytes-1)
-        ("rust-cookie" ,rust-cookie-0.14)
-        ("rust-cookie-store" ,rust-cookie-store-0.12)
+        ("rust-cookie" ,rust-cookie-0.16)
+        ("rust-cookie-store" ,rust-cookie-store-0.16)
         ("rust-encoding-rs" ,rust-encoding-rs-0.8)
         ("rust-futures-core" ,rust-futures-core-0.3)
         ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-h2" ,rust-h2-0.3)
         ("rust-http" ,rust-http-0.2)
         ("rust-http-body" ,rust-http-body-0.4)
         ("rust-hyper" ,rust-hyper-0.14)
-        ("rust-hyper-rustls" ,rust-hyper-rustls-0.22)
+        ("rust-hyper-rustls" ,rust-hyper-rustls-0.23)
         ("rust-hyper-tls" ,rust-hyper-tls-0.5)
         ("rust-ipnet" ,rust-ipnet-2)
         ("rust-js-sys" ,rust-js-sys-0.3)
-        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-log" ,rust-log-0.4)
         ("rust-mime" ,rust-mime-0.3)
         ("rust-mime-guess" ,rust-mime-guess-2)
         ("rust-native-tls" ,rust-native-tls-0.2)
+        ("rust-once-cell" ,rust-once-cell-1)
         ("rust-percent-encoding" ,rust-percent-encoding-2)
         ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
-        ("rust-rustls" ,rust-rustls-0.19)
-        ("rust-rustls-native-certs" ,rust-rustls-native-certs-0.5)
+        ("rust-rustls" ,rust-rustls-0.20)
+        ("rust-rustls-native-certs" ,rust-rustls-native-certs-0.6)
+        ("rust-rustls-pemfile" ,rust-rustls-pemfile-1)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-serde-urlencoded" ,rust-serde-urlencoded-0.7)
-        ("rust-time" ,rust-time-0.2)
         ("rust-tokio" ,rust-tokio-1)
         ("rust-tokio-native-tls" ,rust-tokio-native-tls-0.3)
-        ("rust-tokio-rustls" ,rust-tokio-rustls-0.22)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.23)
         ("rust-tokio-socks" ,rust-tokio-socks-0.5)
-        ("rust-tokio-util" ,rust-tokio-util-0.6)
-        ("rust-trust-dns-resolver" ,rust-trust-dns-resolver-0.20)
+        ("rust-tokio-util" ,rust-tokio-util-0.7)
+        ("rust-tower-service" ,rust-tower-service-0.3)
+        ("rust-trust-dns-resolver" ,rust-trust-dns-resolver-0.22)
         ("rust-url" ,rust-url-2)
         ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
         ("rust-wasm-bindgen-futures" ,rust-wasm-bindgen-futures-0.4)
+        ("rust-wasm-streams" ,rust-wasm-streams-0.2)
         ("rust-web-sys" ,rust-web-sys-0.3)
-        ("rust-webpki-roots" ,rust-webpki-roots-0.21)
-        ("rust-winreg" ,rust-winreg-0.7))
+        ("rust-webpki-roots" ,rust-webpki-roots-0.22)
+        ("rust-winreg" ,rust-winreg-0.10))
        #:cargo-development-inputs
        (("rust-brotli" ,rust-brotli-3)
         ("rust-doc-comment" ,rust-doc-comment-0.3)
@@ -47400,7 +50035,12 @@ uses finite automata and guarantees linear time matching on all inputs.")
         ("rust-libflate" ,rust-libflate-1)
         ("rust-serde" ,rust-serde-1)
         ("rust-tokio" ,rust-tokio-1)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
         ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))
+    (inputs
+     (list openssl))
+    (native-inputs
+     (list pkg-config))
     (home-page "https://github.com/seanmonstar/reqwest")
     (synopsis "High level HTTP client library")
     (description "This package provides a high level HTTP client library.")
@@ -47573,7 +50213,15 @@ functionality as retain but gives mutable borrow to the predicate.")
        (uri (crate-uri "ring" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1z682xp7v38ayq9g9nkbhhfpj6ygralmlx7wdmsfv8rnw99cylrh"))))
+        (base32 "1z682xp7v38ayq9g9nkbhhfpj6ygralmlx7wdmsfv8rnw99cylrh"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (delete-file-recursively "pregenerated")
+           ;; Pretend this isn't a relase tarball.
+           (with-output-to-file ".git"
+             (lambda _
+                (format #t "")))))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #false                  ;missing file
@@ -47589,9 +50237,15 @@ functionality as retain but gives mutable borrow to the predicate.")
        #:cargo-development-inputs
        (("rust-libc" ,rust-libc-0.2)
         ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))
+    (native-inputs
+     (list perl))
     (home-page "https://github.com/briansmith/ring")
     (synopsis "Safe, fast, small crypto using Rust")
     (description "This package provided safe, fast, small crypto using Rust.")
+    ;; For a mostly complete list of supported systems see:
+    ;; https://github.com/briansmith/ring/blob/main/.github/workflows/ci.yml#L170
+    (supported-systems (list "aarch64-linux" "armhf-linux"
+                             "i686-linux" "x86_64-linux"))
     (license (list license:isc license:openssl))))
 
 (define-public rust-ring-0.14
@@ -47607,7 +50261,21 @@ functionality as retain but gives mutable borrow to the predicate.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0g091akf4dpg9qj05z3gc4nlrs57mjj2bqab98gaqp79wf3c2ss2"))))
+          "0g091akf4dpg9qj05z3gc4nlrs57mjj2bqab98gaqp79wf3c2ss2"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Fix the doc tests.
+           (substitute* "src/ec/curve25519/ed25519/verification.rs"
+             ((";;") ";"))
+           ;; Remove some generated files.
+           ;; Regenerating the curve25519_tables requires python2 and clang-format.
+           (delete-file "third_party/fiat/curve25519_tables.h")
+           (delete-file-recursively "pregenerated")
+           ;; Pretend this isn't a relase tarball.
+           (with-output-to-file ".git"
+             (lambda _
+                (format #t "")))))))
     (arguments
      `(#:cargo-inputs
        (("rust-lazy-static" ,rust-lazy-static-1)
@@ -47615,11 +50283,21 @@ functionality as retain but gives mutable borrow to the predicate.")
         ("rust-spin" ,rust-spin-0.5)
         ("rust-untrusted" ,rust-untrusted-0.6)
         ("rust-winapi" ,rust-winapi-0.3)
-        ("rust-cc" ,rust-cc-1))))))
+        ("rust-cc" ,rust-cc-1))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'generate-curve25519-tables
+           (lambda _
+             (with-directory-excursion "third_party/fiat"
+               (with-output-to-file "curve25519_tables.h"
+                 (lambda _
+                   (invoke "python" "make_curve25519_tables.py")))))))))
+    (native-inputs
+     (list clang perl python-2))))
 
 (define-public rust-ring-0.13
   (package
-    (inherit rust-ring-0.16)
+    (inherit rust-ring-0.14)
     (name "rust-ring")
     (version "0.13.5")
     (source
@@ -47628,15 +50306,36 @@ functionality as retain but gives mutable borrow to the predicate.")
        (uri (crate-uri "ring" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "12j580by6a438i5mw3136cj3lxylywymdr5p8rqlkwrm5s5bck9c"))))
-    (build-system cargo-build-system)
+        (base32 "12j580by6a438i5mw3136cj3lxylywymdr5p8rqlkwrm5s5bck9c"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; error: `...` range patterns are deprecated
+           (substitute* "src/digest/sha1.rs"
+             (("0\\.\\.\\.") "0..="))
+           ;; Remove some generated files.
+           (delete-file-recursively "pregenerated")
+           ;; Regenerating the curve25519_tables requires python2 and clang-format.
+           (delete-file "third_party/fiat/curve25519_tables.h")
+           ;; Pretend this isn't a relase tarball.
+           (with-output-to-file ".git"
+             (lambda _
+                (format #t "")))))))
     (arguments
      `(#:cargo-inputs
        (("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-untrusted" ,rust-untrusted-0.6)
         ;; build dependencies
-        ("rust-cc" ,rust-cc-1))))))
+        ("rust-cc" ,rust-cc-1))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'generate-curve25519-tables
+           (lambda _
+             (with-directory-excursion "third_party/fiat"
+               (with-output-to-file "curve25519_tables.h"
+                 (lambda _
+                   (invoke "python" "make_curve25519_tables.py")))))))))))
 
 (define-public rust-riscv-0.7
   (package
@@ -47937,8 +50636,36 @@ responses, and headers for the Rocket web framework.")
 network services using futures.")
     (license license:expat)))
 
+(define-public rust-ron-0.7
+  (package
+    (name "rust-ron")
+    (version "0.7.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ron" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "06iz51r6pyi197jjpfddq8h8884y85myaswfan07cnqylqwkj1w8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f          ; Cannot find bitflags_serial.
+       #:cargo-inputs
+       (("rust-base64" ,rust-base64-0.13)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-option-set" ,rust-option-set-0.1)
+        ("rust-serde-bytes" ,rust-serde-bytes-0.11)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/ron-rs/ron")
+    (synopsis "Rusty Object Notation")
+    (description "This package provides Rusty Object Notation (RON).")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-ron-0.6
   (package
+    (inherit rust-ron-0.7)
     (name "rust-ron")
     (version "0.6.4")
     (source
@@ -47948,18 +50675,13 @@ network services using futures.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "07vzhbrnimz1lij0f280y624j4yzipn2404jmygs24mp7xhshkh6"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-base64" ,rust-base64-0.13)
         ("rust-bitflags" ,rust-bitflags-1)
         ("rust-indexmap" ,rust-indexmap-1)
-        ("rust-serde" ,rust-serde-1))))
-    (home-page "https://github.com/ron-rs/ron")
-    (synopsis "Rusty Object Notation")
-    (description "This package provides Rusty Object Notation (RON).")
-    (license (list license:expat license:asl2.0))))
+        ("rust-serde" ,rust-serde-1))))))
 
 (define-public rust-ron-0.5
   (package
@@ -48091,7 +50813,7 @@ can handle huge texts and memory-incoherent edits with ease.")
         ("rust-rand" ,rust-rand-0.8)
         ("rust-serde" ,rust-serde-1)
         ("rust-subtle" ,rust-subtle-2)
-        ("rust-zeroize" ,rust-zeroize-1))
+        ("rust-zeroize" ,rust-zeroize-1.4))
        #:cargo-development-inputs
         (("rust-base64" ,rust-base64-0.13)
          ("rust-hex" ,rust-hex-0.4)
@@ -48213,6 +50935,26 @@ rust.")
 and table-based tests.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-rstest-0.12
+  (package
+    (inherit rust-rstest-0.15)
+    (name "rust-rstest")
+    (version "0.12.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rstest" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0vv11n0wiqm70lyjc1byl22sqd1z1cpaq49yxrk9myd3ar8z64nr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-cfg-if" ,rust-cfg-if-1)
+                       ("rust-proc-macro2" ,rust-proc-macro2-1)
+                       ("rust-quote" ,rust-quote-1)
+                       ("rust-rustc-version" ,rust-rustc-version-0.4)
+                       ("rust-syn" ,rust-syn-1))))))
+
 (define-public rust-rstest-0.11
   (package
     (inherit rust-rstest-0.15)
@@ -48321,6 +51063,24 @@ attributes by creating a set of tests and applying it to every
 scenario you want to test.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-rstest-reuse-0.3
+  (package
+    (inherit rust-rstest-reuse-0.4)
+    (name "rust-rstest-reuse")
+    (version "0.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rstest-reuse" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0k9xdqp0gw655g9l46ii0kyv64dschnf2z7vs43s6zp2phbk37dj"))))
+    (arguments
+     (list #:skip-build? #t
+           #:cargo-inputs
+           `(("rust-quote" ,rust-quote-1)
+             ("rust-rustc-version" ,rust-rustc-version-0.4)
+             ("rust-syn" ,rust-syn-1))))))
+
 (define-public rust-rug-1
   (package
     (name "rust-rug")
@@ -48334,12 +51094,7 @@ scenario you want to test.")
           (base32 "1iw52gyw0hshymqa04g76m7qnrds5vkgc5s8svqx5nv1jz1wrdgm"))))
     (build-system cargo-build-system)
     (arguments
-      `(#:phases
-        (modify-phases %standard-phases
-          (add-after 'unpack 'set-shell-for-configure-script
-            (lambda _
-              (setenv "CONFIG_SHELL" (which "sh")))))
-        #:cargo-inputs
+      `(#:cargo-inputs
         (("rust-az" ,rust-az-1)
          ("rust-gmp-mpfr-sys" ,rust-gmp-mpfr-sys-1)
          ("rust-libc" ,rust-libc-0.2)
@@ -48349,8 +51104,8 @@ scenario you want to test.")
          ("rust-byteorder" ,rust-byteorder-1)
          ("rust-serde-json" ,rust-serde-json-1)
          ("rust-serde-test" ,rust-serde-test-1))))
-    (native-inputs
-     (list bash-minimal m4))
+    (inputs
+     (list gmp mpc mpfr))
     (home-page "https://gitlab.com/tspiteri/rug")
     (synopsis
       "Arbitrary-precision integers, rational, floating-point and complex numbers")
@@ -49170,19 +51925,6 @@ It is automatically published using the compiler repository at
 hex conversion traits.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-rustc-hex-1
-  (package
-    (inherit rust-rustc-hex-2)
-    (name "rust-rustc-hex")
-    (version "1.0.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "rustc-hex" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32 "07pff94vqc1mhrqp9i06xzayiad4xfx7588zkqsdw875lpkqrsqc"))))))
-
 (define-public rust-rustc-rayon-0.4
   (package
     (name "rust-rustc-rayon")
@@ -49215,35 +51957,6 @@ way into rayon proper at some point.  In general, if you are not rustc, you
 should be using the real rayon crate, not rustc-rayon.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-rustc-rayon-0.3
-  (package
-    (inherit rust-rustc-rayon-0.4)
-    (name "rust-rustc-rayon")
-    (version "0.3.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "rustc-rayon" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0fjvy8bf0hd1zq9d3fdxbdp4z4p1k8jfyx51k5qip3wk1pwnf9zk"))))
-    (arguments
-     `(#:tests? #f
-       #:cargo-inputs
-       (("rust-crossbeam-deque" ,rust-crossbeam-deque-0.7)
-        ("rust-either" ,rust-either-1)
-        ("rust-rustc-rayon-core" ,rust-rustc-rayon-core-0.3))
-       #:cargo-development-inputs
-       (("rust-doc-comment" ,rust-doc-comment-0.3)
-        ("rust-docopt" ,rust-docopt-1)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-rand" ,rust-rand-0.6)
-        ("rust-rand-xorshift" ,rust-rand-xorshift-0.1)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-serde-derive" ,rust-serde-derive-1))))))
-
 (define-public rust-rustc-rayon-core-0.4
   (package
     (name "rust-rustc-rayon-core")
@@ -49686,7 +52399,7 @@ rustc compiler.")
 (define-public rust-rustls-0.20
   (package
     (name "rust-rustls")
-    (version "0.20.2")
+    (version "0.20.8")
     (source
      (origin
        (method url-fetch)
@@ -49694,13 +52407,14 @@ rustc compiler.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "111z24faq1i1z3gbznfgl7qp3in2fx1y1adijjsl1q7kj0i5wznk"))))
+        (base32 "0bqfymq5bjs1jxg1iw2nn4ab3kzz2lrk8a1vx3s98lhp9p3qzxzz"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f          ; Not all files included.
        #:cargo-inputs
        (("rust-log" ,rust-log-0.4)
         ("rust-ring" ,rust-ring-0.16)
+        ("rust-rustversion" ,rust-rustversion-1)
         ("rust-sct" ,rust-sct-0.7)
         ("rust-webpki" ,rust-webpki-0.22))
        #:cargo-development-inputs
@@ -49708,8 +52422,9 @@ rustc compiler.")
         ("rust-criterion" ,rust-criterion-0.3)
         ("rust-env-logger" ,rust-env-logger-0.9)
         ("rust-log" ,rust-log-0.4)
-        ("rust-rustls-pemfile" ,rust-rustls-pemfile-0.2)
+        ("rust-rustls-pemfile" ,rust-rustls-pemfile-1)
         ("rust-webpki-roots" ,rust-webpki-roots-0.22))))
+    (native-inputs (list perl))
     (home-page "https://github.com/rustls/rustls")
     (synopsis "Modern TLS library written in Rust")
     (description
@@ -49754,7 +52469,8 @@ rustc compiler.")
         (base32
          "108cf3bfw5high066shz9xrfv4jz7djdmnwqs3kwx4wfypf2c4ax"))))
     (arguments
-     `(#:cargo-inputs
+     `(#:tests? #f          ; Not all files included.
+       #:cargo-inputs
        (("rust-base64" ,rust-base64-0.12)
         ("rust-log" ,rust-log-0.4)
         ("rust-ring" ,rust-ring-0.16)
@@ -49781,7 +52497,8 @@ rustc compiler.")
         (base32
          "1q8m835viqrf4bbd2fa8rnmaj48fkd984saxf0238hb8blgs7m60"))))
     (arguments
-     `(#:cargo-inputs
+     `(#:tests? #f          ; Not all files included.
+       #:cargo-inputs
        (("rust-base64" ,rust-base64-0.11)
         ("rust-log" ,rust-log-0.4)
         ("rust-ring" ,rust-ring-0.16)
@@ -49905,6 +52622,35 @@ rustc compiler.")
         ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-webpki-roots" ,rust-webpki-roots-0.14))))))
 
+(define-public rust-rustls-ffi-0.8
+  (package
+    (name "rust-rustls-ffi")
+    (version "0.8.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rustls-ffi" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "06kqrvm1d5ps9pml26zdd2hm8hh20j6svwvqibpnx7m5rh3jg9cx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-num-enum" ,rust-num-enum-0.5)
+        ("rust-rustls" ,rust-rustls-0.20)
+        ("rust-rustls-pemfile" ,rust-rustls-pemfile-0.2)
+        ("rust-sct" ,rust-sct-0.7)
+        ("rust-webpki" ,rust-webpki-0.22))
+        #:cargo-development-inputs
+        (("rust-cbindgen" ,rust-cbindgen-0.19))))
+    (native-inputs
+     (list perl))
+    (home-page "https://github.com/rustls/rustls-ffi")
+    (synopsis "Rustls bindings for non-Rust languages")
+    (description "Rustls bindings for non-Rust languages")
+    (license (list license:asl2.0 license:isc license:expat))))
+
 (define-public rust-rustls-native-certs-0.6
   (package
     (name "rust-rustls-native-certs")
@@ -49987,29 +52733,47 @@ native certificate store.")
         ("rust-webpki" ,rust-webpki-0.21)
         ("rust-webpki-roots" ,rust-webpki-roots-0.20))))))
 
-(define-public rust-rustls-pemfile-0.2
+(define-public rust-rustls-pemfile-1
   (package
     (name "rust-rustls-pemfile")
-    (version "0.2.1")
+    (version "1.0.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rustls-pemfile" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1jfi97lqnnnnxhmfy6ygrsp0x70m8wsdpaw45svvz1qc6vmymssy"))))
+        (base32 "16x5jhja8z0j5hcrlaqqz5qnyg9qgv8qqffwbdil6fl0b1nvb56i"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-base64" ,rust-base64-0.13))
+       (("rust-base64" ,rust-base64-0.21))
        #:cargo-development-inputs
-       (("rust-criterion" ,rust-criterion-0.3))))
+       (("rust-bencher" ,rust-bencher-0.1))))
     (home-page "https://github.com/rustls/pemfile")
     (synopsis "Basic parser for PEM formatted keys and certificates")
     (description "This package provides a very basic parser for the
 PEM-encodings commonly used to store keys and certificates at rest.")
     (license (list license:asl2.0 license:isc license:expat))))
 
+(define-public rust-rustls-pemfile-0.2
+  (package
+    (inherit rust-rustls-pemfile-1)
+    (name "rust-rustls-pemfile")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rustls-pemfile" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1jfi97lqnnnnxhmfy6ygrsp0x70m8wsdpaw45svvz1qc6vmymssy"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.13))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3))))))
+
 (define-public rust-rusttype-0.9
   (package
     (name "rust-rusttype")
@@ -50398,26 +53162,29 @@ sub-processes using a fork-like interface.")
 (define-public rust-rkyv-0.7
   (package
     (name "rust-rkyv")
-    (version "0.7.39")
+    (version "0.7.40")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "rkyv" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "05gdspzw03hq6l58si4ixfj5xd27ljw6fiqksggnvn87bd4b7hnf"))))
+                "1hsd81bkm1rvh3kl66fhnadji4h88w2pgf0yrp4cnqdav52is3y3"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs (("rust-bytecheck" ,rust-bytecheck-0.6)
-                       ("rust-hashbrown" ,rust-hashbrown-0.12)
-                       ("rust-indexmap" ,rust-indexmap-1)
-                       ("rust-ptr-meta" ,rust-ptr-meta-0.1)
-                       ("rust-rend" ,rust-rend-0.3)
-                       ("rust-rkyv-derive" ,rust-rkyv-derive-0.7)
-                       ("rust-seahash" ,rust-seahash-4)
-                       ("rust-smallvec" ,rust-smallvec-1)
-                       ("rust-tinyvec" ,rust-tinyvec-1)
-                       ("rust-uuid" ,rust-uuid-1))))
+     `(#:cargo-inputs
+       (("rust-arrayvec" ,rust-arrayvec-0.7)
+        ("rust-bitvec" ,rust-bitvec-1)
+        ("rust-bytecheck" ,rust-bytecheck-0.6)
+        ("rust-hashbrown" ,rust-hashbrown-0.12)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-ptr-meta" ,rust-ptr-meta-0.1)
+        ("rust-rend" ,rust-rend-0.4)
+        ("rust-rkyv-derive" ,rust-rkyv-derive-0.7)
+        ("rust-seahash" ,rust-seahash-4)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-tinyvec" ,rust-tinyvec-1)
+        ("rust-uuid" ,rust-uuid-1))))
     (home-page "https://github.com/rkyv/rkyv")
     (synopsis "Zero-copy deserialization framework for Rust")
     (description "Rkyv is a zero-copy deserialization framework for Rust.")
@@ -50458,8 +53225,7 @@ sub-processes using a fork-like interface.")
                 "1i1lmir3lm8zj8k1an7j2rchv1admqhysh6r6bfkcgmmi3fdmbkf"))))
     (build-system cargo-build-system)
     (arguments
-     `(;#:skip-build? #t
-       #:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
+     `(#:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
                        ("rust-quote" ,rust-quote-1)
                        ("rust-syn" ,rust-syn-1))))
     (home-page "https://github.com/rkyv/rkyv")
@@ -50944,7 +53710,7 @@ single-cell matrices.")
 (define-public rust-schannel-0.1
   (package
     (name "rust-schannel")
-    (version "0.1.16")
+    (version "0.1.21")
     (source
       (origin
         (method url-fetch)
@@ -50952,13 +53718,12 @@ single-cell matrices.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "08d0p5iy574vdrax4l3laazic0crj7rp7vp3if5rrfkcdfq51xc7"))))
+          "1cxivcbczzfv4295pqi5s80kr7nhs7xc0i40zf43b7q5qw3gng3i"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-winapi" ,rust-winapi-0.3))))
+       (("rust-windows-sys" ,rust-windows-sys-0.42))))
     (home-page "https://github.com/steffengy/schannel-rs")
     (synopsis "Rust bindings to the Windows SChannel APIs")
     (description
@@ -51451,7 +54216,18 @@ Pwrite traits from the scroll crate.")
     (arguments
      `(#:cargo-inputs
        (("rust-ring" ,rust-ring-0.14)
-        ("rust-untrusted" ,rust-untrusted-0.6))))))
+        ("rust-untrusted" ,rust-untrusted-0.6))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'build-curve25519-tables
+           (lambda* (#:key vendor-dir #:allow-other-keys)
+             (with-directory-excursion
+               (dirname (car (find-files vendor-dir "make_curve25519_tables.py")))
+               (with-output-to-file "curve25519_tables.h"
+                 (lambda _
+                   (invoke "python" "make_curve25519_tables.py")))))))))
+    (native-inputs
+     (list clang perl python-2))))
 
 (define-public rust-sct-0.4
   (package
@@ -51491,6 +54267,30 @@ Pwrite traits from the scroll crate.")
        #:cargo-development-inputs
        (("rust-cc" ,rust-cc-1))))))
 
+(define-public rust-sctk-adwaita-0.5
+  (package
+    (name "rust-sctk-adwaita")
+    (version "0.5.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "sctk-adwaita" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "02gdwfc0dmx9azqd13sfnfczl0z8jjvci0df5b64q5zxw5xyk96d"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ab-glyph" ,rust-ab-glyph-0.2)
+        ("rust-crossfont" ,rust-crossfont-0.5)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-memmap2" ,rust-memmap2-0.5)
+        ("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.16)
+        ("rust-tiny-skia" ,rust-tiny-skia-0.8))))
+    (home-page "https://github.com/PolyMeilex/sctk-adwaita")
+    (synopsis "Adwaita-like SCTK Frame")
+    (description "Adwaita-like SCTK Frame")
+    (license license:expat)))
 
 (define-public rust-seahash-3
   (package
@@ -51726,7 +54526,8 @@ macOS and iOS.")
         (base32
          "0gw3xxg8yzbjb4ny5cy07gky177c1nbgpxqjsw3hfzpfgrxji9bz"))))
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t ; MacOS specific
+       #:cargo-inputs
        (("rust-core-foundation"
          ,rust-core-foundation-0.6)
         ("rust-core-foundation-sys"
@@ -51932,7 +54733,19 @@ macOS and iOS.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "11icfj8ix8fqjsnw3dqw83bmhd5qdhxzq2klb486akyypq0b31hv"))))))
+         "11icfj8ix8fqjsnw3dqw83bmhd5qdhxzq2klb486akyypq0b31hv"))))
+   (arguments
+    `(#:cargo-inputs
+      (("rust-bitflags" ,rust-bitflags-1)
+       ("rust-cssparser" ,rust-cssparser-0.25)
+       ("rust-fxhash" ,rust-fxhash-0.2)
+       ("rust-log" ,rust-log-0.4)
+       ("rust-matches" ,rust-matches-0.1)
+       ("rust-phf" ,rust-phf-0.7)
+       ("rust-precomputed-hash" ,rust-precomputed-hash-0.1)
+       ("rust-servo-arc" ,rust-servo-arc-0.1)
+       ("rust-smallvec" ,rust-smallvec-0.6)
+       ("rust-thin-slice" ,rust-thin-slice-0.1))))))
 
 (define-public rust-semver-1
   (package
@@ -52227,17 +55040,20 @@ fragment of code.")
 (define-public rust-serde-1
   (package
     (name "rust-serde")
-    (version "1.0.152")
+    (version "1.0.160")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serde" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1ysykpc4a9f1yn7zikdwhyfs0bpa7mlc8vsm7sl4glr1606iyzdv"))))
+        (base32
+         "0v11q6pjdjivw24cv98zv9dkdx50d6h9748lgvdbrqxwr1q3fbxv"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     ;; XXX: three test failures, e.g.:
+     ;; error: cannot find derive macro `Deserialize` in this scope
+     `(#:tests? #false
        #:cargo-inputs
        (("rust-serde-derive" ,rust-serde-derive-1))))
     (home-page "https://serde.rs")
@@ -52291,6 +55107,28 @@ fragment of code.")
        (("rust-clippy" ,rust-clippy-0.0))
        #:tests? #f))))
 
+(define-public rust-serde-big-array-0.4
+  (package
+    (name "rust-serde-big-array")
+    (version "0.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "serde-big-array" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1rwhbrffdxy87bxbyx8p68cg30gf0dlflx14vk1qiwlafjdg08rk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/est31/serde-big-array")
+    (synopsis "Big array helper for serde")
+    (description "Big array helper for serde.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-serde-big-array-0.3
   (package
     (name "rust-serde-big-array")
@@ -52581,26 +55419,28 @@ TOML/JSON/MessagePack strings and serializable values.")
 (define-public rust-serde-derive-1
   (package
     (name "rust-serde-derive")
-    (version "1.0.152")
+    (version "1.0.160")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serde-derive" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "07jlbk3khspawlqayr5lhzgqirv031ap4p8asw199l7ciq8psj5g"))))
+        (base32
+         "1pvpiml328jhsz5h3pdc7x7wcyaagab6l5hb2q07wjfqcdy0j6i9"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-1))))
+        ("rust-syn" ,rust-syn-2))
+       #:cargo-development-inputs
+       (("rust-serde" ,rust-serde-1))))
     (home-page "https://serde.rs")
-    (synopsis
-     "Macros 1.1 implementation of #[derive(Serialize, Deserialize)]")
+    (synopsis "Macros 1.1 implementation of #[derive(Serialize, Deserialize)]")
     (description
-     "Macros 1.1 implementation of #[derive(Serialize, Deserialize)].")
+     "This package provides the macros 1.1 implementation of
+@code{#[derive(Serialize, Deserialize)]}.")
     (license (list license:expat license:asl2.0))))
 
 (define-public rust-serde-derive-0.9
@@ -52684,14 +55524,14 @@ data.  This crate provides a wrapper that works with any existing Serde
 (define-public rust-serde-json-1
   (package
     (name "rust-serde-json")
-    (version "1.0.91")
+    (version "1.0.96")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serde-json" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "10v8vb4959ayycw1zmqvxxi758djqkskchj6qal0fjbi6daj6z47"))))
+        (base32 "1waj3qwpa610vmksnzcmkll6vaw7nf7v3ckj4v0wlfs0a153jz85"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -52701,7 +55541,7 @@ data.  This crate provides a wrapper that works with any existing Serde
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-automod" ,rust-automod-1)
-        ("rust-indoc" ,rust-indoc-1)
+        ("rust-indoc" ,rust-indoc-2)
         ("rust-ref-cast" ,rust-ref-cast-1)
         ("rust-rustversion" ,rust-rustversion-1)
         ("rust-serde" ,rust-serde-1)
@@ -52832,6 +55672,27 @@ and @code{Deserialize} traits in a way that delegates to the underlying repr
 of a C-like enum.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-serde-spanned-0.6
+  (package
+    (name "rust-serde-spanned")
+    (version "0.6.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "serde-spanned" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1x7wqhqay4bgkaq8dmvb9z01mk2z0j0g9jl5nb9ynv3aanpqrz8f"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/toml-rs/toml")
+    (synopsis "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 structures.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-serde-stacker-0.1
   (package
     (name "rust-serde-stacker")
@@ -52862,7 +55723,7 @@ by dynamically growing the stack.")
 (define-public rust-serde-test-1
   (package
     (name "rust-serde-test")
-    (version "1.0.152")
+    (version "1.0.160")
     (source
      (origin
        (method url-fetch)
@@ -52871,7 +55732,7 @@ by dynamically growing the stack.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "17pdigm0w1wvch7vpnk13199wn3gmkb0883l0hr53qv75l6j249n"))))
+         "1s3mcs9b3qw59lc6w2d1bkpklh2fjclvy5iszkvmhcljwc0ab59w"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f                  ; Requires a newer rust
@@ -53301,11 +56162,15 @@ functionality and without weak references.")
         (base32 "125k4hydb4w08568rgazh95n6haxhf5c78axz50glbc9p6fqfsz3"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:cargo-build-flags '("--features" "force_system_lib")
        #:cargo-inputs
        (("rust-expat-sys" ,rust-expat-sys-2)
         ("rust-freetype-sys" ,rust-freetype-sys-0.13)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (inputs
+     (list expat fontconfig))
+    (native-inputs
+     (list pkg-config))
     (home-page "https://crates.io/crates/servo-fontconfig-sys")
     (synopsis "Rust wrapper around Fontconfig")
     (description
@@ -53390,8 +56255,37 @@ functionality and without weak references.")
        (("rust-digest" ,rust-digest-0.8)
         ("rust-hex-literal" ,rust-hex-literal-0.1))))))
 
+(define-public rust-sha1-0.10
+  (package
+    (name "rust-sha1")
+    (version "0.10.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "sha1" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "18zb80sxn31kxdpl1ly6w17hkrvyf08zbxnpy8ckb6f3h3f96hph"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-cpufeatures" ,rust-cpufeatures-0.2)
+        ("rust-digest" ,rust-digest-0.10)
+        ("rust-sha1-asm" ,rust-sha1-asm-0.5))
+       #:cargo-development-inputs
+       (("rust-digest" ,rust-digest-0.10)
+        ("rust-hex-literal" ,rust-hex-literal-0.2))))
+    (home-page "https://github.com/mitsuhiko/rust-sha1")
+    (synopsis "Minimal implementation of SHA1 for Rust")
+    (description
+     "This package provides a minimal implementation of SHA1 for Rust.")
+    (license license:bsd-3)))
+
 (define-public rust-sha1-0.6
   (package
+    (inherit rust-sha1-0.10)
     (name "rust-sha1")
     (version "0.6.0")
     (source
@@ -53403,7 +56297,6 @@ functionality and without weak references.")
        (sha256
         (base32
          "03gs2q4m67rn2p8xcdfxhip6mpgahdwm12bnb3vh90ahv9grhy95"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -53411,12 +56304,7 @@ functionality and without weak references.")
        #:cargo-development-inputs
        (("rust-openssl" ,rust-openssl-0.10)
         ("rust-rand" ,rust-rand-0.4)
-        ("rust-serde-json" ,rust-serde-json-1))))
-    (home-page "https://github.com/mitsuhiko/rust-sha1")
-    (synopsis "Minimal implementation of SHA1 for Rust")
-    (description
-     "Minimal implementation of SHA1 for Rust.")
-    (license license:bsd-3)))
+        ("rust-serde-json" ,rust-serde-json-1))))))
 
 (define-public rust-sha1-0.2
   (package
@@ -53936,14 +56824,14 @@ words, like Python's shlex.")
 (define-public rust-signal-hook-0.3
   (package
     (name "rust-signal-hook")
-    (version "0.3.10")
+    (version "0.3.15")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "signal-hook" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1lgg8rwyz97pqkpg4ii7iswvs5mx8sgg2pl2ahlil9vyfcfqk64w"))))
+        (base32 "1fc2wvl8sp6l6kd5hh0csn9bl2yl4cqsj8vc0ygd08bd2zqnh9vk"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -53985,19 +56873,20 @@ words, like Python's shlex.")
 (define-public rust-signal-hook-mio-0.2
   (package
     (name "rust-signal-hook-mio")
-    (version "0.2.1")
+    (version "0.2.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "signal-hook-mio" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1m3yc37dxdq4ym0x7i2b9aqfnlhivwm7mvls0yzcbwn4y5kmiz99"))))
+        (base32 "1bwrrbd0lhwzlf63708vyzlh20693s5bg5s0ak6adjbyycajxb99"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
+        ("rust-mio" ,rust-mio-0.8)
         ("rust-mio" ,rust-mio-0.7)
         ("rust-mio" ,rust-mio-0.6)
         ("rust-mio-uds" ,rust-mio-uds-0.6)
@@ -54329,14 +57218,14 @@ extensions.")
 (define-public rust-similar-2
   (package
     (name "rust-similar")
-    (version "2.1.0")
+    (version "2.2.1")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "similar" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1lw33na01r35h09s47jqhjgz3m29wapl20f6ybsla5d1cfgrf91f"))))
+                "1kszsllryv6lh6771ah0apqk57qh4jp9mrlr1hhkiq6smx2cn2j2"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -54344,8 +57233,9 @@ extensions.")
         ("rust-serde" ,rust-serde-1)
         ("rust-unicode-segmentation" ,rust-unicode-segmentation-1))
        #:cargo-development-inputs
-       (("rust-insta" ,rust-insta-1)
-        ("rust-console" ,rust-console-0.14))))
+       (("rust-console" ,rust-console-0.15)
+        ("rust-insta" ,rust-insta-1)
+        ("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://github.com/mitsuhiko/similar")
     (synopsis "Diff library for Rust")
     (description "This package provides a diff library for Rust.")
@@ -54377,14 +57267,14 @@ extensions.")
 (define-public rust-similar-asserts-1
   (package
     (name "rust-similar-asserts")
-    (version "1.2.0")
+    (version "1.4.2")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "similar-asserts" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1789db0fm85p4zvy44b2jwdjgw6h2b51bi133kak2l1pl8qzbjb4"))))
+                "060gzblmwpfcfxx7qh9yh2yaarldrdfkajm306gi4xbb06nl9xmv"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -54428,8 +57318,35 @@ diff output.")
 small to medium sized project")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-simple-logger-2
+  (package
+    (name "rust-simple-logger")
+    (version "2.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "simple-logger" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1ivdlw45f07byxgl43l2pa0dlnclbw1aj40shjpil598nmvpw128"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-atty" ,rust-atty-0.2)
+        ("rust-colored" ,rust-colored-2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-time" ,rust-time-0.3)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/borntyping/rust-simple_logger")
+    (synopsis "Logger with a readable output format")
+    (description
+     "This package provides a logger that prints all messages with
+a readable output format.")
+    (license license:expat)))
+
 (define-public rust-simple-logger-1
   (package
+    (inherit rust-simple-logger-2)
     (name "rust-simple-logger")
     (version "1.13.0")
     (source
@@ -54439,20 +57356,13 @@ small to medium sized project")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
           (base32 "01wz5xjpski45xq8v1bg8g05flj5h1sl63aabl2c6kj0hz337pmp"))))
-    (build-system cargo-build-system)
     (arguments
       `(#:cargo-inputs
         (("rust-atty" ,rust-atty-0.2)
          ("rust-chrono" ,rust-chrono-0.4)
          ("rust-colored" ,rust-colored-1)
          ("rust-log" ,rust-log-0.4)
-         ("rust-winapi" ,rust-winapi-0.3))))
-    (home-page "https://github.com/borntyping/rust-simple_logger")
-    (synopsis "Logger with a readable output format")
-    (description
-      "This package provides a logger that prints all messages with
-a readable output format")
-    (license license:expat)))
+         ("rust-winapi" ,rust-winapi-0.3))))))
 
 (define-public rust-simple-mutex-1
   (package
@@ -54610,20 +57520,6 @@ designed for @code{immutable.rs}.")
 data type.")
     (license license:expat)))
 
-(define-public rust-slab-0.3
-  (package
-    (inherit rust-slab-0.4)
-    (name "rust-slab")
-    (version "0.3.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "slab" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "08xw8w61zdfn1094qkq1d554vh5wmm9bqdys8gqqxc4sv2pgrd0p"))))
-    (arguments `(#:skip-build? #t))))
-
 (define-public rust-pathfinder-geometry-0.5
   (package
     (name "rust-pathfinder-geometry")
@@ -55010,6 +57906,33 @@ crate.")
 functions.")
     (license license:expat)))
 
+(define-public rust-slotmap-1
+  (package
+    (name "rust-slotmap")
+    (version "1.0.6")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "slotmap" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0hhkvsc3x79c7fh97b3padjhssd19hzdyyiv291mr3qf3lk8xq71"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1)
+        ("rust-version-check" ,rust-version-check-0.9))
+       #:cargo-development-inputs
+       (("rust-fxhash" ,rust-fxhash-0.2)
+        ("rust-quickcheck" ,rust-quickcheck-0.9)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/orlp/slotmap")
+    (synopsis "Slotmap data structure")
+    (description "Slotmap data structure")
+    (license license:zlib)))
+
 (define-public rust-slug-0.1
   (package
     (name "rust-slug")
@@ -55467,25 +58390,26 @@ It is also flexible enough to build your own test harness like @code{trycmd}.")
 (define-public rust-snapbox-0.4
   (package
     (name "rust-snapbox")
-    (version "0.4.0")
+    (version "0.4.7")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "snapbox" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1pad85id96wa6ngipdmfdbwaj0v9xd41p0rhb0f65lgcdrjrd2pr"))))
+                "0gk2ggk4k3vq65yp53akvklg756b8w7bfj21sk7rjcbix270vhh9"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-backtrace" ,rust-backtrace-0.3)
-        ("rust-concolor" ,rust-concolor-0.0.8)
+        ("rust-concolor" ,rust-concolor-0.0.11)
         ("rust-content-inspector" ,rust-content-inspector-0.2)
         ("rust-document-features" ,rust-document-features-0.2)
         ("rust-dunce" ,rust-dunce-1)
+        ("rust-escargot" ,rust-escargot-0.5)
         ("rust-filetime" ,rust-filetime-0.2)
         ("rust-ignore" ,rust-ignore-0.4)
-        ("rust-libtest-mimic" ,rust-libtest-mimic-0.5)
+        ("rust-libtest-mimic" ,rust-libtest-mimic-0.6)
         ("rust-normalize-line-endings" ,rust-normalize-line-endings-0.3)
         ("rust-os-pipe" ,rust-os-pipe-1)
         ("rust-serde-json" ,rust-serde-json-1)
@@ -55494,6 +58418,7 @@ It is also flexible enough to build your own test harness like @code{trycmd}.")
         ("rust-tempfile" ,rust-tempfile-3)
         ("rust-wait-timeout" ,rust-wait-timeout-0.2)
         ("rust-walkdir" ,rust-walkdir-2)
+        ("rust-windows-sys" ,rust-windows-sys-0.45)
         ("rust-yansi" ,rust-yansi-0.5))))
     (home-page "https://github.com/assert-rs/trycmd/tree/main/crates/snapbox")
     (synopsis "Snapshot testing toolbox")
@@ -56964,6 +59889,25 @@ this library enables this optimization for divisors that are only known at
 runtime.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-strict-num-0.1
+  (package
+    (name "rust-strict-num")
+    (version "0.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "strict-num" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1l9b7d0qrdg3nvqim1xvkcis37jmdf565qyxxx2x5vlad4h5zxlx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-float-cmp" ,rust-float-cmp-0.9))))
+    (home-page "https://github.com/RazrFalcon/strict-num")
+    (synopsis "Collection of bounded numeric types")
+    (description "This package provides a collection of bounded numeric types.")
+    (license license:expat)))
+
 (define-public rust-string-0.2
   (package
     (name "rust-string")
@@ -57306,6 +60250,53 @@ and Jaro-Winkler.")
         (base32
          "0z3zzvmilfldp4xw42qbkjf901dcnbk58igrzsvivydjzd24ry37"))))))
 
+(define-public rust-structmeta-0.1
+  (package
+    (name "rust-structmeta")
+    (version "0.1.6")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "structmeta" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0alyl12b7fab8izrpliil73sxs1ivr5vm0pisallmxlb4zb44j0h"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-structmeta-derive" ,rust-structmeta-derive-0.1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/frozenlib/structmeta")
+    (synopsis "Parse Rust's attribute arguments by defining a struct.")
+    (description "This package lets you parse Rust's attribute arguments by
+defining a struct.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-structmeta-derive-0.1
+  (package
+    (name "rust-structmeta-derive")
+    (version "0.1.6")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "structmeta-derive" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "14vxik2m3dm7bwx016qfz062fwznkbq02fyq8vby545m0pj0nhi4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/frozenlib/structmeta")
+    (synopsis "Derive macro for structmeta crate")
+    (description "This package lets you parse Rust's attribute arguments by
+defining a struct.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-structopt-0.3
   (package
     (name "rust-structopt")
@@ -57938,10 +60929,55 @@ executed by swayipc.")
 interface")
    (license license:expat)))
 
+(define-public rust-syn-2
+  (package
+    (name "rust-syn")
+    (version "2.0.5")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "syn" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "12iqdd7j7hfsp4584bph1318n47z7x79ddgvl63j30i6db3x3hl9"))))
+    (build-system cargo-build-system)
+    (arguments
+     ;; Tests fail to compile
+     ;; error[E0432]: unresolved imports `syn::Item`, `syn::Pat`
+     `(#:tests? #false
+       #:phases
+       (modify-phases %standard-phases
+         ;; The syn-test-suite crate is empty.
+         (add-after 'unpack 'patch-test-suite
+           (lambda _
+             (substitute* "Cargo.toml"
+               (("^\\[dev-dependencies.syn-test-suite\\]") "")
+               (("^version = \"0\"") "")
+               (("^test = \\[\"syn-test-suite/all-features\"\\]") "")))))
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-unicode-ident" ,rust-unicode-ident-1))
+       #:cargo-development-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-automod" ,rust-automod-1)
+        ("rust-insta" ,rust-insta-1)
+        ("rust-ref-cast" ,rust-ref-cast-1)
+        ("rust-reqwest" ,rust-reqwest-0.11)
+        ("rust-tar" ,rust-tar-0.4))))
+    (inputs (list openssl))
+    (native-inputs (list pkg-config))
+    (home-page "https://github.com/dtolnay/syn")
+    (synopsis "Parser for Rust source code")
+    (description
+     "Syn is a parsing library for parsing a stream of Rust tokens into
+a syntax tree of Rust source code.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-syn-1
   (package
     (name "rust-syn")
-    (version "1.0.105")
+    (version "1.0.109")
     (source
      (origin
        (method url-fetch)
@@ -57949,14 +60985,39 @@ interface")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0279ivl07g0y5fs5bwmglhkdvi99ypcm36yb774f8bbh8lyv9fb0"))))
+         "0ds2if4600bd59wsv7jjgfkayfzy3hnazs394kz6zdkmna8l3dkj"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; The syn-test-suite crate is empty.
+         (add-after 'unpack 'patch-test-suite
+           (lambda _
+             (substitute* "Cargo.toml"
+               (("^\\[dev-dependencies.syn-test-suite\\]") "")
+               (("^version = \"0\"") "")
+               (("^test = \\[\"syn-test-suite/all-features\"\\]") "")))))
+       ;; Tests fail to compile
+       ;; error[E0432]: unresolved imports `syn::Item`, `syn::Pat`
+       #:tests? #false
        #:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
-        ("rust-unicode-ident" ,rust-unicode-ident-1))))
+        ("rust-unicode-ident" ,rust-unicode-ident-1))
+       #:cargo-development-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-automod" ,rust-automod-1)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-insta" ,rust-insta-1)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-ref-cast" ,rust-ref-cast-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-reqwest" ,rust-reqwest-0.11)
+        ("rust-tar" ,rust-tar-0.4)
+        ("rust-termcolor" ,rust-termcolor-1)
+        ("rust-walkdir" ,rust-walkdir-2))))
+    (inputs (list openssl))
+    (native-inputs (list pkg-config))
     (home-page "https://github.com/dtolnay/syn")
     (synopsis "Parser for Rust source code")
     (description
@@ -58407,10 +61468,10 @@ system or application with the relevant platform APIs.  The library is also
 no_std compatible by default, only relying on alloc.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-syscallz-0.15
+(define-public rust-syscallz-0.16
   (package
     (name "rust-syscallz")
-    (version "0.15.0")
+    (version "0.16.2")
     (source
      (origin
        (method url-fetch)
@@ -58419,15 +61480,17 @@ no_std compatible by default, only relying on alloc.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0z5yfgb6086gdvbrm8lm0i745j6d8qw653xxy3mlrzdcjk3j1skz"))))
+         "1bd6k8v52fwvzspz6g8rrlrc0wffcbx022xvi62bb0z5czrgf3qi"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-log" ,rust-log-0.4)
         ("rust-pkg-config" ,rust-pkg-config-0.3)
         ("rust-seccomp-sys" ,rust-seccomp-sys-0.1)
-        ("rust-strum" ,rust-strum-0.19)
-        ("rust-strum-macros" ,rust-strum-macros-0.19))))
+        ("rust-strum" ,rust-strum-0.21)
+        ("rust-strum-macros" ,rust-strum-macros-0.21))
+       #:cargo-development-inputs
+       (("rust-libc" ,rust-libc-0.2))))
     (inputs (list libseccomp))
     (home-page "https://github.com/kpcyrd/syscallz-rs")
     (synopsis "Simple seccomp library for rust")
@@ -58812,7 +61875,7 @@ without a mutable reference.")
 (define-public rust-tar-0.4
   (package
     (name "rust-tar")
-    (version "0.4.36")
+    (version "0.4.38")
     (source
       (origin
         (method url-fetch)
@@ -58820,17 +61883,16 @@ without a mutable reference.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0iz40bd47xr69dsbckd6rv5ry2nqb2dp3z850q41pvpnmk6xk441"))))
+          "1ikiz14wbfmaaw5mrv93msa8v6n3i595z5kw9p0fdqa40dy80mab"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f      ; Test tarballs not included in crate.
        #:cargo-inputs
        (("rust-filetime" ,rust-filetime-0.2)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-redox-syscall" ,rust-redox-syscall-0.1)
         ("rust-xattr" ,rust-xattr-0.2))
        #:cargo-development-inputs
-       (("rust-tempdir" ,rust-tempdir-0.3))))
+       (("rust-tempfile" ,rust-tempfile-3))))
     (home-page "https://github.com/alexcrichton/tar-rs")
     (synopsis "Tar file reading/writing for Rust")
     (description
@@ -58888,22 +61950,6 @@ memory all at once.")
 tools.")
     (license license:asl2.0)))
 
-(define-public rust-target-lexicon-0.10
-  (package
-    (inherit rust-target-lexicon-0.12)
-    (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"))))
-    (arguments `(#:skip-build? #t))))
-
 (define-public rust-tectonic-bridge-core-0.3
   (package
     (name "rust-tectonic-bridge-core")
@@ -60121,7 +63167,7 @@ return values to @code{std::io::Result} to indicate success or failure.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1))))
+       (("rust-byteorder" ,rust-byteorder-0.5))))
     (home-page "https://github.com/luser/rust-test-assembler")
     (synopsis "Build complex binary streams")
     (description
@@ -60129,8 +63175,48 @@ return values to @code{std::io::Result} to indicate success or failure.")
 streams.")
     (license license:expat)))
 
+(define-public rust-test-case-2
+  (package
+    (name "rust-test-case")
+    (version "2.2.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "test-case" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1h4qymhy332lzgg79w696qfxg6wdab5birn8xvfgkczzgmdczmi1"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin (substitute* "Cargo.toml"
+                         (("=([[:digit:]]+\\.[[:digit:]]+\\.[[:digit:]]+)" _ version)
+                          (string-append "^" version)))))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f              ; Not all files included.
+       #:cargo-inputs
+       (("rust-regex" ,rust-regex-1)
+        ("rust-test-case-macros" ,rust-test-case-macros-2))
+       #:cargo-development-inputs
+       (("rust-indexmap" ,rust-indexmap-1)
+        ("rust-insta" ,rust-insta-1)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-linked-hash-map" ,rust-linked-hash-map-0.5)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde-yaml" ,rust-serde-yaml-0.8))))
+    (home-page "https://github.com/frondeus/test-case")
+    (synopsis "Procedural macro attribute for parametrized test cases")
+    (description
+     "This crate provides @code{#[test_case]} procedural macro attribute that
+generates multiple parametrized tests using one body with different input
+parameters.  A test is generated for each data set passed in test_case
+attribute.  Under the hood, all test cases that share same body are grouped
+into mod, giving clear and readable test results.")
+    (license license:expat)))
+
 (define-public rust-test-case-1
   (package
+    (inherit rust-test-case-2)
     (name "rust-test-case")
     (version "1.0.0")
     (source
@@ -60140,7 +63226,6 @@ streams.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1j33njgyr4cjhil14va909sg8s6ahzpgcmiaigdg7g22ica6950r"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:tests? #false               ;XXX: a single test fails, cannot skip it
        #:cargo-inputs
@@ -60150,30 +63235,50 @@ streams.")
         ("rust-version-check" ,rust-version-check-0.9))
        #:cargo-development-inputs
        (("rust-insta" ,rust-insta-0.12)
-        ("rust-lazy-static" ,rust-lazy-static-1))))
+        ("rust-lazy-static" ,rust-lazy-static-1))))))
+
+(define-public rust-test-case-macros-2
+  (package
+    (name "rust-test-case-macros")
+    (version "2.2.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "test-case-macros" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "09jvbfvz48v6ya3i25gp3lbr6ym1fz7qyp3l6bcdslwkw7v7nnz4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-proc-macro-error" ,rust-proc-macro-error-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
     (home-page "https://github.com/frondeus/test-case")
-    (synopsis "Procedural macro attribute for parametrized test cases")
+    (synopsis "Macros for the test-case crate")
     (description
-     "This crate provides @code{#[test_case]} procedural macro attribute that
-generates multiple parametrized tests using one body with different input
-parameters.  A test is generated for each data set passed in test_case
-attribute.  Under the hood, all test cases that share same body are grouped
-into mod, giving clear and readable test results.")
+     "This package provides #[test_case(...)] procedural macro attribute for
+generating parametrized test cases easily.")
     (license license:expat)))
 
-(define-public rust-test-cert-gen-0.1
+(define-public rust-test-cert-gen-0.7
   (package
     (name "rust-test-cert-gen")
-    (version "0.1.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "test-cert-gen" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1lrpirh863h9rq2iqp0kivshzwd909fgiy13a5684d685ap7c565"))))
+    (version "0.7.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "test-cert-gen" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "06gl7zqvrsl4fqm6d3i21q459gcv9nf258kb5ynd8dip5spd021j"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
+    (arguments
+     `(#:tests? #f              ; Not all files included.
+       #:cargo-inputs
+       (("rust-pem" ,rust-pem-0.8)
+        ("rust-tempdir" ,rust-tempdir-0.3))))
     (home-page "https://crates.io/crates/test-cert-gen")
     (synopsis "Generate certificates for tests")
     (description
@@ -60208,6 +63313,34 @@ one body with different resource input parameters.  A test is generated for
 each resource matching the specific resource location pattern.")
     (license license:asl2.0)))
 
+(define-public rust-test-strategy-0.2
+  (package
+    (name "rust-test-strategy")
+    (version "0.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "test-strategy" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "105lxqs0vnqff5821sgns8q1scvrwfx1yw6iz7i7nr862j6l1mk2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-structmeta" ,rust-structmeta-0.1)
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-proptest" ,rust-proptest-1)
+        ("rust-trybuild" ,rust-trybuild-1))))
+    (home-page "https://github.com/frozenlib/test-strategy")
+    (synopsis "Macro to write higher-order strategies in proptest")
+    (description
+     "This package provides a procedural macro to easily write higher-order
+strategies in proptest.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-tester-0.9
   (package
     (name "rust-tester")
@@ -60647,7 +63780,7 @@ contention between workers when delivering jobs.")
 (define-public rust-threadpool-1
   (package
     (name "rust-threadpool")
-    (version "1.8.0")
+    (version "1.8.1")
     (source
       (origin
         (method url-fetch)
@@ -60655,7 +63788,7 @@ contention between workers when delivering jobs.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0rkx0wzaw9v958ckiliwl42m2j7c59j3r5vdj6kda5bw8j2f3np8"))))
+          "1amgfyzvynbm8pacniivzq9r0fh3chhs7kijic81j76l6c5ycl6h"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -60733,7 +63866,10 @@ fixed set of worker threads.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1lw6gy9gzk7g7h71nm8a5ybrilhqgr583mn80nslr78p0ldk69la"))))
+         "1lw6gy9gzk7g7h71nm8a5ybrilhqgr583mn80nslr78p0ldk69la"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (delete-file-recursively "jemalloc")))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -60811,23 +63947,30 @@ introspection APIs.")
 (define-public rust-time-0.3
   (package
     (name "rust-time")
-    (version "0.3.5")
+    (version "0.3.19")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "time" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1b943jf54q1667i328x3z73fsjdhcqdqccxckx1nzwwaz9ygxvs1"))))
+        (base32 "1hnnp3138zxk42r077jxhk1kma16bn9di1w5k3yzi3zd7wxhl9ak"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (substitute* "Cargo.toml"
+                  (("=0\\.2\\.7") "^0.2.7"))))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-itoa" ,rust-itoa-0.4)
+       (("rust-itoa" ,rust-itoa-1)
+        ("rust-js-sys" ,rust-js-sys-0.3)
         ("rust-libc" ,rust-libc-0.2)
+        ("rust-num-threads" ,rust-num-threads-0.1)
         ("rust-quickcheck" ,rust-quickcheck-1)
         ("rust-rand" ,rust-rand-0.8)
         ("rust-serde" ,rust-serde-1)
+        ("rust-time-core" ,rust-time-core-0.1)
         ("rust-time-macros" ,rust-time-macros-0.2))))
     (home-page "https://github.com/time-rs/time")
     (synopsis "Date and time library")
@@ -60895,19 +64038,38 @@ in Rust.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-time-core-0.1
+  (package
+    (name "rust-time-core")
+    (version "0.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "time-core" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1z803zwzyh16nk3c4nmkw8v69nyj0r4v8s3yag68mvya38gkw59f"))))
+    (build-system cargo-build-system)
+    (arguments '(#:tests? #f))      ; Doc tests fail.
+    (home-page "https://github.com/time-rs/time")
+    (synopsis "Implementation for the time crate")
+    (description "This crate is an implementation detail for the time crate and
+should not be relied upon directly.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-time-macros-0.2
   (package
     (name "rust-time-macros")
-    (version "0.2.3")
+    (version "0.2.7")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "time-macros" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1mj7pv8y9j2csrh1l8aabras36pgysbnfy18330srh4g8sihrsr5"))))
+        (base32 "0z4bsdw11cghv3rpy65qdrgmmkvgslf5zq0y3qw0zjvdvswawq54"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
+    (arguments
+     `(#:cargo-inputs (("rust-time-core" ,rust-time-core-0.1))))
     (home-page "https://github.com/time-rs/time")
     (synopsis "Procedural macros for the time crate")
     (description "This package provides procedural macros for the time
@@ -61046,26 +64208,28 @@ closures after a delay or at a given timestamp.")
 manipulation in Rust.")
     (license license:expat)))
 
-(define-public rust-tiny-http-0.8
+(define-public rust-tiny-http-0.12
   (package
     (name "rust-tiny-http")
-    (version "0.8.2")
+    (version "0.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tiny-http" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0fcdwpb2ghk671qjjrk6048hs3yp7f681hxpr68gamk00181prcw"))))
+        (base32 "10nw9kk2i2aq4l4csy0825qkq0l66f9mz2c1n57yg8hkckgib69q"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-ascii" ,rust-ascii-1)
-        ("rust-chrono" ,rust-chrono-0.4)
         ("rust-chunked-transfer" ,rust-chunked-transfer-1)
+        ("rust-httparse" ,rust-httparse-1)
+        ("rust-httpdate" ,rust-httpdate-1)
         ("rust-log" ,rust-log-0.4)
         ("rust-openssl" ,rust-openssl-0.10)
-        ("rust-url" ,rust-url-2))
+        ("rust-rustls" ,rust-rustls-0.20)
+        ("rust-rustls-pemfile" ,rust-rustls-pemfile-0.2))
        #:cargo-development-inputs
        (("rust-fdlimit" ,rust-fdlimit-0.1)
         ("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
@@ -61077,7 +64241,7 @@ manipulation in Rust.")
 
 (define-public rust-tiny-http-0.6
   (package
-    (inherit rust-tiny-http-0.8)
+    (inherit rust-tiny-http-0.12)
     (name "rust-tiny-http")
     (version "0.6.2")
     (source
@@ -61136,6 +64300,55 @@ specified in FIPS-202, SP800-185 and KangarooTwelve.")
      `(#:cargo-inputs
        (("rust-crunchy" ,rust-crunchy-0.2))))))
 
+(define-public rust-tiny-skia-0.8
+  (package
+    (name "rust-tiny-skia")
+    (version "0.8.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "tiny-skia" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0rvapxnksdjy1rnzjlvi6dqijz843y9m2dv107ln24230fi9716z"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-arrayref" ,rust-arrayref-0.3)
+        ("rust-arrayvec" ,rust-arrayvec-0.7)
+        ("rust-bytemuck" ,rust-bytemuck-1)
+        ("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-png" ,rust-png-0.17)
+        ("rust-tiny-skia-path" ,rust-tiny-skia-path-0.8))))
+    (home-page "https://github.com/RazrFalcon/tiny-skia")
+    (synopsis "Skia subset ported to Rust")
+    (description "This package provides a tiny Skia subset ported to Rust.")
+    (license license:bsd-3)))
+
+(define-public rust-tiny-skia-path-0.8
+  (package
+    (name "rust-tiny-skia-path")
+    (version "0.8.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "tiny-skia-path" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0z37bzd222q3dlahmaxp2mf1pg5v9qyz3x0j3phs0myxyg9vbgxd"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-arrayref" ,rust-arrayref-0.3)
+        ("rust-bytemuck" ,rust-bytemuck-1)
+        ("rust-libm" ,rust-libm-0.2)
+        ("rust-strict-num" ,rust-strict-num-0.1))))
+    (home-page "https://github.com/RazrFalcon/tiny-skia/path")
+    (synopsis "Tiny-skia Bezier path implementation")
+    (description
+     "This package provides a tiny-skia Bezier path implementation.")
+    (license license:bsd-3)))
+
 (define-public rust-tinyfiledialogs-3
   (package
     (name "rust-tinyfiledialogs")
@@ -61203,11 +64416,12 @@ C library.")
         (base32 "0l6bl2h62a5m44jdnpn7lmj14rd44via8180i7121fvm73mmrk47"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-arbitrary" ,rust-arbitrary-1)
         ("rust-serde" ,rust-serde-1)
-        ("rust-tinyvec-macros" ,rust-tinyvec-macros-0.1))))
+        ("rust-tinyvec-macros" ,rust-tinyvec-macros-0.1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3))))
     (home-page "https://crates.io/crates/tinyvec")
     (synopsis "Safe vec-like data structures")
     (description
@@ -61215,24 +64429,6 @@ C library.")
     (license
      (list license:zlib license:asl2.0 license:expat))))
 
-(define-public rust-tinyvec-0.3
-  (package
-    (inherit rust-tinyvec-1)
-    (name "rust-tinyvec")
-    (version "0.3.4")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tinyvec" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "05vijqpckjsnbv07rwadwcny4pkcq7z1wi9ikl7p3ib7s9qy1313"))))
-    (arguments
-     `(#:cargo-development-inputs
-       (("rust-criterion" ,rust-criterion-0.3))))))
-
 (define-public rust-tinyvec-macros-0.1
   (package
     (name "rust-tinyvec-macros")
@@ -61321,14 +64517,14 @@ tinyobjloader.")
 (define-public rust-tokio-1
   (package
     (name "rust-tokio")
-    (version "1.22.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tokio" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1qrarnfikvp8cwd3qcskzgdb1a6f47r11xjbql2wd25lbyky8v6p"))))
+        (base32 "0r3gnz0zh669q9jm7xh8dz7irbnxjddbbrfflp42jyn2qc0is803"))))
     (build-system cargo-build-system)
     (arguments
      (list #:skip-build? #t
@@ -61345,7 +64541,7 @@ tinyobjloader.")
              ("rust-socket2" ,rust-socket2-0.4)
              ("rust-tokio-macros" ,rust-tokio-macros-1)
              ("rust-tracing" ,rust-tracing-0.1)
-             ("rust-winapi" ,rust-winapi-0.3))))
+             ("rust-windows-sys" ,rust-windows-sys-0.45))))
     (home-page "https://tokio.rs")
     (synopsis "Event-driven, non-blocking I/O platform")
     (description
@@ -61353,44 +64549,6 @@ tinyobjloader.")
 writing asynchronous I/O backed applications.")
     (license license:expat)))
 
-(define-public rust-tokio-1.8
-  (package
-    (inherit rust-tokio-1)
-    (name "rust-tokio")
-    (version "1.8.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tokio" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1m18rs51wz6s7dwdwzr0j63kh815x4dx9k0f2c485crs7fqjw32p"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-bytes" ,rust-bytes-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-memchr" ,rust-memchr-2)
-        ("rust-mio" ,rust-mio-0.7)
-        ("rust-num-cpus" ,rust-num-cpus-1)
-        ("rust-once-cell" ,rust-once-cell-1)
-        ("rust-parking-lot" ,rust-parking-lot-0.11)
-        ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
-        ("rust-signal-hook-registry" ,rust-signal-hook-registry-1)
-        ("rust-tokio-macros" ,rust-tokio-macros-1)
-        ("rust-tracing" ,rust-tracing-0.1)
-        ("rust-winapi" ,rust-winapi-0.3))
-       #:cargo-development-inputs
-       (("rust-async-stream" ,rust-async-stream-0.3)
-        ("rust-autocfg" ,rust-autocfg-1)
-        ("rust-nix" ,rust-nix-0.19)
-        ("rust-futures" ,rust-futures-0.3)
-        ("rust-proptest" ,rust-proptest-1)
-        ("rust-sokcet2-0.4" ,rust-socket2-0.4)
-        ("rust-tokio-stream" ,rust-tokio-stream-0.1)
-        ("rust-tokio-test" ,rust-tokio-test-0.4))))))
-
 (define-public rust-tokio-0.3
   (package
     (inherit rust-tokio-1)
@@ -62168,10 +65326,10 @@ futures.")
      "Event loop that drives Tokio I/O resources.")
     (license license:expat)))
 
-(define-public rust-tokio-rustls-0.22
+(define-public rust-tokio-rustls-0.23
   (package
     (name "rust-tokio-rustls")
-    (version "0.22.0")
+    (version "0.23.4")
     (source
      (origin
        (method url-fetch)
@@ -62179,14 +65337,22 @@ futures.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1dp1s2kai081f3fn9gjq92x2lw7lm7iqpcsl02cg2zg5fbg48s5w"))))
+        (base32 "0nfsmmi8l1lgpbfy6079d5i13984djzcxrdr9jc06ghi0cwyhgn4"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f          ; Issue with the certificate test dates.
        #:cargo-inputs
-       (("rust-rustls" ,rust-rustls-0.19)
+       (("rust-rustls" ,rust-rustls-0.20)
         ("rust-tokio" ,rust-tokio-1)
-        ("rust-webpki" ,rust-webpki-0.21))))
+        ("rust-webpki" ,rust-webpki-0.22))
+       #:cargo-development-inputs
+       (("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-rustls-pemfile" ,rust-rustls-pemfile-0.2)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.22))))
+    (native-inputs
+     (list perl))
     (home-page "https://github.com/tokio-rs/tls")
     (synopsis "Asynchronous TLS/SSL streams for Tokio")
     (description
@@ -62194,6 +65360,26 @@ futures.")
 Rustls.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-tokio-rustls-0.22
+  (package
+    (inherit rust-tokio-rustls-0.23)
+    (name "rust-tokio-rustls")
+    (version "0.22.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-rustls" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1dp1s2kai081f3fn9gjq92x2lw7lm7iqpcsl02cg2zg5fbg48s5w"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-rustls" ,rust-rustls-0.19)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-webpki" ,rust-webpki-0.21))))))
+
 (define-public rust-tokio-rustls-0.14
   (package
     (inherit rust-tokio-rustls-0.22)
@@ -62902,6 +66088,30 @@ stream-based WebSocket implementation.")
         ("rust-slab" ,rust-slab-0.4)
         ("rust-tokio" ,rust-tokio-1))))))
 
+(define-public rust-tokio-util-0.5
+  (package
+    (inherit rust-tokio-util-0.6)
+    (name "rust-tokio-util")
+    (version "0.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-util" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "18qh9w84zfgz2r0k9wryzr9sgj92gzl25ibcd55jg5cf0wmxwdri"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.6)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-futures-sink" ,rust-futures-sink-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
+        ("rust-slab" ,rust-slab-0.4)
+        ("rust-tokio" ,rust-tokio-0.3))))))
+
 (define-public rust-tokio-util-0.4
   (package
     (inherit rust-tokio-util-0.6)
@@ -62980,10 +66190,69 @@ stream-based WebSocket implementation.")
         ("rust-tokio" ,rust-tokio-0.2)
         ("rust-tokio-test" ,rust-tokio-test-0.2))))))
 
+(define-public rust-toml-0.7
+  (package
+    (name "rust-toml")
+    (version "0.7.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "toml" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "08cvcr3w0kgnz8i963qhab2plnm7niy9c3bz7k4mj25vybvaq0xl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-indexmap" ,rust-indexmap-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-spanned" ,rust-serde-spanned-0.6)
+        ("rust-toml-datetime" ,rust-toml-datetime-0.6)
+        ("rust-toml-edit" ,rust-toml-edit-0.19))
+       #:cargo-development-inputs
+       (("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-snapbox" ,rust-snapbox-0.4)
+        ("rust-toml-test-harness" ,rust-toml-test-harness-0.4))))
+    (home-page "https://github.com/toml-rs/toml")
+    (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 structures.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-toml-0.6
+  (package
+    (inherit rust-toml-0.7)
+    (name "rust-toml")
+    (version "0.6.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "toml" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32 "05zjz69wjymp9yrgccg5vhvxpf855rgn23vl1yvri4nwwj8difag"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-indexmap" ,rust-indexmap-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-spanned" ,rust-serde-spanned-0.6)
+        ("rust-toml-datetime" ,rust-toml-datetime-0.5)
+        ("rust-toml-edit" ,rust-toml-edit-0.18))
+        #:cargo-development-inputs
+        (("rust-serde" ,rust-serde-1)
+         ("rust-serde-json" ,rust-serde-json-1)
+         ("rust-snapbox" ,rust-snapbox-0.4)
+         ("rust-toml-test-harness" ,rust-toml-test-harness-0.4))))))
+
 (define-public rust-toml-0.5
   (package
+    (inherit rust-toml-0.6)
     (name "rust-toml")
-    (version "0.5.8")
+    (version "0.5.11")
     (source
       (origin
         (method url-fetch)
@@ -62991,24 +66260,14 @@ stream-based WebSocket implementation.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1apcmjrrjw429pjw7mqlmdwwd67g8305vwqy4kw3swr612bl44d3"))))
-    (build-system cargo-build-system)
+          "0d2266nx8b3n22c7k24x4428z6di8n83a9n466jm7a2hipfz1xzl"))))
     (arguments
      `(#:cargo-inputs
         (("rust-indexmap" ,rust-indexmap-1)
          ("rust-serde" ,rust-serde-1))
         #:cargo-development-inputs
         (("rust-serde-derive" ,rust-serde-derive-1)
-         ("rust-serde-json" ,rust-serde-json-1))))
-    (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 structures.")
-    (license (list license:asl2.0
-                   license:expat))))
+         ("rust-serde-json" ,rust-serde-json-1))))))
 
 (define-public rust-toml-0.4
   (package
@@ -63060,17 +66319,16 @@ serializing Rust structures.")
     (license (list license:asl2.0
                    license:expat))))
 
-(define-public rust-toml-datetime-0.5
+(define-public rust-toml-datetime-0.6
   (package
     (name "rust-toml-datetime")
-    (version "0.5.0")
+    (version "0.6.1")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "toml_datetime" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
-               (base32
-                "1zcjvygkix0hm7nv7i6ag4fd0l1pglga1wyq2l8zgy0fgpjm32w0"))))
+               (base32 "08lndxs1bval859mlas0k4f032s26c9k6pzd589m02z1vqpfvf1s"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs (("rust-serde" ,rust-serde-1))))
@@ -63081,8 +66339,110 @@ serializing Rust structures.")
     ;; The user can choose either license.
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-toml-datetime-0.5
+  (package
+    (inherit rust-toml-datetime-0.6)
+    (name "rust-toml-datetime")
+    (version "0.5.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "toml_datetime" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1xcw3kyklh3s2gxp65ma26rgkl7505la4xx1r55kfgcfmikz8ls5"))))
+    (arguments
+     `(#:cargo-inputs (("rust-serde" ,rust-serde-1))))))
+
+(define-public rust-toml-edit-0.19
+  (package
+    (name "rust-toml-edit")
+    (version "0.19.8")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "toml_edit" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "04ywrxn4c7q4ph1vir310nsgvcd3cdqp1ri7d52jb0cyc3411513"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-indexmap" ,rust-indexmap-1)
+        ("rust-kstring" ,rust-kstring-2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-spanned" ,rust-serde-spanned-0.6)
+        ("rust-toml-datetime" ,rust-toml-datetime-0.6)
+        ("rust-winnow" ,rust-winnow-0.4))
+       #:cargo-development-inputs
+       (("rust-libtest-mimic" ,rust-libtest-mimic-0.6)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-snapbox" ,rust-snapbox-0.4)
+        ("rust-toml-test-data" ,rust-toml-test-data-1)
+        ("rust-toml-test-harness" ,rust-toml-test-harness-0.4))))
+    (home-page "https://github.com/ordian/toml_edit")
+    (synopsis "Yet another format-preserving TOML parser")
+    (description "This package provides yet another format-preserving TOML
+parser.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-toml-edit-0.18
+  (package
+    (inherit rust-toml-edit-0.19)
+    (name "rust-toml-edit")
+    (version "0.18.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "toml_edit" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "0ax1bwzd4xclpids3b69nd1nxqi3x3qa4ymz51jbrp6hsy6rvian"))))
+    (arguments
+      `(#:cargo-inputs
+        (("rust-indexmap" ,rust-indexmap-1)
+         ("rust-kstring" ,rust-kstring-2)
+         ("rust-nom8" ,rust-nom8-0.2)
+         ("rust-serde" ,rust-serde-1)
+         ("rust-serde-spanned" ,rust-serde-spanned-0.6)
+         ("rust-toml-datetime" ,rust-toml-datetime-0.5))
+        #:cargo-development-inputs
+        (("rust-libtest-mimic" ,rust-libtest-mimic-0.6)
+         ("rust-serde-json" ,rust-serde-json-1)
+         ("rust-snapbox" ,rust-snapbox-0.4)
+         ("rust-toml-test-data" ,rust-toml-test-data-1)
+         ("rust-toml-test-harness" ,rust-toml-test-harness-0.4))))))
+
+(define-public rust-toml-edit-0.15
+  (package
+    (inherit rust-toml-edit-0.19)
+    (name "rust-toml-edit")
+    (version "0.15.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "toml_edit" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32 "0iinkhiyk4xqj2anfn6dryp1lyyamsrimlv95xk7x5l512kinm5i"))))
+    (arguments
+     `(#:tests? #f              ; decoder_compliance tests fail
+       #:cargo-inputs
+       (("rust-combine" ,rust-combine-4)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-kstring" ,rust-kstring-2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-toml-datetime" ,rust-toml-datetime-0.5))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.4)
+        ("rust-snapbox" ,rust-snapbox-0.4)
+        ("rust-toml" ,rust-toml-0.5)
+        ("rust-toml-test-harness" ,rust-toml-test-harness-0.4))))))
+
 (define-public rust-toml-edit-0.14
   (package
+    (inherit rust-toml-edit-0.19)
     (name "rust-toml-edit")
     (version "0.14.4")
     (source
@@ -63092,7 +66452,6 @@ serializing Rust structures.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
           (base32 "07xmklks4ldf8r9ban47zvq2s0csq43ja0dcjs43yi7j8ip2axjk"))))
-    (build-system cargo-build-system)
     (arguments
       `(#:skip-build? #t
         #:cargo-inputs
@@ -63104,11 +66463,69 @@ serializing Rust structures.")
         #:cargo-development-inputs
         (("rust-criterion" ,rust-criterion-0.3)
          ("rust-pretty-assertions" ,rust-pretty-assertions-1)
-         ("rust-snapbox" ,rust-snapbox-0.2))))
-    (home-page "https://github.com/ordian/toml_edit")
-    (synopsis "Yet another format-preserving TOML parser")
-    (description "This package provides yet another format-preserving TOML
-parser.")
+         ("rust-snapbox" ,rust-snapbox-0.2))))))
+
+(define-public rust-toml-test-0.3
+  (package
+    (name "rust-toml-test")
+    (version "0.3.5")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "toml-test" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "042dgaqjk1v715my4rziqdadylsad31ny4y6askx878xvbw0r3s8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-chrono" ,rust-chrono-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1))
+       #:cargo-development-inputs
+       (("rust-toml-test-data" ,rust-toml-test-data-1))))
+    (home-page "https://github.com/epage/toml-test-rs")
+    (synopsis "Verify Rust TOML parsers")
+    (description "This package can be used to verify Rust TOML parsers.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-toml-test-data-1
+  (package
+    (name "rust-toml-test-data")
+    (version "1.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "toml-test-data" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0ii6llfpz9fbcag2jkfz87s3cmphrnhkr9fln01fhph0ssv53wwk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-include-dir" ,rust-include-dir-0.7))))
+    (home-page "https://github.com/epage/toml-test-rs")
+    (synopsis "TOML test cases")
+    (description "This package provides TOML test cases for the toml-test crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-toml-test-harness-0.4
+  (package
+    (name "rust-toml-test-harness")
+    (version "0.4.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "toml-test-harness" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0xgn9a7q3s46fdxw6jajcbwxc0y3a186mgq561mzw8h9f6jzs00f"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ignore" ,rust-ignore-0.4)
+        ("rust-libtest-mimic" ,rust-libtest-mimic-0.6)
+        ("rust-toml-test" ,rust-toml-test-0.3)
+        ("rust-toml-test-data" ,rust-toml-test-data-1))))
+    (home-page "https://github.com/epage/toml-test-rs")
+    (synopsis "Cargo test harness for verifying TOML parsers")
+    (description "Cargo test harness for verifying TOML parsers.")
     (license (list license:expat license:asl2.0))))
 
 (define-public rust-tonic-0.6
@@ -64153,51 +67570,103 @@ extension for the Trust-DNS client to use tokio-openssl for TLS.")
        (("rust-openssl" ,rust-openssl-0.10)
         ("rust-tokio" ,rust-tokio-0.1))))))
 
-(define-public rust-trust-dns-proto-0.20
+(define-public rust-trust-dns-proto-0.22
   (package
     (name "rust-trust-dns-proto")
-    (version "0.20.0")
+    (version "0.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "trust-dns-proto" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1gdsxjl628h02dp0fhcjz6js79fc4dxprqgqny6rghk450dki84q"))))
+        (base32 "09mwv7fnjrkdpf82qqvsbby5xnnpwn0kcp2cqn53br50wk8q6zsg"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-async-trait" ,rust-async-trait-0.1)
         ("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-bytes" ,rust-bytes-1)
         ("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-data-encoding" ,rust-data-encoding-2)
-        ("rust-enum-as-inner" ,rust-enum-as-inner-0.3)
+        ("rust-enum-as-inner" ,rust-enum-as-inner-0.5)
         ("rust-futures-channel" ,rust-futures-channel-0.3)
         ("rust-futures-io" ,rust-futures-io-0.3)
         ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-h2" ,rust-h2-0.3)
+        ("rust-http" ,rust-http-0.2)
         ("rust-idna" ,rust-idna-0.2)
         ("rust-ipnet" ,rust-ipnet-2)
         ("rust-js-sys" ,rust-js-sys-0.3)
         ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-log" ,rust-log-0.4)
+        ("rust-native-tls" ,rust-native-tls-0.2)
         ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-quinn" ,rust-quinn-0.8)
         ("rust-rand" ,rust-rand-0.8)
         ("rust-ring" ,rust-ring-0.16)
+        ("rust-rustls" ,rust-rustls-0.20)
+        ("rust-rustls-pemfile" ,rust-rustls-pemfile-1)
         ("rust-serde" ,rust-serde-1)
         ("rust-smallvec" ,rust-smallvec-1)
-        ("rust-socket2" ,rust-socket2-0.3)
+        ("rust-socket2" ,rust-socket2-0.4)
         ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-tinyvec" ,rust-tinyvec-1)
         ("rust-tokio" ,rust-tokio-1)
+        ("rust-tokio-native-tls" ,rust-tokio-native-tls-0.3)
+        ("rust-tokio-openssl" ,rust-tokio-openssl-0.6)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.23)
+        ("rust-tracing" ,rust-tracing-0.1)
         ("rust-url" ,rust-url-2)
-        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2))))
-    (home-page "https://www.trust-dns.org/index.html")
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
+        ("rust-webpki" ,rust-webpki-0.22)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.22))))
+    (home-page "http://www.trust-dns.org/index.html")
     (synopsis "Safe and secure DNS library")
     (description
      "Trust-DNS is a safe and secure DNS library.  This is the foundational
 DNS protocol library for all Trust-DNS projects.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-trust-dns-proto-0.20
+  (package
+    (inherit rust-trust-dns-proto-0.22)
+    (name "rust-trust-dns-proto")
+    (version "0.20.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-proto" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1gdsxjl628h02dp0fhcjz6js79fc4dxprqgqny6rghk450dki84q"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-async-trait" ,rust-async-trait-0.1)
+        ("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-data-encoding" ,rust-data-encoding-2)
+        ("rust-enum-as-inner" ,rust-enum-as-inner-0.3)
+        ("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-idna" ,rust-idna-0.2)
+        ("rust-ipnet" ,rust-ipnet-2)
+        ("rust-js-sys" ,rust-js-sys-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-ring" ,rust-ring-0.16)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-socket2" ,rust-socket2-0.3)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-url" ,rust-url-2)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2))))))
+
 (define-public rust-trust-dns-proto-0.19
   (package
     (inherit rust-trust-dns-proto-0.20)
@@ -64314,8 +67783,55 @@ DNS protocol library for all Trust-DNS projects.")
        (("rust-env-logger" ,rust-env-logger-0.6)
         ("rust-tokio" ,rust-tokio-0.1))))))
 
+(define-public rust-trust-dns-resolver-0.22
+  (package
+    (name "rust-trust-dns-resolver")
+    (version "0.22.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "trust-dns-resolver" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1zkw5fx7dwiy4ymn7ywmsb3qhf69mnqdw9mcpyps3c7gvjj1mwmg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f              ; Not all files included.
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-ipconfig" ,rust-ipconfig-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-lru-cache" ,rust-lru-cache-0.1)
+        ("rust-parking-lot" ,rust-parking-lot-0.12)
+        ("rust-resolv-conf" ,rust-resolv-conf-0.7)
+        ("rust-rustls" ,rust-rustls-0.20)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tokio-native-tls" ,rust-tokio-native-tls-0.3)
+        ("rust-tokio-openssl" ,rust-tokio-openssl-0.6)
+        ("rust-tokio-rustls" ,rust-tokio-rustls-0.23)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.22)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.22))
+       #:cargo-development-inputs
+       (("rust-futures-executor" ,rust-futures-executor-0.3)
+        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
+    (home-page "http://www.trust-dns.org/index.html")
+    (synopsis "Safe and secure DNS library")
+    (description
+     "Trust-DNS is a safe and secure DNS library.  This Resolver library uses
+the Client library to perform all DNS queries.  The Resolver is intended to be
+a high-level library for any DNS record resolution see Resolver and
+AsyncResolver for supported resolution types.  The Client can be used for
+other queries.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-trust-dns-resolver-0.20
   (package
+    (inherit rust-trust-dns-resolver-0.22)
     (name "rust-trust-dns-resolver")
     (version "0.20.0")
     (source
@@ -64325,7 +67841,6 @@ DNS protocol library for all Trust-DNS projects.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1r2n933z9yrpdqv60c9mbhl64y2inpx9rm870nq1qqmx226d2wih"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -64350,16 +67865,7 @@ DNS protocol library for all Trust-DNS projects.")
         ("rust-trust-dns-openssl" ,rust-trust-dns-openssl-0.20)
         ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.20)
         ("rust-trust-dns-rustls" ,rust-trust-dns-rustls-0.20)
-        ("rust-webpki-roots" ,rust-webpki-roots-0.21))))
-    (home-page "https://www.trust-dns.org/index.html")
-    (synopsis "Safe and secure DNS library")
-    (description
-     "Trust-DNS is a safe and secure DNS library.  This Resolver library uses
-the Client library to perform all DNS queries.  The Resolver is intended to be
-a high-level library for any DNS record resolution see Resolver and
-AsyncResolver for supported resolution types.  The Client can be used for
-other queries.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-webpki-roots" ,rust-webpki-roots-0.21))))))
 
 (define-public rust-trust-dns-resolver-0.19
   (package
@@ -64533,7 +68039,7 @@ the Trust-DNS client to use rustls for TLS.")
        #:cargo-development-inputs
        (("rust-openssl" ,rust-openssl-0.10))))
     (native-inputs
-     (list pkg-config))
+     (list perl pkg-config))
     (inputs
      (list openssl))))
 
@@ -64615,21 +68121,6 @@ the Trust-DNS client to use rustls for TLS.")
      "This package provides a lightweight atomic lock.")
     (license license:expat)))
 
-(define-public rust-try-lock-0.1
-  (package
-    (inherit rust-try-lock-0.2)
-    (name "rust-try-lock")
-    (version "0.1.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "try-lock" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1hp76pyzyxhcxxjacf083gpp6gf8cqwkg188yy02i2a3axqs8apf"))))
-    (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))))
-
 (define-public rust-trybuild-1
   (package
     (name "rust-trybuild")
@@ -64657,17 +68148,16 @@ the Trust-DNS client to use rustls for TLS.")
      "Test harness for ui tests of compiler diagnostics.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-trycmd-0.13
+(define-public rust-trycmd-0.14
   (package
     (name "rust-trycmd")
-    (version "0.13.7")
+    (version "0.14.12")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "trycmd" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
-               (base32
-                "1slz0b87k0n2hgbv76yc8wm68nh6cqi2lgm6gpcnkfz8rcrpndx5"))))
+               (base32 "10ag8s931glx0g1arj823dph27x77jc37nal733z7pal2g4dwiq3"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -64681,7 +68171,7 @@ the Trust-DNS client to use rustls for TLS.")
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-shlex" ,rust-shlex-1)
         ("rust-snapbox" ,rust-snapbox-0.4)
-        ("rust-toml-edit" ,rust-toml-edit-0.14))))
+        ("rust-toml-edit" ,rust-toml-edit-0.19))))
     (home-page "https://github.com/assert-rs/trycmd")
     (synopsis "Snapshot testing for a herd of CLI tests")
     (description "trycmd is a test harness that will enumerate test case files
@@ -64689,8 +68179,56 @@ and run them to verify the results, taking inspiration from @code{trybuild} and
 @code{cram}.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-trycmd-0.13
+  (package
+    (inherit rust-trycmd-0.14)
+    (name "rust-trycmd")
+    (version "0.13.7")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "trycmd" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1slz0b87k0n2hgbv76yc8wm68nh6cqi2lgm6gpcnkfz8rcrpndx5"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-escargot" ,rust-escargot-0.5)
+        ("rust-glob" ,rust-glob-0.3)
+        ("rust-humantime" ,rust-humantime-2)
+        ("rust-humantime-serde" ,rust-humantime-serde-1)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-schemars" ,rust-schemars-0.8)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-shlex" ,rust-shlex-1)
+        ("rust-snapbox" ,rust-snapbox-0.4)
+        ("rust-toml-edit" ,rust-toml-edit-0.14))))))
+
+(define-public rust-ttf-parser-0.19
+  (package
+    (name "rust-ttf-parser")
+    (version "0.19.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ttf-parser" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0iipdkmj1zyg2gl7rsyigj9c7gmsqllg2v8d80jwscivmq1g1p24"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t))   ; Cut the dependency graph.
+    (home-page "https://github.com/RazrFalcon/ttf-parser")
+    (synopsis "High-level, safe, zero-allocation TrueType font parser")
+    (description
+     "This package provides a high-level, safe, zero-allocation TrueType font
+parser.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-ttf-parser-0.12
   (package
+    (inherit rust-ttf-parser-0.19)
     (name "rust-ttf-parser")
     (version "0.12.3")
     (source
@@ -64700,14 +68238,7 @@ and run them to verify the results, taking inspiration from @code{trybuild} and
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1rkj90w4k21y88i69rlwb8pyfvv5lnb7x2b8yvdan21gha5gbqks"))))
-    (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
-    (home-page "https://github.com/RazrFalcon/ttf-parser")
-    (synopsis "High-level, safe, zero-allocation TrueType font parser")
-    (description
-     "This package provides a high-level, safe, zero-allocation TrueType font
-parser.")
-    (license (list license:expat license:asl2.0))))
+    (arguments `(#:skip-build? #t))))
 
 (define-public rust-ttf-parser-0.6
   (package
@@ -65067,15 +68598,15 @@ deserialization.")
 (define-public rust-typenum-1
   (package
     (name "rust-typenum")
-    (version "1.15.0")
+    (version "1.16.0")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "typenum" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "11yrvz1vd43gqv738yw1v75rzngjbs7iwcgzjy3cq5ywkv2imy6w"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "typenum" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1fhb9iaqyjn4dzn2vl86kxjhp4xpw5gynczlnqzf4x6rjgpn2ya9"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs (("rust-scale-info" ,rust-scale-info-1))))
@@ -65276,30 +68807,6 @@ panic-free alternative to @code{core::fmt}.")
 arithmetic.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-uint-0.4
-  (package
-    (inherit rust-uint-0.9)
-    (name "rust-uint")
-    (version "0.4.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "uint" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32 "0il6x59h605mmm10qxig066khxaygqcyb60pqja1n5mr68bs2jvm"))))
-    (arguments
-      `(#:tests? #f ; The tests fail. Due to rustc version?
-        #:cargo-inputs
-        (("rust-byteorder" ,rust-byteorder-1)
-         ("rust-crunchy" ,rust-crunchy-0.1)
-         ("rust-heapsize" ,rust-heapsize-0.4)
-         ("rust-quickcheck" ,rust-quickcheck-0.6)
-         ("rust-rustc-hex" ,rust-rustc-hex-2))
-        #:cargo-development-inputs
-        (("rust-quickcheck" ,rust-quickcheck-0.6)
-         ("rust-rustc-hex" ,rust-rustc-hex-2))))))
-
 (define-public rust-umask-1
   (package
     (name "rust-umask")
@@ -65823,17 +69330,17 @@ to Unicode Standard Annex #31.")
         (base32
          "1p5l9h3n3i53cp95fb65p8q3vbwib79ryd9z5z5h5kr9gl6qc7wc"))))))
 
-(define-public rust-unindent-0.1
+(define-public rust-unindent-0.2
   (package
     (name "rust-unindent")
-    (version "0.1.7")
+    (version "0.2.1")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "unindent" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32 "1is1gmx1l89z426rn3xsi0mii4vhy2imhqmhx8x2pd8mji6y0kpi"))))
+         (base32 "0kw1yivkklw1f5mpcwakxznwzn6br2g3yvbwg7yfvxqzlmg0z8ss"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/dtolnay/indoc")
     (synopsis "Remove a column of leading whitespace from a string")
@@ -65842,6 +69349,19 @@ whitespace from a string.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-unindent-0.1
+  (package
+    (inherit rust-unindent-0.2)
+    (name "rust-unindent")
+    (version "0.1.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "unindent" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32 "1is1gmx1l89z426rn3xsi0mii4vhy2imhqmhx8x2pd8mji6y0kpi"))))))
+
 (define-public rust-uniquote-3
   (package
     (name "rust-uniquote")
@@ -65860,28 +69380,45 @@ whitespace from a string.")
 clear display in the output.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-universal-hash-0.4
+(define-public rust-universal-hash-0.5
   (package
     (name "rust-universal-hash")
-    (version "0.4.0")
+    (version "0.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "universal-hash" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "00hljq64l0p68yrncvyww4cdgkzpzl49vrlnj57kwblkak3b49l3"))))
+        (base32 "1dfqh2jnf4pz2cr9v4adpyxinz658vadlbwsjgigf6cs7jvn0cbx"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-generic-array" ,rust-generic-array-0.14)
+       (("rust-crypto-common" ,rust-crypto-common-0.1)
         ("rust-subtle" ,rust-subtle-2))))
     (home-page "https://github.com/RustCrypto/traits")
     (synopsis "Trait for universal hash functions")
     (description "This package provides traits for universal hash functions.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-universal-hash-0.4
+  (package
+    (inherit rust-universal-hash-0.5)
+    (name "rust-universal-hash")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "universal-hash" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "00hljq64l0p68yrncvyww4cdgkzpzl49vrlnj57kwblkak3b49l3"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-generic-array" ,rust-generic-array-0.14)
+        ("rust-subtle" ,rust-subtle-2))))))
+
 (define-public rust-universal-hash-0.3
   (package
     (inherit rust-universal-hash-0.4)
@@ -66388,7 +69925,7 @@ first byte.")
 (define-public rust-uuid-1
   (package
     (name "rust-uuid")
-    (version "1.2.2")
+    (version "1.3.0")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "uuid" version))
@@ -66396,14 +69933,19 @@ first byte.")
                (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0k6fchay62ryjhkxsbbj38030lm3797c13vsp54bkd9ij3gf0bj2"))))
+                "0ygxkj6bgfjkbhpdj1s0607zi9l8886pcw04lryd647f4r9q8x0n"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
        (("rust-bincode" ,rust-bincode-1)
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-test" ,rust-serde-test-1)
         ("rust-trybuild" ,rust-trybuild-1)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
         ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3)
-        ("rust-windows-sys" ,rust-windows-sys-0.42))
+        ("rust-windows-sys" ,rust-windows-sys-0.45))
        #:cargo-inputs
        (("rust-arbitrary" ,rust-arbitrary-1)
         ("rust-atomic" ,rust-atomic-0.5)
@@ -66507,14 +70049,14 @@ first byte.")
 (define-public rust-uuid-macro-internal-1
   (package
     (name "rust-uuid-macro-internal")
-    (version "1.2.2")
+    (version "1.3.0")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "uuid-macro-internal" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1n3nw8vydhm5l3d32j3wgdwfd68rg71m400y4ijyd4s5i7r8kg3k"))))
+                "1jbccm5pk216zrrf0ibd1j7m86lgmsyibs8d59ykhak5g2l01cy1"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -66529,26 +70071,26 @@ first byte.")
     ;; The user can choose either license.
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-v-frame-0.2
+(define-public rust-v-frame-0.3
   (package
     (name "rust-v-frame")
-    (version "0.2.5")
+    (version "0.3.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "v_frame" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1ay6p0arqg8cnyzv6iiad77plvjkxnmlmyvgz2qcpadv7y5942n7"))))
+        (base32 "0n03akfyk7a0an2d1mg06ghk2pma9qk1rfhwj5i5bbld7k72730l"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-cfg-if" ,rust-cfg-if-1)
-        ("rust-hawktracer" ,rust-rust-hawktracer-0.7)
+        ("rust-new-debug-unreachable" ,rust-new-debug-unreachable-1)
         ("rust-noop-proc-macro" ,rust-noop-proc-macro-0.3)
         ("rust-num-derive" ,rust-num-derive-0.3)
         ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-rayon" ,rust-rayon-1)
+        ("rust-rust-hawktracer" ,rust-rust-hawktracer-0.7)
         ("rust-serde" ,rust-serde-1)
         ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2))))
     (home-page "https://github.com/xiph/rav1e")
@@ -66652,7 +70194,7 @@ write operations.")
 (define-public rust-vcpkg-0.2
   (package
     (name "rust-vcpkg")
-    (version "0.2.11")
+    (version "0.2.15")
     (source
       (origin
         (method url-fetch)
@@ -66660,7 +70202,7 @@ write operations.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1yvrd2b97j4hv5bfhcj3al0dpkbzkdsr6dclxqz3zqm50rhwl2xh"))))
+          "09i4nf5y8lig6xgj3f7fyrvzd3nlaw4znrihw8psidvv5yk4xkdc"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f      ; Tests want mysql, harfbuzz, graphite2.
@@ -66768,14 +70310,14 @@ has at least 1 element.")
 (define-public rust-version-check-0.9
   (package
     (name "rust-version-check")
-    (version "0.9.2")
+    (version "0.9.4")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "version_check" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32 "1vbaqdf802qinsq8q20w8w0qn2pv0rkq5p73ijcblrwxcvjp5adm"))))
+         (base32 "0gs8grwdlgh0xq660d7wr80x14vxbizmd8dbp29p2pdncx8lp1s9"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/SergioBenitez/version_check")
     (synopsis "Check that the installed rustc meets some version requirements")
@@ -67324,7 +70866,7 @@ result.")
 (define-public rust-wasm-bindgen-0.2
   (package
     (name "rust-wasm-bindgen")
-    (version "0.2.78")
+    (version "0.2.84")
     (source
      (origin
        (method url-fetch)
@@ -67332,7 +70874,12 @@ result.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1kkzwj24z9ad7lq8c5ynlnpxpx8hwra6w6brl871a6dj6vi76bv3"))))
+        (base32 "0fx5gh0b4n6znfa3blz92wn1k4bbiysyq9m95s7rn3gk46ydry1i"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (substitute* "Cargo.toml"
+             (("=0\\.3\\.34") "^0.3.34"))))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -67358,7 +70905,7 @@ result.")
 (define-public rust-wasm-bindgen-backend-0.2
   (package
     (name "rust-wasm-bindgen-backend")
-    (version "0.2.78")
+    (version "0.2.84")
     (source
      (origin
        (method url-fetch)
@@ -67366,13 +70913,13 @@ result.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0yw3ma0ahd1cz3afxpqcgwy9rwwgmz2g8pn8nas7c95sky7vy5x3"))))
+        (base32 "1ffc0wb293ha56i66f830x7f8aa2xql69a21lrasy1ncbgyr1klm"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-bumpalo" ,rust-bumpalo-3)
-        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-log" ,rust-log-0.4)
+        ("rust-once-cell" ,rust-once-cell-1)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1)
@@ -67386,7 +70933,7 @@ result.")
 (define-public rust-wasm-bindgen-futures-0.4
   (package
     (name "rust-wasm-bindgen-futures")
-    (version "0.4.28")
+    (version "0.4.34")
     (source
      (origin
        (method url-fetch)
@@ -67394,7 +70941,7 @@ result.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0fax7x0iysa64iqmzq0lri8llw8v0f8acz1iq6b4qahzrcipb3cf"))))
+        (base32 "0m0lnnnhs9ni4dn9vz74prsjz8bdcf8dvnznd5ljch5s279f06gj"))))
     (build-system cargo-build-system)
     (arguments
       `(#:cargo-inputs
@@ -67443,7 +70990,7 @@ result.")
 (define-public rust-wasm-bindgen-macro-0.2
   (package
     (name "rust-wasm-bindgen-macro")
-    (version "0.2.78")
+    (version "0.2.84")
     (source
      (origin
        (method url-fetch)
@@ -67451,7 +70998,7 @@ result.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1ydcppds5qbj77c7kdinkg9qidcf7ahvwqvnb3v8nllmqkklcqfm"))))
+        (base32 "1idlq28awqhq8rclb22rn5xix82w9a4rgy11vkapzhzd1dygf8ac"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f      ; 'Async blocks are unstable'
@@ -67462,7 +71009,8 @@ result.")
        #:cargo-development-inputs
        (("rust-trybuild" ,rust-trybuild-1)
         ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
-        ("rust-wasm-bindgen-futures" ,rust-wasm-bindgen-futures-0.4))))
+        ("rust-wasm-bindgen-futures" ,rust-wasm-bindgen-futures-0.4)
+        ("rust-web-sys" ,rust-web-sys-0.3))))
     (home-page "https://rustwasm.github.io/wasm-bindgen/")
     (synopsis "Definition of the @code{#[wasm_bindgen]} attribute")
     (description
@@ -67473,7 +71021,7 @@ dependency.")
 (define-public rust-wasm-bindgen-macro-support-0.2
   (package
     (name "rust-wasm-bindgen-macro-support")
-    (version "0.2.78")
+    (version "0.2.84")
     (source
      (origin
        (method url-fetch)
@@ -67481,7 +71029,7 @@ dependency.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1ay5qmbqh8hbsgf2dqkg7ia13srx3c1d6p2qvjmzhdaqlbpf00vq"))))
+        (base32 "1xm56lpi0rihh8ny7x085dgs3jdm47spgqflb98wghyadwq83zra"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -67500,14 +71048,14 @@ 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.78")
+    (version "0.2.84")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "wasm-bindgen-shared" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32 "1k27dc57h0brx5ish4dwmzibyif7m9lfagvph1a7s0ygi4kj6dq2"))))
+         (base32 "0pcvk1c97r1pprzfaxxn359r0wqg5bm33ylbwgjh8f4cwbvzwih0"))))
     (build-system cargo-build-system)
     (home-page "https://rustwasm.github.io/wasm-bindgen/")
     (synopsis "Shared support between wasm-bindgen and wasm-bindgen cli")
@@ -67519,7 +71067,7 @@ attribute that is not in the shared backend crate.")
 (define-public rust-wasm-bindgen-test-0.3
   (package
     (name "rust-wasm-bindgen-test")
-    (version "0.3.28")
+    (version "0.3.34")
     (source
      (origin
        (method url-fetch)
@@ -67527,7 +71075,12 @@ attribute that is not in the shared backend crate.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0zkb3swn81blwg0kdl2y49paaxgavc122q2kygq1xxpxf5wsmwcn"))))
+        (base32 "02x3agz7jn517fbbvnhncajvanr0w055jhinzf49w87vz706zcvd"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (substitute* "Cargo.toml"
+             (("=0\\.3\\.34") "^0.3.34"))))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -67619,7 +71172,7 @@ attribute that is not in the shared backend crate.")
 (define-public rust-wasm-bindgen-test-macro-0.3
   (package
     (name "rust-wasm-bindgen-test-macro")
-    (version "0.3.28")
+    (version "0.3.34")
     (source
      (origin
        (method url-fetch)
@@ -67627,7 +71180,7 @@ attribute that is not in the shared backend crate.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "124ng2j16jf8lfdgq1lg83c7zka42fzizdaddnl9dsyz52bgf1k0"))))
+        (base32 "1s9vnkrmmq5fiv0j0ifvbs7q5ffgxwbg1r0zcryp3cdkwsd7ad07"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -67657,6 +71210,34 @@ attribute that is not in the shared backend crate.")
        (("rust-proc-macro2" ,rust-proc-macro2-0.4)
         ("rust-quote" ,rust-quote-0.6))))))
 
+(define-public rust-wasm-streams-0.2
+  (package
+    (name "rust-wasm-streams")
+    (version "0.2.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "wasm-streams" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0y60yy64p07h684h49159hhws50q6zdnffyirjnjqcq87hvf7fkb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-js-sys" ,rust-js-sys-0.3)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
+        ("rust-wasm-bindgen-futures" ,rust-wasm-bindgen-futures-0.4)
+        ("rust-web-sys" ,rust-web-sys-0.3))
+       #:cargo-development-inputs
+       (("rust-pin-project" ,rust-pin-project-1)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3)
+        ("rust-web-sys" ,rust-web-sys-0.3))))
+    (home-page "https://github.com/MattiasBuelens/wasm-streams/")
+    (synopsis "Bridging between web streams and Rust streams using WebAssembly")
+    (description "Bridging between web streams and Rust streams using WebAssembly")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-wasmparser-0.57
   (package
     (name "rust-wasmparser")
@@ -67794,7 +71375,7 @@ applications.")
 (define-public rust-web-sys-0.3
   (package
     (name "rust-web-sys")
-    (version "0.3.55")
+    (version "0.3.61")
     (source
      (origin
        (method url-fetch)
@@ -67802,7 +71383,7 @@ applications.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1yz9dym9y9f9s1f99q5j5kl2dfc5kn2jpjfdnnkfmnar3igi1srq"))))
+        (base32 "15qbbdbhyz02srvm01p0cvlh0pvmbbin9hislp0yx8rvnbs9jfz3"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -67818,8 +71399,38 @@ applications.")
      "Bindings for all Web APIs, a procedurally generated crate from WebIDL.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-webbrowser-0.8
+  (package
+    (name "rust-webbrowser")
+    (version "0.8.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "webbrowser" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       ;; Explicitely remove dependencies for unsupported operating systems,
+       ;; to avoid pulling many dependencies and causing rust world rebuilds.
+       (patches (search-patches "rust-webbrowser-remove-unsupported-os.patch"))
+       (patch-flags '("-p0"))
+       (sha256
+        (base32 "0zk1qidyksspa8pgvq8bh2lyqmmrs0fr5r1qsyhbzrawpn2w972p"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-dirs" ,rust-dirs-4)
+                       ("rust-log" ,rust-log-0.4)
+                       ("rust-url" ,rust-url-2)
+                       ("rust-web-sys" ,rust-web-sys-0.3))))
+    (home-page "https://github.com/amodm/webbrowser-rs")
+    (synopsis "Open URLs in web browsers available on a platform")
+    (description
+     "Webbrowser-rs is a Rust library to open URLs in the web browsers
+available on a platform.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-webbrowser-0.5
   (package
+    (inherit rust-webbrowser-0.8)
     (name "rust-webbrowser")
     (version "0.5.5")
     (source
@@ -67835,14 +71446,7 @@ applications.")
        #:cargo-inputs
        (("rust-web-sys" ,rust-web-sys-0.3)
         ("rust-widestring" ,rust-widestring-0.4)
-        ("rust-winapi" ,rust-winapi-0.3))))
-    (home-page
-     "https://github.com/amodm/webbrowser-rs")
-    (synopsis "Open URLs in web browsers available on a platform")
-    (description
-     "Webbrowser-rs is a Rust library to open URLs in the web browsers
-available on a platform.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-winapi" ,rust-winapi-0.3))))))
 
 (define-public rust-webpki-0.22
   (package
@@ -67862,6 +71466,8 @@ available on a platform.")
         ("rust-untrusted" ,rust-untrusted-0.7))
        #:cargo-development-inputs
        (("rust-base64" ,rust-base64-0.9))))
+    (native-inputs
+     (list perl))
     (home-page "https://github.com/briansmith/webpki")
     (synopsis "Web PKI X.509 Certificate Verification")
     (description "This package provides Web PKI X.509 Certificate
@@ -67908,11 +71514,22 @@ Verification.")
        (("rust-ring" ,rust-ring-0.14)
         ("rust-untrusted" ,rust-untrusted-0.6))
        #:cargo-development-inputs
-       (("rust-base64" ,rust-base64-0.9))))))
+       (("rust-base64" ,rust-base64-0.9))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'build-curve25519-tables
+           (lambda* (#:key vendor-dir #:allow-other-keys)
+             (with-directory-excursion
+               (dirname (car (find-files vendor-dir "make_curve25519_tables.py")))
+               (with-output-to-file "curve25519_tables.h"
+                 (lambda _
+                   (invoke "python" "make_curve25519_tables.py")))))))))
+    (native-inputs
+     (list clang perl python-2))))
 
 (define-public rust-webpki-0.18
   (package
-    (inherit rust-webpki-0.21)
+    (inherit rust-webpki-0.19)
     (name "rust-webpki")
     (version "0.18.1")
     (source
@@ -67928,7 +71545,16 @@ Verification.")
        (("rust-ring" ,rust-ring-0.13)
         ("rust-untrusted" ,rust-untrusted-0.6))
        #:cargo-development-inputs
-       (("rust-base64" ,rust-base64-0.9))))))
+       (("rust-base64" ,rust-base64-0.9))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'build-curve25519-tables
+           (lambda* (#:key vendor-dir #:allow-other-keys)
+             (with-directory-excursion
+               (dirname (car (find-files vendor-dir "make_curve25519_tables.py")))
+               (with-output-to-file "curve25519_tables.h"
+                 (lambda _
+                   (invoke "python" "make_curve25519_tables.py")))))))))))
 
 (define-public rust-webpki-roots-0.22
   (package
@@ -67945,6 +71571,8 @@ Verification.")
     (arguments
      `(#:cargo-inputs
        (("rust-webpki" ,rust-webpki-0.22))))
+    (native-inputs
+     (list perl))
     (home-page "https://github.com/rustls/webpki-roots")
     (synopsis "Mozilla's CA root certificates for use with webpki")
     (description "This package provides Mozilla's CA root certificates for use
@@ -68120,19 +71748,23 @@ GUIs as desktop applications.")
 (define-public rust-weezl-0.1
   (package
     (name "rust-weezl")
-    (version "0.1.4")
+    (version "0.1.7")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "weezl" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0v16mvdmsicinbhgsm1l7gq1jmcaqrvm22rgn9lrhkhg71wb6cja"))))
+        (base32 "1frdbq6y5jn2j93i20hc80swpkj30p1wffwxj1nr4fp09m6id4wi"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f              ; Not all files included.
        #:cargo-inputs
-       (("rust-futures" ,rust-futures-0.3))))
+       (("rust-futures" ,rust-futures-0.3))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tokio-util" ,rust-tokio-util-0.6))))
     (home-page "https://github.com/image-rs/lzw.git")
     (synopsis "Fast LZW compression and decompression")
     (description
@@ -68621,17 +72253,716 @@ color in a Windows console.")
        #:cargo-inputs
        (("rust-winapi" ,rust-winapi-0.3))))))
 
-(define-public rust-winreg-0.8
+(define-public rust-windows-0.46
+  (package
+    (name "rust-windows")
+    (version "0.46.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "098crdz9gxgy3614ygznqqhn28q097r498b3rg35584nd8gb9b6d"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-windows-implement" ,rust-windows-implement-0.46)
+        ("rust-windows-interface" ,rust-windows-interface-0.46)
+        ("rust-windows-targets" ,rust-windows-targets-0.42))))
+    (home-page "https://github.com/microsoft/windows-rs")
+    (synopsis "Rust for Windows")
+    (description "The windows crate lets you call any Windows API past,
+present, and future using code generated on the fly directly from the metadata
+describing the API and right into your Rust package where you can call them as
+if they were just another Rust module.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-windows-0.32
+  (package
+    (inherit rust-windows-0.46)
+    (name "rust-windows")
+    (version "0.32.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1v0h5b5g1ak2f2a6gkgjqgrqkkbdcfmf02nfmmj27g4nj3dzdvgv"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-windows-implement" ,rust-windows-implement-0.32)
+        ("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.32)
+        ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.32)
+        ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.32)
+        ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.32)
+        ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.32))))))
+
+(define-public rust-windows-0.9
+  (package
+    (inherit rust-windows-0.46)
+    (name "rust-windows")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "windows" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0zy9jmhkhmsng7l9qiznxpdh5ns303s875p5kf6a5q9ym0rka7rn"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-const-sha1" ,rust-const-sha1-0.2)
+        ("rust-windows-gen" ,rust-windows-gen-0.9)
+        ("rust-windows-macros" ,rust-windows-macros-0.9))))))
+
+(define-public rust-windows-aarch64-gnullvm-0.42
+  (package
+    (name "rust-windows-aarch64-gnullvm")
+    (version "0.42.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows-aarch64-gnullvm" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1y4q0qmvl0lvp7syxvfykafvmwal5hrjb4fmv04bqs0bawc52yjr"))
+              (snippet
+               '(delete-file "lib/libwindows.a"))))
+    (build-system cargo-build-system)
+    (arguments
+     (list #:skip-build? #t))
+    (home-page "https://github.com/microsoft/windows-rs")
+    (synopsis "Code gen support for the windows crate")
+    (description
+     "This package provides code gen support for the windows crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-windows-aarch64-msvc-0.42
+  (package
+    (name "rust-windows-aarch64-msvc")
+    (version "0.42.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows-aarch64-msvc" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0hsdikjl5sa1fva5qskpwlxzpc5q9l909fpl1w6yy1hglrj8i3p0"))
+              (snippet
+               '(delete-file "lib/windows.lib"))))
+    (build-system cargo-build-system)
+    (arguments
+     (list #:skip-build? #t))
+    (home-page "https://github.com/microsoft/windows-rs")
+    (synopsis "Code gen support for the windows crate")
+    (description "This package provides code gen support for the windows
+crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-windows-aarch64-msvc-0.36
+  (package
+    (inherit rust-windows-aarch64-msvc-0.42)
+    (name "rust-windows-aarch64-msvc")
+    (version "0.36.1")
+    (source
+     (origin
+       (inherit (package-source rust-windows-aarch64-msvc-0.42))
+       (method url-fetch)
+       (uri (crate-uri "windows_aarch64_msvc" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ixaxs2c37ll2smprzh0xq5p238zn8ylzb3lk1zddqmd77yw7f4v"))))))
+
+(define-public rust-windows-aarch64-msvc-0.32
+  (package
+    (inherit rust-windows-aarch64-msvc-0.36)
+    (name "rust-windows-aarch64-msvc")
+    (version "0.32.0")
+    (source (origin
+              (inherit (package-source rust-windows-aarch64-msvc-0.36))
+              (method url-fetch)
+              (uri (crate-uri "windows_aarch64_msvc" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1x8bnafz15ksgpbjbgk1l1j2jx4rq4a2ylzcahb1jhy4n59jgsfq"))))))
+
+(define-public rust-windows-aarch64-msvc-0.28
+  (package
+    (inherit rust-windows-aarch64-msvc-0.32)
+    (name "rust-windows-aarch64-msvc")
+    (version "0.28.0")
+    (source (origin
+              (inherit (package-source rust-windows-aarch64-msvc-0.32))
+              (method url-fetch)
+              (uri (crate-uri "windows_aarch64_msvc" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1hpk0n2z0jzzvwlvs98b75sa4q920953nqfc119rv19nwm0mlsaj"))))))
+
+(define-public rust-windows-i686-gnu-0.42
+  (package
+    (name "rust-windows-i686-gnu")
+    (version "0.42.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows_i686_gnu" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0kx866dfrby88lqs9v1vgmrkk1z6af9lhaghh5maj7d4imyr47f6"))
+              (snippet
+               '(delete-file "lib/libwindows.a"))))
+    (build-system cargo-build-system)
+    (arguments
+     (list #:skip-build? #t))
+    (home-page "https://github.com/microsoft/windows-rs")
+    (synopsis "Code gen support for the windows crate")
+    (description
+     "This package provides code gen support for the windows crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-windows-i686-gnu-0.36
+  (package
+    (inherit rust-windows-i686-gnu-0.42)
+    (name "rust-windows-i686-gnu")
+    (version "0.36.1")
+    (source (origin
+              (inherit (package-source rust-windows-i686-gnu-0.42))
+              (method url-fetch)
+              (uri (crate-uri "windows_i686_gnu" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1dm3svxfzamrv6kklyda9c3qylgwn5nwdps6p0kc9x6s077nq3hq"))))))
+
+(define-public rust-windows-i686-gnu-0.32
+  (package
+    (inherit rust-windows-i686-gnu-0.36)
+    (name "rust-windows-i686-gnu")
+    (version "0.32.0")
+    (source (origin
+              (inherit (package-source rust-windows-i686-gnu-0.36))
+              (method url-fetch)
+              (uri (crate-uri "windows_i686_gnu" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "05g6kpdfxwxnw2gn1nrd7bsf5997rci0k3h3nqby168ph5l1qwba"))))))
+
+(define-public rust-windows-i686-gnu-0.28
+  (package
+    (inherit rust-windows-i686-gnu-0.32)
+    (name "rust-windows-i686-gnu")
+    (version "0.28.0")
+    (source (origin
+              (inherit (package-source rust-windows-i686-gnu-0.32))
+              (method url-fetch)
+              (uri (crate-uri "windows_i686_gnu" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "12hx7qpsjg9p7jggfcplqa3mf1mzr7k7s5ybzqwg1zmg4fn2aizm"))))))
+
+(define-public rust-windows-i686-msvc-0.42
+  (package
+    (name "rust-windows-i686-msvc")
+    (version "0.42.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows_i686_msvc" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0q0h9m2aq1pygc199pa5jgc952qhcnf0zn688454i7v4xjv41n24"))
+              (snippet
+               '(delete-file "lib/windows.lib"))))
+    (build-system cargo-build-system)
+    (arguments
+     (list #:skip-build? #t))
+    (home-page "https://github.com/microsoft/windows-rs")
+    (synopsis "Code gen support for the windows crate")
+    (description
+     "This package provides code gen support for the windows crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-windows-i686-msvc-0.36
+  (package
+    (inherit rust-windows-i686-msvc-0.42)
+    (name "rust-windows-i686-msvc")
+    (version "0.36.1")
+    (source (origin
+              (inherit (package-source rust-windows-i686-msvc-0.42))
+              (method url-fetch)
+              (uri (crate-uri "windows_i686_msvc" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "097h2a7wig04wbmpi3rz1akdy4s8gslj5szsx8g2v0dj91qr3rz2"))))))
+
+(define-public rust-windows-i686-msvc-0.32
+  (package
+    (inherit rust-windows-i686-msvc-0.36)
+    (name "rust-windows-i686-msvc")
+    (version "0.32.0")
+    (source (origin
+              (inherit (package-source rust-windows-i686-msvc-0.36))
+              (method url-fetch)
+              (uri (crate-uri "windows_i686_msvc" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0wj1wi01fc8hrasbakjcq8y5a7ynw9l2mcw08svmsq823axi2v0l"))))))
+
+(define-public rust-windows-i686-msvc-0.28
+  (package
+    (inherit rust-windows-i686-msvc-0.32)
+    (name "rust-windows-i686-msvc")
+    (version "0.28.0")
+    (source (origin
+              (inherit (package-source rust-windows-i686-msvc-0.32))
+              (method url-fetch)
+              (uri (crate-uri "windows_i686_msvc" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0r0z8s1wcdwd20azsdfilf2a6bz68xkavl990wy64hyc8f51bmai"))))))
+
+(define-public rust-windows-implement-0.46
+  (package
+    (name "rust-windows-implement")
+    (version "0.46.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows-implement" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "09kw706qcms5yy34lf714zspj34v8jirfxv7yycavpcsa9czpd69"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/microsoft/windows-rs")
+    (synopsis "The implement macro for the windows crate")
+    (description "This package provides the @code{implement} macro for the
+windows crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-windows-implement-0.32
+  (package
+    (name "rust-windows-implement")
+    (version "0.32.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows-implement" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0f3lnjs9rlihin9cjf9y7np1x15c0v09v0cwlw1n7c30145xmciz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-syn" ,rust-syn-1)
+        ("rust-windows-tokens" ,rust-windows-tokens-0.32))))
+    (home-page "https://github.com/microsoft/windows-rs")
+    (synopsis "Implement macro for the windows crate")
+    (description "This package provides the implement macro for the windows
+crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-windows-interface-0.46
+  (package
+    (name "rust-windows-interface")
+    (version "0.46.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows-interface" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0a87zxh3wq5ng1vvgqf7jhydsshrpc5w39pyvr0l1vyv3q5k67xc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/microsoft/windows-rs")
+    (synopsis "The interface macro for the windows crate")
+    (description "This package provides the interface macro for the windows
+crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-windows-sys-0.45
+  (package
+    (name "rust-windows-sys")
+    (version "0.45.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1l36bcqm4g89pknfp8r9rl1w4bn017q6a8qlx8viv0xjxzjkna3m"))))
+    (build-system cargo-build-system)
+    (arguments
+     (list #:skip-build? #t
+           #:cargo-inputs
+           `(("rust-windows-targets" ,rust-windows-targets-0.42))))
+    (home-page "https://github.com/microsoft/windows-rs")
+    (synopsis "Rust for Windows")
+    (description "The windows crate lets you call any Windows API past,
+present, and future using code generated on the fly directly from the metadata
+describing the API and right into your Rust package where you can call them as
+if they were just another Rust module.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-windows-sys-0.42
+  (package
+    (inherit rust-windows-sys-0.45)
+    (name "rust-windows-sys")
+    (version "0.42.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "19waf8aryvyq9pzk0gamgfwjycgzk4gnrazpfvv171cby0h1hgjs"))))
+    (arguments
+     (list #:skip-build? #t
+           #:cargo-inputs
+           `(("rust-windows-aarch64-gnullvm" ,rust-windows-aarch64-gnullvm-0.42)
+             ("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.42)
+             ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.42)
+             ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.42)
+             ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.42)
+             ("rust-windows-x86-64-gnullvm" ,rust-windows-x86-64-gnullvm-0.42)
+             ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.42))))))
+
+(define-public rust-windows-sys-0.36
+  (package
+    (inherit rust-windows-sys-0.42)
+    (name "rust-windows-sys")
+    (version "0.36.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1lmqangv0zg1l46xiq7rfnqwsx8f8m52mqbgg2mrx7x52rd1a17a"))))
+    (arguments
+     (list #:skip-build? #t
+           #:cargo-inputs
+           `(("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.36)
+             ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.36)
+             ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.36)
+             ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.36)
+             ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.36))))))
+
+(define-public rust-windows-sys-0.28
+  (package
+    (inherit rust-windows-sys-0.36)
+    (name "rust-windows-sys")
+    (version "0.28.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "windows-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1xkghf343nll9i1yvha1a4spf53mnb5knzmnqj9adgsw5mh3kjl2"))))
+    (arguments
+     (list #:skip-build? #t
+           #:cargo-inputs
+           `(("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.28)
+             ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.28)
+             ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.28)
+             ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.28)
+             ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.28))))))
+
+(define-public rust-windows-gen-0.9
+  (package
+    (name "rust-windows-gen")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "windows_gen" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0lh492px26rrna0harikyy4p7nk520pw2lv0dczp4n2xa6y4s5al"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t #:cargo-inputs (("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/microsoft/windows-rs")
+    (synopsis "Code gen support for the windows crate")
+    (description "Code gen support for the windows crate")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-windows-macros-0.9
+  (package
+    (name "rust-windows-macros")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "windows_macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0xivsg3lf023hs83xiab2k40fmrl11nbihcdrdkc8pc4ab398xqg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-syn" ,rust-syn-1) ("rust-windows-gen" ,rust-windows-gen-0.9))))
+    (home-page "https://github.com/microsoft/windows-rs")
+    (synopsis "Macros for the windows crate")
+    (description "Macros for the windows crate")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-windows-targets-0.42
+  (package
+    (name "rust-windows-targets")
+    (version "0.42.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows-targets" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0wfhnib2fisxlx8c507dbmh97kgij4r6kcxdi0f9nk6l1k080lcf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-windows-aarch64-gnullvm" ,rust-windows-aarch64-gnullvm-0.42)
+        ("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.42)
+        ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.42)
+        ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.42)
+        ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.42)
+        ("rust-windows-x86-64-gnullvm" ,rust-windows-x86-64-gnullvm-0.42)
+        ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.42))))
+    (home-page "https://github.com/microsoft/windows-rs")
+    (synopsis "Code gen support for the windows crate")
+    (description
+     "This package provides code gen support for the windows crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-windows-tokens-0.32
+  (package
+    (name "rust-windows-tokens")
+    (version "0.32.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows-tokens" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1rrqbxjkyk6h6p6jjzbcxr0mhqbz0yfndd2s2dsgmbl75f4yy7gn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t))
+    (home-page "https://github.com/microsoft/windows-rs")
+    (synopsis "Code gen support for the windows crate")
+    (description "This package provides code generation support for the
+windows crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-windows-x86-64-gnu-0.42
+  (package
+    (name "rust-windows-x86-64-gnu")
+    (version "0.42.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows_x86_64_gnu" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0dnbf2xnp3xrvy8v9mgs3var4zq9v9yh9kv79035rdgyp2w15scd"))
+              (snippet
+               '(delete-file "lib/libwindows.a"))))
+    (build-system cargo-build-system)
+    (arguments
+     (list #:skip-build? #t))
+    (home-page "https://github.com/microsoft/windows-rs")
+    (synopsis "Code gen support for the windows crate")
+    (description
+     "This package provides code gen support for the windows crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-windows-x86-64-gnu-0.36
+  (package
+    (inherit rust-windows-x86-64-gnu-0.42)
+    (name "rust-windows-x86-64-gnu")
+    (version "0.36.1")
+    (source (origin
+              (inherit (package-source rust-windows-x86-64-gnu-0.42))
+              (method url-fetch)
+              (uri (crate-uri "windows_x86_64_gnu" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1qfrck3jnihymfrd01s8260d4snql8ks2p8yaabipi3nhwdigkad"))))))
+
+(define-public rust-windows-x86-64-gnu-0.32
+  (package
+    (inherit rust-windows-x86-64-gnu-0.36)
+    (name "rust-windows-x86-64-gnu")
+    (version "0.32.0")
+    (source (origin
+              (inherit (package-source rust-windows-x86-64-gnu-0.36))
+              (method url-fetch)
+              (uri (crate-uri "windows_x86_64_gnu" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1g34xhcayig9sndq3555w95q6lr7jr839zxv6l365ijlfhpv24n9"))))))
+
+(define-public rust-windows-x86-64-gnu-0.28
+  (package
+    (inherit rust-windows-x86-64-gnu-0.32)
+    (name "rust-windows-x86-64-gnu")
+    (version "0.28.0")
+    (source (origin
+              (inherit (package-source rust-windows-x86-64-gnu-0.32))
+              (method url-fetch)
+              (uri (crate-uri "windows_x86_64_gnu" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0m79bhdr54g4h4wh2q8wkjlkypb5wvl7xzhc2csiaqb5yl4z8cdw"))))))
+
+(define-public rust-windows-x86-64-gnullvm-0.42
+  (package
+    (name "rust-windows-x86-64-gnullvm")
+    (version "0.42.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows-x86-64-gnullvm" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "18wl9r8qbsl475j39zvawlidp1bsbinliwfymr43fibdld31pm16"))
+              (snippet
+               '(delete-file "lib/libwindows.a"))))
+    (build-system cargo-build-system)
+    (arguments (list #:skip-build? #t))
+    (home-page "https://github.com/microsoft/windows-rs")
+    (synopsis "Code gen support for the windows crate")
+    (description
+     "This package provides code gen support for the windows crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-windows-x86-64-msvc-0.42
+  (package
+    (name "rust-windows-x86-64-msvc")
+    (version "0.42.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows_x86_64_msvc" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1w5r0q0yzx827d10dpjza2ww0j8iajqhmb54s735hhaj66imvv4s"))
+              (snippet
+               '(delete-file "lib/windows.lib"))))
+    (build-system cargo-build-system)
+    (arguments (list #:skip-build? #t))
+    (home-page "https://github.com/microsoft/windows-rs")
+    (synopsis "Code gen support for the windows crate")
+    (description
+     "This package provides code gen support for the windows crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-windows-x86-64-msvc-0.36
+  (package
+    (inherit rust-windows-x86-64-msvc-0.42)
+    (name "rust-windows-x86-64-msvc")
+    (version "0.36.1")
+    (source (origin
+              (inherit (package-source rust-windows-x86-64-msvc-0.42))
+              (method url-fetch)
+              (uri (crate-uri "windows_x86_64_msvc" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "103n3xijm5vr7qxr1dps202ckfnv7njjnnfqmchg8gl5ii5cl4f8"))))))
+
+(define-public rust-windows-x86-64-msvc-0.32
+  (package
+    (inherit rust-windows-x86-64-msvc-0.36)
+    (name "rust-windows-x86-64-msvc")
+    (version "0.32.0")
+    (source (origin
+              (inherit (package-source rust-windows-x86-64-msvc-0.36))
+              (method url-fetch)
+              (uri (crate-uri "windows_x86_64_msvc" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "05l392h518dxn808dc1zkv6d0r9z38q68qqc0ix9fs9741v28jjh"))))))
+
+(define-public rust-windows-x86-64-msvc-0.28
+  (package
+    (inherit rust-windows-x86-64-msvc-0.32)
+    (name "rust-windows-x86-64-msvc")
+    (version "0.28.0")
+    (source (origin
+              (inherit (package-source rust-windows-x86-64-msvc-0.32))
+              (method url-fetch)
+              (uri (crate-uri "windows_x86_64_msvc" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "17z8q25pd3dp6b84qm9nlayd3ym78sbryxlqmgcxvz9vpmy8qarz"))))))
+
+(define-public rust-winnow-0.4
+  (package
+    (name "rust-winnow")
+    (version "0.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "winnow" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0a2b9f0n6fpn2a88jfbp1kdjj6xrhvf8arnny67qsjb6djrp12df"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t     ; Cut the dependency graph.
+       #:cargo-inputs
+       (("rust-anstyle" ,rust-anstyle-0.2)
+        ("rust-concolor" ,rust-concolor-0.0.8)
+        ("rust-is-terminal" ,rust-is-terminal-0.4)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-terminal-size" ,rust-terminal-size-0.2))))
+    (home-page "https://github.com/winnow-rs/winnow")
+    (synopsis "Byte-oriented, zero-copy, parser combinators library")
+    (description "This package provides a byte-oriented, zero-copy, parser
+combinators library.")
+    (license license:expat)))
+
+(define-public rust-winreg-0.10
   (package
     (name "rust-winreg")
-    (version "0.8.0")
+    (version "0.10.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "winreg" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1364vyx4kh170pxfg8iwlvv8xskvry53xfya0565q8qnx73gh1yi"))))
+        (base32 "17c6h02z88ijjba02bnxi5k94q5cz490nf3njh9yypf8fbig9l40"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -68645,6 +72976,25 @@ color in a Windows console.")
      "This package provides Rust bindings to MS Windows Registry API.")
     (license license:expat)))
 
+(define-public rust-winreg-0.8
+  (package
+    (inherit rust-winreg-0.10)
+    (name "rust-winreg")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "winreg" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1364vyx4kh170pxfg8iwlvv8xskvry53xfya0565q8qnx73gh1yi"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-chrono" ,rust-chrono-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-winapi" ,rust-winapi-0.3))))))
+
 (define-public rust-winreg-0.7
   (package
     (inherit rust-winreg-0.8)
@@ -68857,6 +73207,29 @@ serialization.")
 non-cryptographic hashing algorithm and random number generator.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-wyz-0.5
+  (package
+    (name "rust-wyz")
+    (version "0.5.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "wyz" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1vdrfy7i2bznnzjdl9vvrzljvs4s3qm8bnlgqwln6a941gy61wq5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-once-cell" ,rust-once-cell-1)
+        ("rust-tap" ,rust-tap-1)
+        ("rust-typemap" ,rust-typemap-0.3))))
+    (home-page "https://myrrlyn.net/crates/wyz")
+    (synopsis "Collection of utility functions")
+    (description
+     "This package provides a collection of utility functions.")
+    (license license:expat)))
+
 (define-public rust-wyz-0.4
   (package
     (name "rust-wyz")
@@ -69310,6 +73683,47 @@ including a line breaking iterator.")
 parser.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-xmltree-0.10
+  (package
+    (name "rust-xmltree")
+    (version "0.10.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "xmltree" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1jqzwhr1a5cknflsshhhjlllmd1xi04qdkjsls2bnmv5mxgagn6p"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-indexmap" ,rust-indexmap-1)
+        ("rust-xml-rs" ,rust-xml-rs-0.8))))
+    (home-page "https://github.com/eminence/xmltree-rs")
+    (synopsis "Parse an XML file into a simple tree-like structure")
+    (description "This package provides a small library for parsing an XML
+file into an in-memory tree structure.")
+    (license license:expat)))
+
+(define-public rust-xmltree-0.8
+  (package
+    (inherit rust-xmltree-0.10)
+    (name "rust-xmltree")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "xmltree" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0w0y0jz7lhxg05ca6ngfj0lj8sbrjh4vaqv13q7qaqkhs7lsx3pz"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-indexmap" ,rust-indexmap-1)
+        ("rust-xml-rs" ,rust-xml-rs-0.7))))))
+
 (define-public rust-xshell-macros-0.1
   (package
     (name "rust-xshell-macros")
@@ -69468,6 +73882,29 @@ Read/Write streams as well as low-level in-memory encoding and decoding.")
 library.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-yasna-0.4
+  (package
+    (name "rust-yasna")
+    (version "0.4.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "yasna" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0xgsvxqnycdakh6j3hg4dk3mylrpnba50w0d36vg5k311sfs4qp2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bit-vec" ,rust-bit-vec-0.6)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-num-bigint" ,rust-num-bigint-0.4))
+       #:cargo-development-inputs
+       (("rust-num-traits" ,rust-num-traits-0.2))))
+    (home-page "https://github.com/qnighy/yasna.rs")
+    (synopsis "ASN.1 library for Rust")
+    (description "ASN.1 library for Rust")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-yeslogic-fontconfig-sys-3
   (package
     (name "rust-yeslogic-fontconfig-sys")
@@ -69626,7 +74063,7 @@ crate.")
 (define-public rust-zeroize-1
   (package
     (name "rust-zeroize")
-    (version "1.5.0")
+    (version "1.5.7")
     (source
      (origin
        (method url-fetch)
@@ -69634,11 +74071,12 @@ crate.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1nq8zq5h7ad6kahdk0fxw4fdm0ibycj061jngxqkqchw67n2l8nc"))))
+        (base32 "17ql9c1qhh5kw5aas72swwicnr701alhmhnrfmr9wrkg1jyvb563"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-zeroize-derive" ,rust-zeroize-derive-1))))
+       (("rust-serde" ,rust-serde-1)
+        ("rust-zeroize-derive" ,rust-zeroize-derive-1))))
     (home-page "https://github.com/iqlusioninc/crates/")
     (synopsis "Securely clear secrets from memory")
     (description
@@ -69648,10 +74086,25 @@ will not be ``optimized away'' by the compiler.  It uses a portable pure Rust
 implementation that works everywhere, even WASM!")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-zeroize-1.4
+  (package
+    (inherit rust-zeroize-1)
+    (name "rust-zeroize")
+    (version "1.4.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "zeroize" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "068nvl3n5hk6lfn5y24grf2c7anzzqfzjjccscq3md7rqp79v3fn"))))
+    (arguments
+     `(#:cargo-inputs (("rust-zeroize-derive" ,rust-zeroize-derive-1))))))
+
 (define-public rust-zeroize-derive-1
   (package
     (name "rust-zeroize-derive")
-    (version "1.3.1")
+    (version "1.3.3")
     (source
      (origin
        (method url-fetch)
@@ -69659,7 +74112,7 @@ implementation that works everywhere, even WASM!")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1nzdqyryjnqcrqz0vhddpkd8sybhn0bd8rbd6l33rdhhxwzz3s41"))))
+        (base32 "0v6kkgkw8sxddx2608in3xx8ijbbyj5xb5b6741j1sjh7v5hggs4"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -69672,8 +74125,48 @@ implementation that works everywhere, even WASM!")
     (description "This crate provides custom derive support for Zeroize.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-zip-0.6
+  (package
+    (name "rust-zip")
+    (version "0.6.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "zip" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1vydb0v9xl6skr63r6prjs9a67hjzcdc25j3kd9r7fr4r7xx0i84"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-aes" ,rust-aes-0.7)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-bzip2" ,rust-bzip2-0.4)
+        ("rust-constant-time-eq" ,rust-constant-time-eq-0.1)
+        ("rust-crc32fast" ,rust-crc32fast-1)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-hmac" ,rust-hmac-0.12)
+        ("rust-pbkdf2" ,rust-pbkdf2-0.11)
+        ("rust-sha1" ,rust-sha1-0.10)
+        ("rust-time" ,rust-time-0.3)
+        ("rust-zstd" ,rust-zstd-0.11))
+       #:cargo-development-inputs
+       (("rust-bencher" ,rust-bencher-0.1)
+        ("rust-getrandom" ,rust-getrandom-0.2)
+        ("rust-time" ,rust-time-0.3)
+        ("rust-walkdir" ,rust-walkdir-2))))
+    (home-page "https://github.com/mvdnes/zip-rs.git")
+    (synopsis
+     "Library to support the reading and writing of zip files")
+    (description
+     "Library to support the reading and writing of zip files.")
+    (license license:expat)))
+
 (define-public rust-zip-0.5
   (package
+    (inherit rust-zip-0.6)
     (name "rust-zip")
     (version "0.5.13")
     (source
@@ -69685,7 +74178,6 @@ implementation that works everywhere, even WASM!")
        (sha256
         (base32
          "0588z88sj37nj1clis1rf4fh794av0hwaiaihfrin9b19n24iawk"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -69694,13 +74186,7 @@ implementation that works everywhere, even WASM!")
         ("rust-crc32fast" ,rust-crc32fast-1)
         ("rust-flate2" ,rust-flate2-1)
         ("rust-thiserror" ,rust-thiserror-1)
-        ("rust-time" ,rust-time-0.1))))
-    (home-page "https://github.com/mvdnes/zip-rs.git")
-    (synopsis
-     "Library to support the reading and writing of zip files")
-    (description
-     "Library to support the reading and writing of zip files.")
-    (license license:expat)))
+        ("rust-time" ,rust-time-0.1))))))
 
 (define-public rust-zoneinfo-compiled-0.5
   (package
@@ -69726,10 +74212,10 @@ implementation that works everywhere, even WASM!")
      "This package provides a library for parsing compiled zoneinfo files.")
     (license license:expat)))
 
-(define-public rust-zstd-0.9
+(define-public rust-zstd-0.11
   (package
     (name "rust-zstd")
-    (version "0.9.0+zstd.1.5.0")
+    (version "0.11.2+zstd.1.5.2")
     (source
      (origin
        (method url-fetch)
@@ -69737,61 +74223,60 @@ implementation that works everywhere, even WASM!")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "1k9caa048d8x9asksjaf62xkpv0m1wsmw94h29k3csybq9frlx07"))))
+        (base32 "1r7xlmgnifhxbfyid8vkcnd5ip16gx9hf89d1l0lzrpc4q1rdk10"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-zstd-safe" ,rust-zstd-safe-4))))
+       (("rust-zstd-safe" ,rust-zstd-safe-5))))
     (home-page "https://github.com/gyscos/zstd-rs")
     (synopsis "Binding to the zstd compression library")
     (description
      "This package provides a binding to the Zstd compression library.")
     (license license:expat)))
 
-(define-public rust-zstd-0.8
+(define-public rust-zstd-0.9
   (package
-    (inherit rust-zstd-0.9)
+    (inherit rust-zstd-0.11)
     (name "rust-zstd")
-    (version "0.8.3+zstd.1.5.0")
+    (version "0.9.0+zstd.1.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "zstd" version))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1gy2rc3hmqpzfkh9f5d395lhwjk8qwpll3gb73bznn2agd60k9sy"))))
+        (base32
+         "1k9caa048d8x9asksjaf62xkpv0m1wsmw94h29k3csybq9frlx07"))))
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-futures" ,rust-futures-0.1)
-        ("rust-tokio-io" ,rust-tokio-io-0.1)
-        ("rust-zstd-safe" ,rust-zstd-safe-4))))))
+       (("rust-zstd-safe" ,rust-zstd-safe-4))))))
 
-(define-public rust-zstd-0.6
+(define-public rust-zstd-0.8
   (package
-    (inherit rust-zstd-0.8)
+    (inherit rust-zstd-0.9)
     (name "rust-zstd")
-    (version "0.6.1+zstd.1.4.9")
+    (version "0.8.3+zstd.1.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "zstd" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "18riavdrq4cy10ygvrxby87nxyxbazpy53qvavc0bwlqyxvmxrax"))))
+        (base32 "1gy2rc3hmqpzfkh9f5d395lhwjk8qwpll3gb73bznn2agd60k9sy"))))
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-futures" ,rust-futures-0.1)
         ("rust-tokio-io" ,rust-tokio-io-0.1)
-        ("rust-zstd-safe" ,rust-zstd-safe-3))))))
+        ("rust-zstd-safe" ,rust-zstd-safe-4))))))
 
-(define-public rust-zstd-safe-4
+(define-public rust-zstd-safe-5
   (package
     (name "rust-zstd-safe")
-    (version "4.1.1+zstd.1.5.0")
+    (version "5.0.2+zstd.1.5.2")
     (source
      (origin
        (method url-fetch)
@@ -69799,13 +74284,13 @@ implementation that works everywhere, even WASM!")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0yghr94blhnfigzsynm2km3g93886z49612y7rh07c4kqpr90769"))))
+        (base32 "1nzl4q3xl68pq58g9xlym299bvjdii8cl7ix595ym7jgw22maahx"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
-        ("rust-zstd-sys" ,rust-zstd-sys-1))))
+        ("rust-zstd-sys" ,rust-zstd-sys-2))))
     (home-page "https://github.com/gyscos/zstd-rs")
     (synopsis "Safe low-level bindings to the zstd compression library")
     (description
@@ -69813,6 +74298,25 @@ implementation that works everywhere, even WASM!")
 library.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-zstd-safe-4
+  (package
+    (inherit rust-zstd-safe-5)
+    (name "rust-zstd-safe")
+    (version "4.1.1+zstd.1.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "zstd-safe" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0yghr94blhnfigzsynm2km3g93886z49612y7rh07c4kqpr90769"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-zstd-sys" ,rust-zstd-sys-1))))))
+
 (define-public rust-zstd-safe-3
   (package
     (inherit rust-zstd-safe-4)
@@ -69832,10 +74336,10 @@ library.")
         ("rust-zstd-sys" ,rust-zstd-sys-1))))))
 
 ;; TODO: Unbundle zstd.
-(define-public rust-zstd-sys-1
+(define-public rust-zstd-sys-2
   (package
     (name "rust-zstd-sys")
-    (version "1.6.1+zstd.1.5.0")
+    (version "2.0.7+zstd.1.5.4")
     (source
      (origin
        (method url-fetch)
@@ -69843,11 +74347,11 @@ library.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0cra76lginz5k659rch7axg5nyms67yffygr3k7ic7a3lb3j0lb1"))))
+        (base32 "1xf7ng97h6h89bvisllj05vapkqcacn88y9bfm6jjmgyl8xrql4l"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-bindgen" ,rust-bindgen-0.58)
+       (("rust-bindgen" ,rust-bindgen-0.63)
         ("rust-cc" ,rust-cc-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
@@ -69857,750 +74361,52 @@ library.")
 compression library.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-packed-struct
-  (package
-    (name "rust-packed-struct")
-    (version "0.3.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "packed_struct" version))
-        (file-name
-	  (string-append name "-" version ".tar.gz"))
-        (sha256
-	  (base32
-	    "10b2fmxchmcigwagnhi42frj74dl02wyv0xwmbr9839qfh7gijlh"))))
-    (build-system cargo-build-system)
-    (arguments
-      `(#:cargo-inputs
-        (("rust-serde" ,rust-serde-1)
-         ("rust-serde-derive" ,rust-serde-derive-1))))
-    (home-page "http://www.hashmismatch.net/libraries/packed-struct/")
-    (synopsis "Binary-level structure packing and unpacking generator")
-    (description "This package provides bit-level packing an unpacking
-of structs.  Tkhe library provides a meta-programming approach, using
-attributes to define fields and how they should be packed.  The resulting
-trait implementations provide safe packing, unpacking and runtime debugging
-formatters with per-field documentation generated for each structure.
-
-@itemize
-@item Plain Rust structures, decorated with attributes
-@item MSB or LSB integers of user-defined bit widths
-@item Primitive enum code generation helper
-@item MSB0 or LSB0 bit positioning
-@item Documents the field's packing table
-@item Runtime packing visualization
-@item Nested packed types
-@item Arrays of packed structures as fields
-@item Reserved fields, their bits are always 0 or 1
-@end itemize")
-    ;; User can choose either license.
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-piper-0.1
-  (package
-    (name "rust-piper")
-    (version "0.1.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "piper" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "062zdv9w7l5037g113bh7r72wmygz92ajzr0z41v3bqdd3x8nq01"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:tests? #false
-       #:cargo-inputs
-       (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
-        ("rust-futures-io" ,rust-futures-io-0.3)
-        ("rust-futures-sink" ,rust-futures-sink-0.3)
-        ("rust-futures-util" ,rust-futures-util-0.3))
-       #:cargo-development-inputs
-       (("rust-futures" ,rust-futures-0.3))))
-    (home-page "https://crates.io/crates/piper")
-    (synopsis "Async pipes, channels, mutexes, and more")
-    (description
-     "This crate provides async pipes, channels, mutexes, and more.")
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-pledge-0.3
+;; TODO: Unbundle zstd.
+(define-public rust-zstd-sys-1
   (package
-    (name "rust-pledge")
-    (version "0.3.1")
+    (inherit rust-zstd-sys-2)
+    (name "rust-zstd-sys")
+    (version "1.6.1+zstd.1.5.0")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "pledge" version))
+       (uri (crate-uri "zstd-sys" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1rgbnvl97ks25aanxm680687df6li6y8h3f5mvdw3806rwz8xcg2"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
-    (home-page "https://github.com/i80and/pledge-rs")
-    (synopsis "Rust binding to OpenBSD's pledge(2) interface")
-    (description
-     "This package provides Rust bindings to OpenBSD's pledge(2) interface.")
-    (license license:expat)))
-
-(define-public rust-ptr-meta-derive-0.1
-  (package
-    (name "rust-ptr-meta-derive")
-    (version "0.1.4")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "ptr_meta_derive" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1b69cav9wn67cixshizii0q5mlbl0lihx706vcrzm259zkdlbf0n"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-proc-macro2" ,rust-proc-macro2-1)
-        ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-1))))
-    (home-page "https://github.com/djkoloski/ptr_meta")
-    (synopsis "Macros for the ptr_meta fat pointer metadata API")
-    (description "This package provides macros for the ptr_meta API.")
-    (license license:expat)))
-
-(define-public rust-ptr-meta-0.1
-  (package
-    (name "rust-ptr-meta")
-    (version "0.1.4")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "ptr_meta" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1wd4wy0wxrcays4f1gy8gwcmxg7mskmivcv40p0hidh6xbvwqf07"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-ptr-meta-derive" ,rust-ptr-meta-derive-0.1))))
-    (home-page "https://github.com/djkoloski/ptr_meta")
-    (synopsis "Manipulate metadata of fat pointers")
-    (description "This package allows manipulating the metadata of fat
-pointers:
-
-@itemize
-@item Naming the metadata’s type (as an associated type)
-@item Extracting metadata from a pointer
-@item Reconstructing a pointer from a data pointer and metadata
-@item Representing vtables, the metadata for trait objects, as a type with
-  some limited API.
-@end itemize
-")
-    (license license:expat)))
-
-(define-public rust-ptree-0.4
-  (package
-    (name "rust-ptree")
-    (version "0.4.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "ptree" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0w72k0svlj8ihbf7m7ivay7rpv38xz9ad5a06isyqsiiddwq1pm0"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-ansi-term" ,rust-ansi-term-0.12)
-        ("rust-atty" ,rust-atty-0.2)
-        ("rust-config" ,rust-config-0.11)
-        ("rust-directories" ,rust-directories-4)
-        ("rust-petgraph" ,rust-petgraph-0.6)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-serde-value" ,rust-serde-value-0.7)
-        ("rust-tint" ,rust-tint-1))))
-    (home-page "https://gitlab.com/Noughmad/ptree")
-    (synopsis "Pretty-print tree-like structures")
-    (description
-     "The @code{ptree} crate supports output formatting due to a user-provided
-configuration file and/or environment variables.")
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-windows-0.9
-  (package
-    (name "rust-windows")
-    (version "0.9.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "windows" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0zy9jmhkhmsng7l9qiznxpdh5ns303s875p5kf6a5q9ym0rka7rn"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-const-sha1" ,rust-const-sha1-0.2)
-        ("rust-windows-gen" ,rust-windows-gen-0.9)
-        ("rust-windows-macros" ,rust-windows-macros-0.9))))
-    (home-page "https://github.com/microsoft/windows-rs")
-    (synopsis "Rust for Windows")
-    (description "Rust for Windows")
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-windows-0.32
-  (package
-    (inherit rust-windows-0.9)
-    (name "rust-windows")
-    (version "0.32.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1v0h5b5g1ak2f2a6gkgjqgrqkkbdcfmf02nfmmj27g4nj3dzdvgv"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-windows-implement" ,rust-windows-implement-0.32)
-        ("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.32)
-        ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.32)
-        ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.32)
-        ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.32)
-        ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.32))))))
-
-(define-public rust-windows-aarch64-gnullvm-0.42
-  (package
-    (name "rust-windows-aarch64-gnullvm")
-    (version "0.42.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows-aarch64-gnullvm" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "17m1p753qk02r25afg31dxym4rpy7kpr0z8nwl5f1jzhyrqsmlj1"))))
-    (build-system cargo-build-system)
-    (arguments
-     (list #:skip-build? #t))
-    (home-page "https://github.com/microsoft/windows-rs")
-    (synopsis "Code gen support for the windows crate")
-    (description
-     "This package provides code gen support for the windows crate.")
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-windows-aarch64-msvc-0.42
-  (package
-    (name "rust-windows-aarch64-msvc")
-    (version "0.42.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows-aarch64-msvc" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1d6d9ny0yl5l9vvagydigvkfcphzk2aygchiccywijimb8pja3yx"))))
-    (build-system cargo-build-system)
-    (arguments
-     (list #:skip-build? #t))
-    (home-page "https://github.com/microsoft/windows-rs")
-    (synopsis "Code gen support for the windows crate")
-    (description "This package provides code gen support for the windows
-crate.")
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-windows-aarch64-msvc-0.36
-  (package
-    (inherit rust-windows-aarch64-msvc-0.42)
-    (name "rust-windows-aarch64-msvc")
-    (version "0.36.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "windows_aarch64_msvc" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0ixaxs2c37ll2smprzh0xq5p238zn8ylzb3lk1zddqmd77yw7f4v"))))))
-
-(define-public rust-windows-aarch64-msvc-0.32
-  (package
-    (inherit rust-windows-aarch64-msvc-0.36)
-    (name "rust-windows-aarch64-msvc")
-    (version "0.32.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows_aarch64_msvc" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1x8bnafz15ksgpbjbgk1l1j2jx4rq4a2ylzcahb1jhy4n59jgsfq"))))))
-
-(define-public rust-windows-aarch64-msvc-0.28
-  (package
-    (inherit rust-windows-aarch64-msvc-0.32)
-    (name "rust-windows-aarch64-msvc")
-    (version "0.28.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows_aarch64_msvc" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1hpk0n2z0jzzvwlvs98b75sa4q920953nqfc119rv19nwm0mlsaj"))))))
-
-(define-public rust-windows-i686-gnu-0.42
-  (package
-    (name "rust-windows-i686-gnu")
-    (version "0.42.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows_i686_gnu" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1rsxdjp50nk38zfd1dxj12i2qmhpvxsm6scdq8v1d10ncygy3spv"))))
-    (build-system cargo-build-system)
-    (arguments
-     (list #:skip-build? #t))
-    (home-page "https://github.com/microsoft/windows-rs")
-    (synopsis "Code gen support for the windows crate")
-    (description
-     "This package provides code gen support for the windows crate.")
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-windows-i686-gnu-0.36
-  (package
-    (inherit rust-windows-i686-gnu-0.42)
-    (name "rust-windows-i686-gnu")
-    (version "0.36.1")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows_i686_gnu" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1dm3svxfzamrv6kklyda9c3qylgwn5nwdps6p0kc9x6s077nq3hq"))))))
-
-(define-public rust-windows-i686-gnu-0.32
-  (package
-    (inherit rust-windows-i686-gnu-0.36)
-    (name "rust-windows-i686-gnu")
-    (version "0.32.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows_i686_gnu" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "05g6kpdfxwxnw2gn1nrd7bsf5997rci0k3h3nqby168ph5l1qwba"))))))
-
-(define-public rust-windows-i686-gnu-0.28
-  (package
-    (inherit rust-windows-i686-gnu-0.32)
-    (name "rust-windows-i686-gnu")
-    (version "0.28.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows_i686_gnu" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "12hx7qpsjg9p7jggfcplqa3mf1mzr7k7s5ybzqwg1zmg4fn2aizm"))))))
-
-(define-public rust-windows-i686-msvc-0.42
-  (package
-    (name "rust-windows-i686-msvc")
-    (version "0.42.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows_i686_msvc" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0ii2hrsdif2ms79dfiyfzm1n579jzj42ji3fpsxd57d3v9jjzhc4"))))
-    (build-system cargo-build-system)
-    (arguments
-     (list #:skip-build? #t))
-    (home-page "https://github.com/microsoft/windows-rs")
-    (synopsis "Code gen support for the windows crate")
-    (description
-     "This package provides code gen support for the windows crate.")
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-windows-i686-msvc-0.36
-  (package
-    (inherit rust-windows-i686-msvc-0.42)
-    (name "rust-windows-i686-msvc")
-    (version "0.36.1")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows_i686_msvc" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "097h2a7wig04wbmpi3rz1akdy4s8gslj5szsx8g2v0dj91qr3rz2"))))))
-
-(define-public rust-windows-i686-msvc-0.32
-  (package
-    (inherit rust-windows-i686-msvc-0.36)
-    (name "rust-windows-i686-msvc")
-    (version "0.32.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows_i686_msvc" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0wj1wi01fc8hrasbakjcq8y5a7ynw9l2mcw08svmsq823axi2v0l"))))))
-
-(define-public rust-windows-i686-msvc-0.28
-  (package
-    (inherit rust-windows-i686-msvc-0.32)
-    (name "rust-windows-i686-msvc")
-    (version "0.28.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows_i686_msvc" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0r0z8s1wcdwd20azsdfilf2a6bz68xkavl990wy64hyc8f51bmai"))))))
-
-(define-public rust-windows-implement-0.32
-  (package
-    (name "rust-windows-implement")
-    (version "0.32.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows-implement" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0f3lnjs9rlihin9cjf9y7np1x15c0v09v0cwlw1n7c30145xmciz"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-syn" ,rust-syn-1)
-        ("rust-windows-tokens" ,rust-windows-tokens-0.32))))
-    (home-page "https://github.com/microsoft/windows-rs")
-    (synopsis "Implement macro for the windows crate")
-    (description "This package provides the implement macro for the windows
-crate.")
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-windows-sys-0.42
-  (package
-    (name "rust-windows-sys")
-    (version "0.42.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows-sys" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "19waf8aryvyq9pzk0gamgfwjycgzk4gnrazpfvv171cby0h1hgjs"))))
-    (build-system cargo-build-system)
-    (arguments
-     (list #:skip-build? #t
-           #:cargo-inputs
-           `(("rust-windows-aarch64-gnullvm" ,rust-windows-aarch64-gnullvm-0.42)
-             ("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.42)
-             ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.42)
-             ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.42)
-             ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.42)
-             ("rust-windows-x86-64-gnullvm" ,rust-windows-x86-64-gnullvm-0.42)
-             ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.42))))
-    (home-page "https://github.com/microsoft/windows-rs")
-    (synopsis "Rust for Windows")
-    (description "The windows crate lets you call any Windows API past,
-present, and future using code generated on the fly directly from the metadata
-describing the API and right into your Rust package where you can call them as
-if they were just another Rust module.")
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-windows-sys-0.36
-  (package
-    (inherit rust-windows-sys-0.42)
-    (name "rust-windows-sys")
-    (version "0.36.1")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows-sys" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1lmqangv0zg1l46xiq7rfnqwsx8f8m52mqbgg2mrx7x52rd1a17a"))))
-    (arguments
-     (list #:skip-build? #t
-           #:cargo-inputs
-           `(("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.36)
-             ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.36)
-             ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.36)
-             ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.36)
-             ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.36))))))
-
-(define-public rust-windows-sys-0.28
-  (package
-    (inherit rust-windows-sys-0.36)
-    (name "rust-windows-sys")
-    (version "0.28.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "windows-sys" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1xkghf343nll9i1yvha1a4spf53mnb5knzmnqj9adgsw5mh3kjl2"))))
-    (arguments
-     (list #:skip-build? #t
-           #:cargo-inputs
-           `(("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.28)
-             ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.28)
-             ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.28)
-             ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.28)
-             ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.28))))))
-
-(define-public rust-windows-gen-0.9
-  (package
-    (name "rust-windows-gen")
-    (version "0.9.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "windows_gen" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0lh492px26rrna0harikyy4p7nk520pw2lv0dczp4n2xa6y4s5al"))))
-    (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t #:cargo-inputs (("rust-syn" ,rust-syn-1))))
-    (home-page "https://github.com/microsoft/windows-rs")
-    (synopsis "Code gen support for the windows crate")
-    (description "Code gen support for the windows crate")
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-windows-macros-0.9
-  (package
-    (name "rust-windows-macros")
-    (version "0.9.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "windows_macros" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0xivsg3lf023hs83xiab2k40fmrl11nbihcdrdkc8pc4ab398xqg"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-syn" ,rust-syn-1) ("rust-windows-gen" ,rust-windows-gen-0.9))))
-    (home-page "https://github.com/microsoft/windows-rs")
-    (synopsis "Macros for the windows crate")
-    (description "Macros for the windows crate")
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-windows-tokens-0.32
-  (package
-    (name "rust-windows-tokens")
-    (version "0.32.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows-tokens" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1rrqbxjkyk6h6p6jjzbcxr0mhqbz0yfndd2s2dsgmbl75f4yy7gn"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t))
-    (home-page "https://github.com/microsoft/windows-rs")
-    (synopsis "Code gen support for the windows crate")
-    (description "This package provides code generation support for the
-windows crate.")
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-windows-x86-64-gnu-0.42
-  (package
-    (name "rust-windows-x86-64-gnu")
-    (version "0.42.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows_x86_64_gnu" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1vdh8k5a4m6pfkc5gladqznyqxgapkjm0qb8iwqvqb1nnlhinyxz"))))
-    (build-system cargo-build-system)
+        (base32 "0cra76lginz5k659rch7axg5nyms67yffygr3k7ic7a3lb3j0lb1"))))
     (arguments
-     (list #:skip-build? #t))
-    (home-page "https://github.com/microsoft/windows-rs")
-    (synopsis "Code gen support for the windows crate")
-    (description
-     "This package provides code gen support for the windows crate.")
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-windows-x86-64-gnu-0.36
-  (package
-    (inherit rust-windows-x86-64-gnu-0.42)
-    (name "rust-windows-x86-64-gnu")
-    (version "0.36.1")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows_x86_64_gnu" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1qfrck3jnihymfrd01s8260d4snql8ks2p8yaabipi3nhwdigkad"))))))
-
-(define-public rust-windows-x86-64-gnu-0.32
-  (package
-    (inherit rust-windows-x86-64-gnu-0.36)
-    (name "rust-windows-x86-64-gnu")
-    (version "0.32.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows_x86_64_gnu" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1g34xhcayig9sndq3555w95q6lr7jr839zxv6l365ijlfhpv24n9"))))))
-
-(define-public rust-windows-x86-64-gnu-0.28
-  (package
-    (inherit rust-windows-x86-64-gnu-0.32)
-    (name "rust-windows-x86-64-gnu")
-    (version "0.28.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows_x86_64_gnu" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0m79bhdr54g4h4wh2q8wkjlkypb5wvl7xzhc2csiaqb5yl4z8cdw"))))))
-
-(define-public rust-windows-x86-64-gnullvm-0.42
-  (package
-    (name "rust-windows-x86-64-gnullvm")
-    (version "0.42.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows-x86-64-gnullvm" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0a10rns9b07m9snlr97iqxq42zi9ai547gb5fqlv7vihpb92bm89"))))
-    (build-system cargo-build-system)
-    (arguments (list #:skip-build? #t))
-    (home-page "https://github.com/microsoft/windows-rs")
-    (synopsis "Code gen support for the windows crate")
-    (description
-     "This package provides code gen support for the windows crate.")
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-windows-x86-64-msvc-0.42
-  (package
-    (name "rust-windows-x86-64-msvc")
-    (version "0.42.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows_x86_64_msvc" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1xdnvhg8yj4fgjy0vkrahq5cbgfpcd7ak2bdv8s5lwjrazc0j07l"))))
-    (build-system cargo-build-system)
-    (arguments (list #:skip-build? #t))
-    (home-page "https://github.com/microsoft/windows-rs")
-    (synopsis "Code gen support for the windows crate")
-    (description
-     "This package provides code gen support for the windows crate.")
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-windows-x86-64-msvc-0.36
-  (package
-    (inherit rust-windows-x86-64-msvc-0.42)
-    (name "rust-windows-x86-64-msvc")
-    (version "0.36.1")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows_x86_64_msvc" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "103n3xijm5vr7qxr1dps202ckfnv7njjnnfqmchg8gl5ii5cl4f8"))))))
-
-(define-public rust-windows-x86-64-msvc-0.32
-  (package
-    (inherit rust-windows-x86-64-msvc-0.36)
-    (name "rust-windows-x86-64-msvc")
-    (version "0.32.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "windows_x86_64_msvc" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "05l392h518dxn808dc1zkv6d0r9z38q68qqc0ix9fs9741v28jjh"))))))
+     `(#:cargo-inputs
+       (("rust-bindgen" ,rust-bindgen-0.58)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))))
 
-(define-public rust-windows-x86-64-msvc-0.28
+(define-public rust-zune-inflate-0.2
   (package
-    (inherit rust-windows-x86-64-msvc-0.32)
-    (name "rust-windows-x86-64-msvc")
-    (version "0.28.0")
+    (name "rust-zune-inflate")
+    (version "0.2.50")
     (source (origin
               (method url-fetch)
-              (uri (crate-uri "windows_x86_64_msvc" version))
+              (uri (crate-uri "zune-inflate" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
-               (base32
-                "17z8q25pd3dp6b84qm9nlayd3ym78sbryxlqmgcxvz9vpmy8qarz"))))))
-
-(define-public rust-xmltree-0.10
-  (package
-    (name "rust-xmltree")
-    (version "0.10.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "xmltree" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1jqzwhr1a5cknflsshhhjlllmd1xi04qdkjsls2bnmv5mxgagn6p"))))
+               (base32 "0h3d46jfyraxzl7kcgr2zpqjmisw72lc1p44b4q9r0rhcbglb4jq"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-indexmap" ,rust-indexmap-1)
-        ("rust-xml-rs" ,rust-xml-rs-0.8))))
-    (home-page "https://github.com/eminence/xmltree-rs")
-    (synopsis "Parse an XML file into a simple tree-like structure")
-    (description "This package provides a small library for parsing an XML
-file into an in-memory tree structure.")
-    (license license:expat)))
-
-(define-public rust-xmltree-0.8
-  (package
-    (inherit rust-xmltree-0.10)
-    (name "rust-xmltree")
-    (version "0.8.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "xmltree" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0w0y0jz7lhxg05ca6ngfj0lj8sbrjh4vaqv13q7qaqkhs7lsx3pz"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-indexmap" ,rust-indexmap-1)
-        ("rust-xml-rs" ,rust-xml-rs-0.7))))))
+       (("rust-simd-adler32" ,rust-simd-adler32-0.3))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.4)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-libdeflater" ,rust-libdeflater-0.11))))
+    (native-inputs
+     (list cmake-minimal))
+    (home-page "https://github.com/etemesi254/zune-image/tree/main/zune-inflate")
+    (synopsis "Deflate decompressor in Pure Rust")
+    (description "This package provides a heavily optimized deflate decompressor
+in Pure Rust.")
+    (license (list license:expat license:asl2.0))))
 
 ;;;
 ;;; Avoid adding new packages to the end of this file. To reduce the chances
diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm
index 82050d9ac5..a8d8a86ea8 100644
--- a/gnu/packages/gdb.scm
+++ b/gnu/packages/gdb.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015, 2019, 2020, 2023 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2015, 2016, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2019, 2021, 2023 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2020, 2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
@@ -45,17 +45,19 @@
   #:use-module ((guix build utils) #:select (alist-replace))
   #:use-module (srfi srfi-1))
 
-(define-public gdb-11
+(define-public gdb/pinned
+  ;; This is the fixed version that packages depend on.  Update it rarely
+  ;; enough to avoid massive rebuilds.
   (package
     (name "gdb")
-    (version "11.1")
+    (version "12.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/gdb/gdb-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "151z6d0265hv9cgx9zqqa4bd6vbp20hrljhd6bxl7lr0gd0crkyc"))))
+                "1vczsqcbh5y0gx7qrclpna0qzx26sk7lra6y8qzxam1biyzr65qf"))))
     (build-system gnu-build-system)
     (outputs '("out" "debug"))
     (arguments
@@ -140,15 +142,12 @@ doing while it runs or what it was doing just before a crash.  It allows you
 to specify the runtime conditions, to define breakpoints, and to change how
 the program is running to try to fix bugs.  It can be used to debug programs
 written in C, C++, Ada, Objective-C, Pascal and more.")
-    (license gpl3+)
-
-    ;; GDB 11 now fails to build on GNU/Hurd (undefined references to process
-    ;; RPC stubs).
-    (supported-systems (fold delete %supported-systems %hurd-systems))))
+    (properties `((hidden? . #t)))
+    (license gpl3+)))
 
 (define-public gdb-12
   (package
-    (inherit gdb-11)
+    (inherit gdb/pinned)
     (version "12.1")
     (source (origin
               (method url-fetch)
@@ -157,14 +156,7 @@ written in C, C++, Ada, Objective-C, Pascal and more.")
               (sha256
                (base32
                 "1vczsqcbh5y0gx7qrclpna0qzx26sk7lra6y8qzxam1biyzr65qf"))))
-
-    ;; GDB 12 builds fine on GNU/Hurd.
-    (supported-systems %supported-systems)))
-
-(define-public gdb/pinned
-  ;; This is the fixed version that packages depend on.  Update it rarely
-  ;; enough to avoid massive rebuilds.
-  gdb-11)
+    (properties '())))
 
 (define-public gdb
   ;; The "default" version.
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index b3c954d849..754bb668ba 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3477,7 +3477,7 @@ for dealing with different structured file formats.")
 (define-public librsvg
   (package
     (name "librsvg")
-    (version "2.54.4")
+    (version "2.54.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/librsvg/"
@@ -3485,7 +3485,7 @@ for dealing with different structured file formats.")
                                   "librsvg-" version ".tar.xz"))
               (sha256
                (base32
-                "0cs8qbn2khibb5w1r0f6cibfmkfb7zg713526vhc0hva7wj2l5ga"))
+                "0vmfgihhf35bxn7giqiskgsflr0zxp6xyy9aynhiyk9j8l7ij0sg"))
               (modules '((guix build utils)))
               (snippet
                '(begin (delete-file-recursively "vendor")))))
@@ -3566,6 +3566,17 @@ for dealing with different structured file formats.")
               ;; successfully with the '--locked' flag.
               (substitute* '("Makefile.am" "Makefile.in")
                 (("--locked") ""))))
+          (add-after 'unpack 'loosen-test-boundaries
+            (lambda _
+              ;; Increase reftest tolerance a bit to account for different
+              ;; harfbuzz, pango, etc.
+              (setenv "RSVG_TEST_TOLERANCE" "20")
+              ;; These two tests even fail after loosening the tolerance.
+              (for-each delete-file
+                        '("tests/fixtures/reftests/bugs/730-font-scaling.svg"
+                          "tests/fixtures/reftests/bugs/730-font-scaling-ref.png"
+                          "tests/fixtures/reftests/svg1.1/text-text-03-b.svg"
+                          "tests/fixtures/reftests/svg1.1/text-text-03-b-ref.png"))))
           (add-before 'configure 'pre-configure
             (lambda* (#:key outputs #:allow-other-keys)
               (substitute* "gdk-pixbuf-loader/Makefile.in"
@@ -3685,7 +3696,7 @@ diagrams.")
   ;; Since librsvg 2.50 depends on Rust, and Rust is only correctly supported
   ;; on x86_64, aarch64 and riscv64 so far, use the ancient C version on other
   ;; platforms (FIXME).
-  (if (string-prefix? "x86_64-" system)
+  (if (supported-package? librsvg)
       librsvg
       librsvg-2.40))
 
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index dad1944b1a..ca41612e90 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -705,8 +705,10 @@ highlighting and other features typical of a source code editor.")
        (modify-phases %standard-phases
          (add-before 'configure 'disable-failing-tests
            (lambda _
-             (substitute* "tests/meson.build"
-               (("\\[ 'pixbuf-fail', \\['conform', 'slow'\\], \\],")
+             ;; The test for the fix for issue 205 causes failures.
+             ;; https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/issues/215
+             (substitute* "tests/pixbuf-jpeg.c"
+               ((".*/pixbuf/jpeg/issue205.*")
                 ""))))
          ;; The slow tests take longer than the specified timeout.
          ,@(if (target-arm? (%current-system))
diff --git a/gnu/packages/patches/rust-adblock-ignore-live-tests.patch b/gnu/packages/patches/rust-adblock-ignore-live-tests.patch
deleted file mode 100644
index fc7f2858ff..0000000000
--- a/gnu/packages/patches/rust-adblock-ignore-live-tests.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From b83b5b453d3f7883ef4c12f84a7045486957c709 Mon Sep 17 00:00:00 2001
-From: Petr Hodina <phodina@protonmail.com>
-Date: Tue, 9 Nov 2021 17:02:54 +0100
-Subject: [PATCH] Ignore live tests.
-
-
-diff --git a/tests/live.rs b/tests/live.rs
-index b1a19fc..6bd4685 100644
---- a/tests/live.rs
-+++ b/tests/live.rs
-@@ -140,6 +140,7 @@ fn get_blocker_engine_deserialized_ios() -> Engine {
- }
-
- #[test]
-+#[ignore]
- fn check_live_specific_urls() {
-     let mut engine = get_blocker_engine();
-     {
-@@ -176,6 +177,7 @@ fn check_live_specific_urls() {
- }
-
- #[test]
-+#[ignore]
- fn check_live_deserialized_specific_urls() {
-     let mut engine = get_blocker_engine_deserialized();
-     {
-@@ -201,6 +203,7 @@ fn check_live_deserialized_specific_urls() {
- }
-
- #[test]
-+#[ignore]
- fn check_live_from_filterlists() {
-     let engine = get_blocker_engine();
-     let requests = load_requests();
-@@ -214,6 +217,7 @@ fn check_live_from_filterlists() {
- }
-
- #[test]
-+#[ignore]
- fn check_live_deserialized_file() {
-     let engine = get_blocker_engine_deserialized();
-     let requests = load_requests();
-@@ -243,6 +247,7 @@ fn check_live_deserialized_ios() {
-
- #[cfg(feature = "resource_assembler")]
- #[test]
-+#[ignore]
- fn check_live_redirects() {
-     use adblock::resources::resource_assembler::assemble_web_accessible_resources;
-
-@@ -278,6 +283,7 @@ fn check_live_redirects() {
- }
-
- #[test]
-+#[ignore]
- /// Ensure that two different engines loaded from the same textual filter set serialize to
- /// identical buffers.
- fn stable_serialization() {
-@@ -291,6 +297,7 @@ fn stable_serialization() {
- }
-
- #[test]
-+#[ignore]
- /// Ensure that one engine's serialization result can be exactly reproduced by another engine after
- /// deserializing from it.
- fn stable_serialization_through_load() {
---
-2.33.1
-
diff --git a/gnu/packages/patches/rust-webbrowser-remove-unsupported-os.patch b/gnu/packages/patches/rust-webbrowser-remove-unsupported-os.patch
new file mode 100644
index 0000000000..9fea1e1665
--- /dev/null
+++ b/gnu/packages/patches/rust-webbrowser-remove-unsupported-os.patch
@@ -0,0 +1,24 @@
+--- Cargo.toml	2023-05-07 13:39:13.029066693 +0100
++++ Cargo.toml	2023-05-07 13:39:22.545138206 +0100
+@@ -67,21 +67,3 @@
+ [target."cfg(target_arch = \"wasm32\")".dependencies.web-sys]
+ version = "0.3"
+ features = ["Window"]
+-
+-[target."cfg(target_os = \"android\")".dependencies.jni]
+-version = "0.21"
+-
+-[target."cfg(target_os = \"android\")".dependencies.ndk-context]
+-version = "0.1"
+-
+-[target."cfg(target_os = \"android\")".dev-dependencies.ndk-glue]
+-version = ">= 0.3, <= 0.7"
+-
+-[target."cfg(target_os = \"ios\")".dependencies.objc]
+-version = "0.2.7"
+-
+-[target."cfg(target_os = \"ios\")".dependencies.raw-window-handle]
+-version = "0.5.0"
+-
+-[target."cfg(target_os = \"macos\")".dependencies.core-foundation]
+-version = "0.9"
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b7d4d9ff2d..4f48d80eb6 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2015 Omar Radwan <toxemicsquire4@gmail.com>
 ;;; Copyright © 2015 Pierre-Antoine Rault <par@rigelk.eu>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015-2023 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015, 2016, 2020 Christine Lemmer-Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 ;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
@@ -166,6 +166,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 crypto)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages dbm)
@@ -267,6 +268,7 @@
   #:use-module (guix gexp)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system cargo)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system pyproject)
   #:use-module (guix build-system python)
@@ -2688,6 +2690,99 @@ a library.")
     (description "DiskCache is a disk and file backed persistent cache.")
     (license license:asl2.0)))
 
+(define-public python-orjson
+  (package
+    (name "python-orjson")
+    (version "3.8.8")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "orjson" version))
+              (sha256
+               (base32
+                "1nn617pzn8smjkf7j593ybq16qfnj53bla52qjwzzrms4fjxg5n0"))))
+    (build-system cargo-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'install 'build-python-module
+            (lambda _
+              ;; We don't use maturin.
+              (delete-file "pyproject.toml")
+              (call-with-output-file "pyproject.toml"
+                (lambda (port)
+                  (format port "\
+[build-system]
+build-backend = 'setuptools.build_meta'
+requires = ['setuptools']
+")))
+              (call-with-output-file "setup.cfg"
+                (lambda (port)
+                  (format port "\
+
+[metadata]
+name = orjson
+version = '~a'
+
+[options]
+packages = find:
+
+[options.packages.find]
+exclude =
+  src
+  integration
+  test
+  Cargo.toml
+" #$version)))
+              ;; ZIP does not support timestamps before 1980.
+              (setenv "SOURCE_DATE_EPOCH" "315532800")
+              (invoke "python" "-m" "build" "--wheel" "--no-isolation" ".")))
+          (add-after 'build-python-module 'install-python-module
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((whl (car (find-files "dist" "\\.whl$"))))
+                (invoke "pip" "--no-cache-dir" "--no-input"
+                        "install" "--no-deps" "--prefix" #$output whl))))
+          (add-after 'install-python-module 'install-python-library
+            (lambda _
+              (let ((site (string-append #$output "/lib/python"
+                                         #$(version-major+minor
+                                            (package-version python))
+                                         "/site-packages")))
+                (mkdir-p site)
+                (copy-file "target/release/liborjson.so"
+                           (string-append site "/orjson.so"))))))
+      #:cargo-inputs
+      `(("rust-ahash" ,rust-ahash-0.8)
+        ("rust-arrayvec" ,rust-arrayvec-0.7)
+        ("rust-associative-cache" ,rust-associative-cache-1)
+        ("rust-beef" ,rust-beef-0.5)
+        ("rust-bytecount" ,rust-bytecount-0.6)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-compact-str" ,rust-compact-str-0.7)
+        ("rust-encoding-rs" ,rust-encoding-rs-0.8)
+        ("rust-itoa" ,rust-itoa-1)
+        ("rust-itoap" ,rust-itoap-1)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-pyo3-ffi" ,rust-pyo3-ffi-0.18)
+        ("rust-ryu" ,rust-ryu-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-simdutf8" ,rust-simdutf8-0.1)
+        ("rust-smallvec" ,rust-smallvec-1))
+      #:install-source? #false))
+    (native-inputs
+     (list python-wrapper
+           python-pypa-build
+           python-wheel))
+    (home-page "https://github.com/ijl/orjson")
+    (synopsis "Python JSON library supporting dataclasses, datetimes, and numpy")
+    (description "Orjson is a fast, correct JSON library for Python.  It
+benchmarks as the fastest Python library for JSON and is more correct than the
+standard @code{json} library or other third-party libraries.  It serializes
+dataclass, datetime, numpy, and UUID instances natively.")
+    ;; Either of these licenses
+    (license (list license:asl2.0 license:expat))))
+
 (define-public python-argparse-addons
   (package
     (name "python-argparse-addons")
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 5c012168ca..8c29969712 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
-;;; Copyright © 2019-2022 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019-2023 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>
@@ -71,6 +71,7 @@
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages pcre)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python-xyz)
@@ -106,6 +107,8 @@
         ("rust-tokio" ,rust-tokio-1)
         ("rust-tokio-rustls" ,rust-tokio-rustls-0.22)
         ("rust-url" ,rust-url-2))))
+    (native-inputs
+     (list perl))
     (home-page "https://github.com/mbrubeck/agate")
     (synopsis "Very simple server for the Gemini hypertext protocol")
     (description
@@ -175,7 +178,7 @@ low-end hardware and serving many concurrent requests.")
        (("rust-serde-bytes" ,rust-serde-bytes-0.11)
         ("rust-serde-derive" ,rust-serde-derive-1))))
     (native-inputs
-     (list pkg-config))
+     (list perl pkg-config))
     (inputs
      (list at-spi2-core
            gtk
@@ -458,7 +461,7 @@ also knows about symlinks, extended attributes, and Git.")
 (define-public fd
   (package
     (name "fd")
-    (version "8.1.1")
+    (version "8.7.0")
     (source
      (origin
        (method url-fetch)
@@ -467,58 +470,71 @@ also knows about symlinks, extended attributes, and Git.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "124a5r8hpk2phs1288jybh34d48yxy44wr7gv5ggchs272gs2jam"))))
+         "186217yyb0znfn4jcc9l3i51fhfyb23lhbm3gg084sdrbj6bdnbg"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-ansi-term" ,rust-ansi-term-0.12)
-        ("rust-anyhow" ,rust-anyhow-1)
+     `(#:cargo-test-flags
+       '("--release"
+         "--"
+         ;; No user 'root' in the build environment.
+         "--skip=test_owner_root")
+       #:install-source? #f
+       #:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-argmax" ,rust-argmax-0.3)
         ("rust-atty" ,rust-atty-0.2)
-        ("rust-clap" ,rust-clap-2)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-clap" ,rust-clap-4)
+        ("rust-clap-complete" ,rust-clap-complete-4)
+        ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
         ("rust-ctrlc" ,rust-ctrlc-3)
-        ("rust-dirs" ,rust-dirs-2)
+        ("rust-dirs-next" ,rust-dirs-next-2)
+        ("rust-faccess" ,rust-faccess-0.2)
         ("rust-globset" ,rust-globset-0.4)
         ("rust-humantime" ,rust-humantime-2)
         ("rust-ignore" ,rust-ignore-0.4)
-        ("rust-jemallocator" ,rust-jemallocator-0.3)
-        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-jemallocator" ,rust-jemallocator-0.5)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-lscolors" ,rust-lscolors-0.7)
+        ("rust-lscolors" ,rust-lscolors-0.13)
+        ("rust-nix" ,rust-nix-0.26)
+        ("rust-normpath" ,rust-normpath-0.3)
+        ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.46)
         ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-once-cell" ,rust-once-cell-1)
         ("rust-regex" ,rust-regex-1)
         ("rust-regex-syntax" ,rust-regex-syntax-0.6)
-        ("rust-users" ,rust-users-0.10)
+        ("rust-users" ,rust-users-0.11)
         ("rust-version-check" ,rust-version-check-0.9))
        #:cargo-development-inputs
        (("rust-diff" ,rust-diff-0.1)
         ("rust-filetime" ,rust-filetime-0.2)
-        ("rust-tempdir" ,rust-tempdir-0.3))
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-test-case" ,rust-test-case-2))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'override-jemalloc
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((jemalloc (assoc-ref inputs "jemalloc")))
+               ;; This flag is needed when not using the bundled jemalloc.
+               ;; https://github.com/tikv/jemallocator/issues/19
+               (setenv "CARGO_FEATURE_UNPREFIXED_MALLOC_ON_SUPPORTED_PLATFORMS" "1")
                (setenv "JEMALLOC_OVERRIDE"
-                       (string-append jemalloc "/lib/libjemalloc.so")))
-             #t))
+                       (string-append jemalloc "/lib/libjemalloc.so")))))
          (add-after 'install 'install-extra
            (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (install-completion
-                     (lambda (completion out-dir)
-                       (for-each
-                        (lambda (f)
-                          (install-file f (string-append out out-dir)))
-                        (find-files "target/release/build/" completion)))))
+             (let ((out (assoc-ref outputs "out")))
+               (invoke "make" "completions")
                ;; Manpages
                (install-file "doc/fd.1" (string-append out "/share/man/man1"))
                ;; Completions
-               (install-completion "^fd.bash$" "/etc/bash_completion.d")
-               (install-completion "^fd.fish$" "/share/fish/vendor_completions.d")
-               (install-completion "^_fd$" "/share/zsh/site-functions")
+               (install-file "autocomplete/fd.bash"
+                             (string-append out "/etc/bash_completion.d"))
+               (install-file "autocomplete/fd.fish"
+                             (string-append out "/share/fish/vendor_completions.d"))
+               (install-file "autocomplete/_fd"
+                             (string-append out "/share/zsh/site-functions"))
                (rename-file (string-append out "/etc/bash_completion.d/fd.bash")
-                            (string-append out "/etc/bash_completion.d/fd"))
-               #t))))))
+                            (string-append out "/etc/bash_completion.d/fd"))))))))
     (inputs (list jemalloc))
     (home-page "https://github.com/sharkdp/fd")
     (synopsis "Simple, fast and user-friendly alternative to find")
@@ -908,6 +924,8 @@ browsers.")
     (build-system cargo-build-system)
     (arguments
      `(#:install-source? #f
+       ;; error[E0463]: can't find crate for `cargo_test_macro`
+       #:tests? #f
        #:cargo-inputs
        (("rust-anyhow" ,rust-anyhow-1)
         ("rust-cargo-metadata" ,rust-cargo-metadata-0.15)
@@ -938,11 +956,17 @@ browsers.")
         ("rust-predicates" ,rust-predicates-2)
         ("rust-snapbox" ,rust-snapbox-0.2)
         ("rust-trycmd" ,rust-trycmd-0.13)
-        ("rust-url" ,rust-url-2))))
+        ("rust-url" ,rust-url-2))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'dont-default-to-vendored-libgit2
+           (lambda _
+             (substitute* "Cargo.toml"
+               ((".*\"vendored-libgit2\".*") "")))))))
     (native-inputs
-     (list pkg-config))
+     (list perl pkg-config))
     (inputs
-     (list libgit2
+     (list libgit2-1.4
            libssh2
            openssl
            zlib))
@@ -1239,7 +1263,7 @@ rebase.")
 (define-public sniffglue
   (package
     (name "sniffglue")
-    (version "0.12.1")
+    (version "0.15.0")
     (source
      (origin
        (method url-fetch)
@@ -1248,7 +1272,7 @@ rebase.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1q1kwkw1hq38qgvc6j4b5l9m85a6lpn1jls4bm27c5kha9cg8l24"))))
+         "038wcjiiay825wc8inmn62flklc1adxskg5fmjhmxqnhwmj1k5gn"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -1256,31 +1280,34 @@ rebase.")
         ("rust-anyhow" ,rust-anyhow-1)
         ("rust-atty" ,rust-atty-0.2)
         ("rust-base64" ,rust-base64-0.13)
+        ("rust-bstr" ,rust-bstr-0.2)
         ("rust-dhcp4r" ,rust-dhcp4r-0.2)
         ("rust-dirs-next" ,rust-dirs-next-2)
         ("rust-dns-parser" ,rust-dns-parser-0.8)
-        ("rust-env-logger" ,rust-env-logger-0.8)
+        ("rust-env-logger" ,rust-env-logger-0.9)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-log" ,rust-log-0.4)
-        ("rust-nix" ,rust-nix-0.20)
-        ("rust-nom" ,rust-nom-6)
+        ("rust-nix" ,rust-nix-0.23)
+        ("rust-nom" ,rust-nom-7)
         ("rust-num-cpus" ,rust-num-cpus-1)
         ("rust-pcap-sys" ,rust-pcap-sys-0.1)
-        ("rust-pktparse" ,rust-pktparse-0.5)
+        ("rust-pktparse" ,rust-pktparse-0.7)
         ("rust-reduce" ,rust-reduce-0.1)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-sha2" ,rust-sha2-0.9)
+        ("rust-sha2" ,rust-sha2-0.10)
         ("rust-structopt" ,rust-structopt-0.3)
-        ("rust-syscallz" ,rust-syscallz-0.15)
-        ("rust-tls-parser" ,rust-tls-parser-0.10)
+        ("rust-syscallz" ,rust-syscallz-0.16)
+        ("rust-tls-parser" ,rust-tls-parser-0.11)
         ("rust-toml" ,rust-toml-0.5)
         ("rust-users" ,rust-users-0.11))
        #:cargo-development-inputs
-       (("rust-boxxy" ,rust-boxxy-0.11))))
+       (("rust-boxxy" ,rust-boxxy-0.12))))
     (inputs
      (list libpcap libseccomp))
+    (native-inputs
+     (list perl))
     (home-page "https://github.com/kpcyrd/sniffglue")
     (synopsis "Secure multithreaded packet sniffer")
     (description
@@ -1653,6 +1680,8 @@ runs a command whenever it detects modifications.")
         ("rust-url" ,rust-url-2)
         ("rust-uuid" ,rust-uuid-0.8)
         ("rust-zeroize" ,rust-zeroize-1))))
+    (native-inputs
+     (list perl))
     (home-page "https://git.tozt.net/rbw")
     (synopsis "Unofficial Bitwarden CLI")
     (description "This package is an unofficial command line client for
@@ -1840,7 +1869,7 @@ support for Rust.")
 (define-public rust-cargo-c
   (package
     (name "rust-cargo-c")
-    (version "0.9.8+cargo-0.60")
+    (version "0.9.16+cargo-0.68")
     (source
       (origin
         (method url-fetch)
@@ -1849,27 +1878,29 @@ support for Rust.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1zdzs3drjr9p6chg32inyi05rfv1c12nkk4bi7qpha12m6rsn26d"))))
+          "0k2sw67dx06b45qpvckbhz00kn2ingd89y53pwlzky72hnzv075v"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-cbindgen" ,rust-cbindgen-0.20)
-        ("rust-cargo" ,rust-cargo-0.60)
-        ("rust-anyhow" ,rust-anyhow-1)
-        ("rust-pretty-env-logger" ,rust-pretty-env-logger-0.4)
-        ("rust-structopt" ,rust-structopt-0.3)
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-cargo" ,rust-cargo-0.68)
+        ("rust-cargo-util" ,rust-cargo-util-0.2)
+        ("rust-cbindgen" ,rust-cbindgen-0.24)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-clap" ,rust-clap-4)
+        ("rust-glob" ,rust-glob-0.3)
+        ("rust-itertools" ,rust-itertools-0.10)
         ("rust-log" ,rust-log-0.4)
-        ("rust-toml" ,rust-toml-0.5)
-        ("rust-cargo-metadata" ,rust-cargo-metadata-0.9)
-        ("rust-semver" ,rust-semver-0.10)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-semver" ,rust-semver-1)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-regex" ,rust-regex-1))))
+        ("rust-toml" ,rust-toml-0.6))))
     (native-inputs
      (list pkg-config))
     (inputs
-     (list curl libgit2-1.3 libssh2 openssl-1.1 zlib))
+     (list curl libgit2 libssh2 openssl zlib))
     (home-page "https://github.com/lu-zero/cargo-c")
     (synopsis "Build and install C-compatible libraries")
     (description
@@ -2123,16 +2154,18 @@ daemon which executes them.")
 (define-public tealdeer
   (package
     (name "tealdeer")
-    (version "1.4.1")
+    (version "1.6.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (crate-uri "tealdeer" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       ;; Completions aren't in the release tarball.
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/dbrgn/tealdeer")
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "0cwf46k2rszcpydrqajnm4dvhggr3ms7sjma0jx02ch4fjicxch7"))))
+         "0ipd23b30pqvyh20mxfd13ps0rnvg7zfpysv7wambfbb92xdh36d"))))
     (build-system cargo-build-system)
     (arguments
      `(#:phases
@@ -2141,13 +2174,17 @@ daemon which executes them.")
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out  (assoc-ref outputs "out"))
                     (bash (string-append out "/etc/bash_completion.d/"))
-                    (fish (string-append out "/share/fish/vendor_completions.d/")))
+                    (fish (string-append out "/share/fish/vendor_completions.d/"))
+                    (zsh  (string-append out "/share/zsh/site-functions/")))
                (mkdir-p bash)
                (mkdir-p fish)
-               (copy-file "bash_tealdeer"
+               (mkdir-p zsh)
+               (copy-file "completion/bash_tealdeer"
                           (string-append bash "tealdeer"))
-               (copy-file "fish_tealdeer"
-                          (string-append fish "tealdeer.fish"))))))
+               (copy-file "completion/fish_tealdeer"
+                          (string-append fish "tealdeer.fish"))
+               (copy-file "completion/zsh_tealdeer"
+                          (string-append zsh "_tealdeer"))))))
        #:install-source? #f
        #:cargo-test-flags
        '("--release" "--"
@@ -2159,34 +2196,31 @@ daemon which executes them.")
          "--skip=test_markdown_rendering"
          "--skip=test_spaces_find_command"
          "--skip=test_autoupdate_cache"
-         "--skip=test_update_cache")
+         "--skip=test_update_cache"
+         "--skip=test_create_cache_directory_path")
        #:cargo-inputs
-       (("rust-ansi-term" ,rust-ansi-term-0.12)
+       (("rust-anyhow" ,rust-anyhow-1)
         ("rust-app-dirs2" ,rust-app-dirs2-2)
         ("rust-atty" ,rust-atty-0.2)
-        ("rust-docopt" ,rust-docopt-1)
-        ("rust-env-logger" ,rust-env-logger-0.7)
-        ("rust-flate2" ,rust-flate2-1)
+        ("rust-clap" ,rust-clap-3)
+        ("rust-env-logger" ,rust-env-logger-0.9)
         ("rust-log" ,rust-log-0.4)
-        ("rust-pager" ,rust-pager-0.15)
-        ("rust-reqwest" ,rust-reqwest-0.10)
+        ("rust-pager" ,rust-pager-0.16)
+        ("rust-reqwest" ,rust-reqwest-0.11)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-derive" ,rust-serde-derive-1)
-        ("rust-tar" ,rust-tar-0.4)
         ("rust-toml" ,rust-toml-0.5)
         ("rust-walkdir" ,rust-walkdir-2)
-        ("rust-xdg" ,rust-xdg-2))
+        ("rust-yansi" ,rust-yansi-0.5)
+        ("rust-zip" ,rust-zip-0.6))
        #:cargo-development-inputs
-       (("rust-assert-cmd" ,rust-assert-cmd-1)
+       (("rust-assert-cmd" ,rust-assert-cmd-2)
         ("rust-escargot" ,rust-escargot-0.5)
         ("rust-filetime" ,rust-filetime-0.2)
-        ("rust-predicates" ,rust-predicates-1)
-        ;; This earlier version is required to fix a bug.
-        ;; Remove rust-remove-dir-all-0.5.2 when tealdeer gets upgraded
-        ("rust-remove-dir-all" ,rust-remove-dir-all-0.5.2)
+        ("rust-predicates" ,rust-predicates-2)
         ("rust-tempfile" ,rust-tempfile-3))))
     (native-inputs
-     (list pkg-config))
+     (list perl pkg-config))
     (inputs
      (list openssl))
     (home-page "https://github.com/dbrgn/tealdeer/")
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 9af4ae2703..30fb0e1e16 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2016 Nikita <nikita@n0.is>
 ;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2017, 2018 Nikolai Merinov <nikolai.merinov@member.fsf.org>
-;;; Copyright © 2017, 2019-2022 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017, 2019-2023 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Danny Milosavljevic <dannym+a@scratchpost.org>
 ;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
@@ -162,7 +162,15 @@
        (snippet
         '(begin
            (for-each delete-file-recursively
-                     '("src/llvm-project"))))
+                     '("src/llvm-project"))
+           ;; Remove vendored dynamically linked libraries.
+           ;; find . -not -type d -executable -exec file {} \+ | grep ELF
+           (delete-file "vendor/vte/vim10m_match")
+           (delete-file "vendor/vte/vim10m_table")
+           ;; Also remove the bundled (mostly Windows) libraries.
+           ;; find vendor -not -type d -exec file {} \+ | grep PE32
+           (for-each delete-file
+                     (find-files "vendor" ".*\\.(a|dll|exe|lib)$"))))
        (patches (search-patches "rustc-1.54.0-src.patch"))
        (patch-flags '("-p0"))))         ;default is -p1
     (outputs '("out" "cargo"))
@@ -171,7 +179,7 @@
     (build-system gnu-build-system)
     (inputs
      `(("libcurl" ,curl)
-       ("llvm" ,llvm)
+       ("llvm" ,llvm-13)
        ("openssl" ,openssl-1.1)
        ("zlib" ,zlib)))
     (native-inputs
@@ -189,6 +197,9 @@
        ;; Rust's own .so library files are not found in any RUNPATH, but
        ;; that doesn't seem to cause issues.
        #:validate-runpath? #f
+       ;; Most of the build is single-threaded. This also improves the
+       ;; build time on machines with "only" 8GB of RAM.
+       #:parallel-build? ,(target-x86-64?)
        #:make-flags
        (list ,(string-append "RUSTC_TARGET="
                              (or (%current-target-system)
@@ -196,6 +207,10 @@
              ,(string-append "RUSTC_VERSION=" version)
              ,(string-append "MRUSTC_TARGET_VER="
                              (version-major+minor version))
+             ;; mrustc expects a C11 compatible compiler. Use the default
+             ;; C language dialect from the GCC-10 compiler.
+             ;; This is necessary for some architectures.
+             "CFLAGS=-std=gnu11"
              "OUTDIR_SUF=")           ;do not add version suffix to output dir
        #:phases
        (modify-phases %standard-phases
@@ -294,7 +309,6 @@
                ;; Use PARLEVEL since both minicargo and mrustc use it
                ;; to set the level of parallelism.
                (setenv "PARLEVEL" (number->string job-count))
-               (setenv "CARGO_BUILD_JOBS" (number->string job-count))
                (display "Building mrustc...\n")
                (apply invoke "make" make-flags)
 
@@ -346,8 +360,8 @@ safety and thread safety guarantees.")
     ;; therefore the build process needs 8GB of RAM while building.
     ;; It may support i686 soon:
     ;; <https://github.com/thepowersgang/mrustc/issues/78>.
-    ;; XXX: The rust bootstrap is currently broken on aarch64 and riscv64,
-    ;; remove them until this is fixed.
+    ;; XXX: The rust bootstrap is currently broken on riscv64 and fails to
+    ;; build on CI for aarch64, remove them until this is fixed.
     (supported-systems '("x86_64-linux"))
 
     ;; Dual licensed.
@@ -368,6 +382,14 @@ safety and thread safety guarantees.")
            (for-each delete-file-recursively
                      '("src/llvm-project"
                        "vendor/tikv-jemalloc-sys/jemalloc"))
+           ;; Remove vendored dynamically linked libraries.
+           ;; find . -not -type d -executable -exec file {} \+ | grep ELF
+           (delete-file "vendor/vte/vim10m_match")
+           (delete-file "vendor/vte/vim10m_table")
+           ;; Also remove the bundled (mostly Windows) libraries.
+           ;; find vendor -not -type d -exec file {} \+ | grep PE32
+           (for-each delete-file
+                     (find-files "vendor" ".*\\.(a|dll|exe|lib)$"))
            ;; Add support for riscv64-linux.
            (substitute* "vendor/tikv-jemallocator/src/lib.rs"
              (("    target_arch = \"s390x\"," all)
@@ -505,7 +527,7 @@ ar = \"" binutils "/bin/ar" "\"
        ("which" ,which)))
     (inputs
      `(("jemalloc" ,jemalloc)
-       ("llvm" ,llvm)
+       ("llvm" ,llvm-13)
        ("openssl" ,openssl)
        ("libssh2" ,libssh2)             ; For "cargo"
        ("libcurl" ,curl)))              ; For "cargo"
@@ -601,8 +623,26 @@ safety and thread safety guarantees.")
    rust-1.59 "1.60.0" "1drqr0a26x1rb2w3kj0i6abhgbs3jx5qqkrcwbwdlx7n3inq5ji0"))
 
 (define rust-1.61
-  (rust-bootstrapped-package
-   rust-1.60 "1.61.0" "1vfs05hkf9ilk19b2vahqn8l6k17pl9nc1ky9kgspaascx8l62xd"))
+  (let ((base-rust
+          (rust-bootstrapped-package
+           rust-1.60 "1.61.0" "1vfs05hkf9ilk19b2vahqn8l6k17pl9nc1ky9kgspaascx8l62xd")))
+    (package
+      (inherit base-rust)
+      (source
+        (origin
+          (inherit (package-source base-rust))
+          (snippet
+           '(begin
+              (for-each delete-file-recursively
+                        '("src/llvm-project"
+                          "vendor/tikv-jemalloc-sys/jemalloc"))
+              ;; Remove vendored dynamically linked libraries.
+              ;; find . -not -type d -executable -exec file {} \+ | grep ELF
+              (delete-file "vendor/vte/vim10m_match")
+              (delete-file "vendor/vte/vim10m_table")
+              ;; Also remove the bundled (mostly Windows) libraries.
+              (for-each delete-file
+                        (find-files "vendor" ".*\\.(a|dll|exe|lib)$")))))))))
 
 (define rust-1.62
   (rust-bootstrapped-package
@@ -628,9 +668,10 @@ safety and thread safety guarantees.")
          ((#:phases phases)
           `(modify-phases ,phases
              (replace 'patch-cargo-checksums
-               (lambda* _
+               (lambda _
                  (substitute* '("Cargo.lock"
-                                "src/bootstrap/Cargo.lock")
+                                "src/bootstrap/Cargo.lock"
+                                "src/tools/rust-analyzer/Cargo.lock")
                    (("(checksum = )\".*\"" all name)
                     (string-append name "\"" ,%cargo-reference-hash "\"")))
                  (generate-all-checksums "vendor"))))))))))
@@ -647,6 +688,23 @@ safety and thread safety guarantees.")
          (patches '())
          (patch-flags '("-p1")))))))
 
+(define rust-1.66
+  (rust-bootstrapped-package
+   rust-1.65 "1.66.1" "1fjr94gsicsxd2ypz4zm8aad1zdbiccr7qjfbmq8f8f7jhx96g2v"))
+
+(define rust-1.67
+  (let ((base-rust
+          (rust-bootstrapped-package
+           rust-1.66 "1.67.1" "0vpzv6rm3w1wbni17ryvcw83k5klhghklylfdza3nnp8blz3sj26")))
+    (package
+      (inherit base-rust)
+      (inputs (modify-inputs (package-inputs base-rust)
+                             (replace "llvm" llvm-15))))))
+
+(define rust-1.68
+  (rust-bootstrapped-package
+   rust-1.67 "1.68.2" "15ifyd5jj8rd979dkakp887hgmhndr68pqaqvd2hqkfdywirqcwk"))
+
 ;;; Note: Only the latest versions of Rust are supported and tested.  The
 ;;; intermediate rusts are built for bootstrapping purposes and should not
 ;;; be relied upon.  This is to ease maintenance and reduce the time
@@ -655,7 +713,7 @@ safety and thread safety guarantees.")
 ;;; Here we take the latest included Rust, make it public, and re-enable tests
 ;;; and extra components such as rustfmt.
 (define-public rust
-  (let ((base-rust rust-1.60))
+  (let ((base-rust rust-1.67))
     (package
       (inherit base-rust)
       (outputs (cons "rustfmt" (package-outputs base-rust)))
@@ -697,6 +755,34 @@ safety and thread safety guarantees.")
                     "#[ignore]\nfn finds_author_git")
                    (("fn finds_local_author_git")
                     "#[ignore]\nfn finds_local_author_git"))))
+             (add-after 'unpack 'disable-tests-requiring-mercurial
+               (lambda _
+                 (substitute*
+                   "src/tools/cargo/tests/testsuite/init/simple_hg_ignore_exists/mod.rs"
+                   (("fn simple_hg_ignore_exists")
+                    "#[ignore]\nfn simple_hg_ignore_exists"))
+                 (substitute*
+                   "src/tools/cargo/tests/testsuite/init/mercurial_autodetect/mod.rs"
+                   (("fn mercurial_autodetect")
+                    "#[ignore]\nfn mercurial_autodetect"))))
+             (add-after 'unpack 'disable-tests-broken-on-aarch64
+               (lambda _
+                 (with-directory-excursion "src/tools/cargo/tests/testsuite/"
+                   (substitute* "build_script_extra_link_arg.rs"
+                     (("^fn build_script_extra_link_arg_bin_single" m)
+                      (string-append "#[ignore]\n" m)))
+                   (substitute* "build_script.rs"
+                     (("^fn env_test" m)
+                      (string-append "#[ignore]\n" m)))
+                   (substitute* "collisions.rs"
+                     (("^fn collision_doc_profile_split" m)
+                      (string-append "#[ignore]\n" m)))
+                   (substitute* "concurrent.rs"
+                     (("^fn no_deadlock_with_git_dependencies" m)
+                      (string-append "#[ignore]\n" m)))
+                   (substitute* "features2.rs"
+                     (("^fn dep_with_optional_host_deps_activated" m)
+                      (string-append "#[ignore]\n" m))))))
              (add-after 'unpack 'patch-command-exec-tests
                ;; This test suite includes some tests that the stdlib's
                ;; `Command` execution properly handles in situations where
@@ -728,11 +814,11 @@ safety and thread safety guarantees.")
                    (substitute* "library/std/src/process/tests.rs"
                      (("\"/bin/sh\"")
                       (string-append "\"" bash "/bin/sh\"")))
+                   ;; The three tests which are known to fail upstream on QEMU
+                   ;; emulation on aarch64 and riscv64 also fail on x86_64 in Guix's
+                   ;; build system. Skip them on all builds.
                    (substitute* "library/std/src/sys/unix/process/process_common/tests.rs"
-                     (("fn test_process_mask")
-                      "#[allow(unused_attributes)]
-    #[ignore]
-    fn test_process_mask")))))
+                     (("target_arch = \"arm\",") "target_os = \"linux\",")))))
              (add-after 'unpack 'disable-interrupt-tests
                (lambda _
                  ;; This test hangs in the build container; disable it.
diff --git a/gnu/packages/sequoia.scm b/gnu/packages/sequoia.scm
index 7002f684b8..f2dee7dc64 100644
--- a/gnu/packages/sequoia.scm
+++ b/gnu/packages/sequoia.scm
@@ -441,7 +441,7 @@ This Guix package is built to use the nettle cryptographic library.")
         ("rust-sequoia-net" ,rust-sequoia-net-0.23)
         ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1)
         ("rust-sha2" ,rust-sha2-0.8)  ;; for ffi-macros
-        ("rust-tokio" ,rust-tokio-1.8))
+        ("rust-tokio" ,rust-tokio-1))
       #:cargo-development-inputs
       `(("rust-filetime" ,rust-filetime-0.2))
       #:phases
diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm
index ad01c750e4..a53b1e2f6d 100644
--- a/gnu/packages/syndication.scm
+++ b/gnu/packages/syndication.scm
@@ -224,14 +224,14 @@ cards.")
 (define-public newsboat
   (package
     (name "newsboat")
-    (version "2.30.1")
+    (version "2.31")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://newsboat.org/releases/" version
                            "/newsboat-" version ".tar.xz"))
        (sha256
-        (base32 "0bv0al3inay6jsggaz2zja4j9jp1ffn8bp4i4jr8wd1c9asgsgs1"))))
+        (base32 "1nn1akjc3l29gcr0n6g7y39qvmbw8vf5sfmnxd794sgmbki7vbsb"))))
     (build-system cargo-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -257,14 +257,14 @@ cards.")
        #:install-source? #f
        #:cargo-inputs
        (("rust-backtrace" ,rust-backtrace-0.3)
-        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-bitflags" ,rust-bitflags-2)
         ("rust-chrono" ,rust-chrono-0.4)
         ("rust-curl-sys" ,rust-curl-sys-0.4)
         ("rust-cxx" ,rust-cxx-1)
         ("rust-cxx-build" ,rust-cxx-build-1)
         ("rust-fastrand" ,rust-fastrand-1)
         ("rust-gettext-rs" ,rust-gettext-rs-0.7)
-        ("rust-lexopt" ,rust-lexopt-0.2)
+        ("rust-lexopt" ,rust-lexopt-0.3)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-md5" ,rust-md5-0.7)
         ("rust-natord" ,rust-natord-1)
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 513fa8c563..570de2259e 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -69,7 +69,6 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages check)
-  #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crates-io)
   #:use-module (gnu packages crates-graphics)
@@ -1407,7 +1406,7 @@ basic input/output.")
 (define-public alacritty
   (package
     (name "alacritty")
-    (version "0.9.0")
+    (version "0.12.0")
     (source
      (origin
        ;; XXX: The crate at "crates.io" has limited contents.  In particular,
@@ -1418,57 +1417,62 @@ basic input/output.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "068y0b1a0m33r7a3j2xf6k602sc8062gm4d5568ynfx6w5n481lj"))))
+        (base32 "00ksvn0k451wmppqxkzzsb5gdjllqxqrnxw81gam00k9wsq8bj6q"))))
     (build-system cargo-build-system)
     (arguments
      `(#:install-source? #f     ; virtual manifest
        #:cargo-test-flags '("--release" "--" "--skip=config_read_eof")
        #:cargo-inputs
-       (("rust-alacritty-config-derive" ,rust-alacritty-config-derive-0.1)
-        ("rust-alacritty-terminal" ,rust-alacritty-terminal-0.15)
-        ("rust-clap" ,rust-clap-2)
+       (("rust-alacritty-config" ,rust-alacritty-config-0.1)
+        ("rust-alacritty-config-derive" ,rust-alacritty-config-derive-0.2)
+        ("rust-alacritty-terminal" ,rust-alacritty-terminal-0.18)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-clap" ,rust-clap-3)
         ("rust-cocoa" ,rust-cocoa-0.24)
-        ("rust-copypasta" ,rust-copypasta-0.7)
-        ("rust-crossfont" ,rust-crossfont-0.3)
+        ("rust-copypasta" ,rust-copypasta-0.8)
+        ("rust-crossfont" ,rust-crossfont-0.5)
+        ("rust-dirs" ,rust-dirs-4)
         ("rust-embed-resource" ,rust-embed-resource-1)
         ("rust-fnv" ,rust-fnv-1)
         ("rust-gl-generator" ,rust-gl-generator-0.14)
         ;; XXX: Adjust `add-absolute-library-references' phase when updating
         ;; glutin input.
-        ("rust-glutin" ,rust-glutin-0.26)
+        ("rust-glutin" ,rust-glutin-0.30)
+        ("rust-libc" ,rust-libc-0.2)
         ("rust-log" ,rust-log-0.4)
-        ("rust-notify" ,rust-notify-4)
+        ("rust-notify" ,rust-notify-5)
         ("rust-objc" ,rust-objc-0.2)
-        ("rust-parking-lot" ,rust-parking-lot-0.11)
-        ("rust-png" ,rust-png-0.16)
-        ("rust-raw-window-handle" ,rust-raw-window-handle-0.3)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-parking-lot" ,rust-parking-lot-0.12)
+        ("rust-png" ,rust-png-0.17)
+        ("rust-raw-window-handle" ,rust-raw-window-handle-0.5)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-serde-yaml" ,rust-serde-yaml-0.8)
-        ("rust-time" ,rust-time-0.1)
-        ("rust-urlocator" ,rust-urlocator-0.1)
+        ("rust-unicode-width" ,rust-unicode-width-0.1)
+        ("rust-wayland-client" ,rust-wayland-client-0.29)
+        ("rust-windows-sys" ,rust-windows-sys-0.36)
+        ("rust-winit" ,rust-winit-0.28)
         ("rust-x11-dl" ,rust-x11-dl-2)
         ("rust-xdg" ,rust-xdg-2))
+       #:cargo-development-inputs
+       (("rust-clap-complete" ,rust-clap-complete-3))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'use-new-nix
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (substitute* "alacritty_terminal/Cargo.toml"
-               (("0.22.0") "^0.23.0"))))
          (add-after 'unpack 'patch-xdg-open
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "alacritty/src/config/ui_config.rs"
                (("xdg-open") (search-input-file inputs "/bin/xdg-open")))))
          (add-after 'configure 'add-absolute-library-references
            (lambda* (#:key inputs cargo-inputs vendor-dir #:allow-other-keys)
-             (let* ((glutin-name ,(package-name rust-glutin-0.26))
-                    (glutin-version ,(package-version rust-glutin-0.26))
+             (let* ((glutin-name ,(package-name rust-glutin-0.30))
+                    (glutin-version ,(package-version rust-glutin-0.30))
                     (glutin-api (string-append glutin-name "-" glutin-version
                                                ".tar.gz/src/api/"))
                     (smithay-client-toolkit-name
-                     ,(package-name rust-smithay-client-toolkit-0.12))
+                     ,(package-name rust-smithay-client-toolkit-0.16))
                     (smithay-client-toolkit-version
-                     ,(package-version rust-smithay-client-toolkit-0.12))
+                     ,(package-version rust-smithay-client-toolkit-0.16))
                     (smithay-client-toolkit-src
                      (string-append smithay-client-toolkit-name "-"
                                     smithay-client-toolkit-version ".tar.gz/src"))
@@ -1492,8 +1496,7 @@ basic input/output.")
                  (("libGL.so") (string-append mesa "/lib/libGL.so")))
                (substitute*
                    (string-append vendor-dir "/" glutin-api "egl/mod.rs")
-                 (("libEGL.so") (string-append mesa "/lib/libEGL.so")))
-               #t)))
+                 (("libEGL.so") (string-append mesa "/lib/libEGL.so"))))))
          (replace 'install
            ;; Upstream install script only takes care of executable.
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -1531,11 +1534,9 @@ basic input/output.")
                (install-file "extra/completions/_alacritty"
                              (string-append share "/zsh/site-functions"))
                (install-file "extra/completions/alacritty.fish"
-                             (string-append share "/fish/vendor_completions.d"))
-               #t))))))
+                             (string-append share "/fish/vendor_completions.d"))))))))
     (native-inputs
-     `(("cmake" ,cmake)
-       ("ncurses" ,ncurses)
+     `(("ncurses" ,ncurses)
        ("pkg-config" ,pkg-config)
        ("python3" ,python)))
     (inputs
@@ -1550,12 +1551,6 @@ basic input/output.")
        ("libxrandr" ,libxrandr)
        ("libxxf86vm" ,libxxf86vm)
        ("mesa" ,mesa)
-       ("rust-bitflags" ,rust-bitflags-1)
-       ("rust-dirs" ,rust-dirs-3)
-       ("rust-libc" ,rust-libc-0.2)
-       ("rust-unicode-width" ,rust-unicode-width-0.1)
-       ("rust-wayland-client" ,rust-wayland-client-0.28)
-       ("rust-winapi" ,rust-winapi-0.3)
        ("xdg-utils" ,xdg-utils)
        ("wayland" ,wayland)))
     (native-search-paths
diff --git a/gnu/packages/tree-sitter.scm b/gnu/packages/tree-sitter.scm
index 386409914b..8951c2ff57 100644
--- a/gnu/packages/tree-sitter.scm
+++ b/gnu/packages/tree-sitter.scm
@@ -141,18 +141,19 @@ This package includes the @code{libtree-sitter} runtime library.")
         ("rust-semver" ,rust-semver-1)
         ("rust-smallbitvec" ,rust-smallbitvec-2)
         ("rust-thiserror" ,rust-thiserror-1)
-        ("rust-tiny-http" ,rust-tiny-http-0.8)
+        ("rust-tiny-http" ,rust-tiny-http-0.12)
         ("rust-toml" ,rust-toml-0.5)
         ("rust-walkdir" ,rust-walkdir-2)
-        ("rust-webbrowser" ,rust-webbrowser-0.5)
+        ("rust-webbrowser" ,rust-webbrowser-0.8)
         ("rust-which" ,rust-which-4))
       #:cargo-development-inputs
-      `(("rust-pretty-assertions" ,rust-pretty-assertions-0.7))
+      `(("rust-ctor" ,rust-ctor-0.1)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-0.7)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-unindent" ,rust-unindent-0.2))
       #:phases
       #~(modify-phases %standard-phases
-          (add-after 'unpack 'delete-cargo-lock
-            (lambda _
-              (delete-file "Cargo.lock")))
           (add-after 'unpack 'patch-node
             (lambda _
               (substitute* "cli/src/generate/mod.rs"
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index aeba4ea750..23c06b33ba 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -197,6 +197,7 @@
   #:use-module (gnu packages tls)
   #:use-module (gnu packages time)
   #:use-module (gnu packages upnp)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages vulkan)
   #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
@@ -5281,38 +5282,10 @@ result in several formats:
     (home-page "https://www.gen2vdr.de/wirbel/w_scan/index2.html")
     (license license:gpl2+)))
 
-;;; XXX: This crate is used only for rav1e and can be removed once the latter
-;;; is updated.  See <https://issues.guix.gnu.org/52837>.
-(define rust-dav1d-sys-0.3.2
-  (package
-    (name "rust-dav1d-sys")
-    (version "0.3.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "dav1d-sys" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1jdxhnlxcml6jd67lx78ifzkn1xm18zfk4li7vjdh3fa61i073kx"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-bindgen" ,rust-bindgen-0.54)
-        ("rust-metadeps" ,rust-metadeps-1))))
-    (native-inputs
-     (list pkg-config))
-    (inputs
-     (list dav1d clang llvm))
-    (home-page "https://github.com/rust-av/dav1d-rs")
-    (synopsis "FFI bindings to dav1d")
-    (description "This package provides FFI bindings to dav1d.")
-    (license license:expat)))
-
 (define-public rav1e
   (package
     (name "rav1e")
-    (version "0.5.1")
+    (version "0.6.3")
     (source
      (origin
        (method url-fetch)
@@ -5321,71 +5294,73 @@ result in several formats:
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "006bfcmjwg0phg8gc25b1sl2ngjrb2bh1b3fd0s5gbf9nlkr8qsn"))))
+         "0if94sfviy5cwljlnsy0f470ixfs090k54g416kcc0qd9w4rhy17"))))
     (build-system cargo-build-system)
     (arguments
-     `(;; Strip the '--release' flag to work around the doctest failures with
-       ;; Rust 1.57 (see: https://github.com/xiph/rav1e/issues/2851).
-       #:cargo-test-flags '()
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-aom-sys" ,rust-aom-sys-0.3)
         ("rust-arbitrary" ,rust-arbitrary-0.4)
         ("rust-arg-enum-proc-macro" ,rust-arg-enum-proc-macro-0.3)
         ("rust-arrayvec" ,rust-arrayvec-0.7)
-        ("rust-av-metrics" ,rust-av-metrics-0.7)
+        ("rust-av-metrics" ,rust-av-metrics-0.9)
+        ("rust-av1-grain" ,rust-av1-grain-0.2)
         ("rust-backtrace" ,rust-backtrace-0.3)
         ("rust-bitstream-io" ,rust-bitstream-io-1)
+        ("rust-built" ,rust-built-0.5)
         ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-cc" ,rust-cc-1)
         ("rust-cfg-if" ,rust-cfg-if-1)
-        ("rust-clap" ,rust-clap-2)
-        ("rust-console" ,rust-console-0.14)
+        ("rust-clap" ,rust-clap-4)
+        ("rust-clap-complete" ,rust-clap-complete-4)
+        ("rust-console" ,rust-console-0.15)
+        ("rust-const-fn-assert" ,rust-const-fn-assert-0.1)
         ("rust-crossbeam" ,rust-crossbeam-0.8)
-        ("rust-dav1d-sys" ,rust-dav1d-sys-0.3)
+        ("rust-dav1d-sys" ,rust-dav1d-sys-0.7)
         ("rust-fern" ,rust-fern-0.6)
-        ("rust-image" ,rust-image-0.23)
+        ("rust-image" ,rust-image-0.24)
         ("rust-interpolate-name" ,rust-interpolate-name-0.2)
         ("rust-itertools" ,rust-itertools-0.10)
         ("rust-ivf" ,rust-ivf-0.1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-libfuzzer-sys" ,rust-libfuzzer-sys-0.3)
         ("rust-log" ,rust-log-0.4)
+        ("rust-maybe-rayon" ,rust-maybe-rayon-0.1)
         ("rust-nasm-rs" ,rust-nasm-rs-0.2)
+        ("rust-new-debug-unreachable" ,rust-new-debug-unreachable-1)
+        ("rust-nom" ,rust-nom-7)
         ("rust-noop-proc-macro" ,rust-noop-proc-macro-0.3)
         ("rust-num-derive" ,rust-num-derive-0.3)
         ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-once-cell" ,rust-once-cell-1)
         ("rust-paste" ,rust-paste-1)
         ("rust-rand" ,rust-rand-0.8)
         ("rust-rand-chacha" ,rust-rand-chacha-0.3)
-        ("rust-rayon" ,rust-rayon-1)
-        ("rust-regex" ,rust-regex-1)
         ("rust-rust-hawktracer" ,rust-rust-hawktracer-0.7)
         ("rust-rustc-version" ,rust-rustc-version-0.4)
         ("rust-scan-fmt" ,rust-scan-fmt-0.2)
         ("rust-serde" ,rust-serde-1)
+        ("rust-serde-big-array" ,rust-serde-big-array-0.4)
         ("rust-signal-hook" ,rust-signal-hook-0.3)
         ("rust-simd-helpers" ,rust-simd-helpers-0.1)
+        ("rust-system-deps" ,rust-system-deps-6)
         ("rust-thiserror" ,rust-thiserror-1)
         ("rust-toml" ,rust-toml-0.5)
-        ("rust-v-frame" ,rust-v-frame-0.2)
-        ("rust-vergen" ,rust-vergen-3)
+        ("rust-v-frame" ,rust-v-frame-0.3)
         ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
         ("rust-y4m" ,rust-y4m-0.7))
        #:cargo-development-inputs
        (("rust-assert-cmd" ,rust-assert-cmd-2)
-        ("rust-cc" ,rust-cc-1)
-        ("rust-criterion" ,rust-criterion-0.3)
+        ("rust-criterion" ,rust-criterion-0.4)
         ("rust-interpolate-name" ,rust-interpolate-name-0.2)
-        ("rust-pretty-assertions" ,rust-pretty-assertions-0.7)
+        ("rust-nom" ,rust-nom-7)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-1)
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-quickcheck-macros" ,rust-quickcheck-macros-1)
         ("rust-rand" ,rust-rand-0.8)
         ("rust-rand-chacha" ,rust-rand-chacha-0.3)
         ("rust-semver" ,rust-semver-1))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'relax-versions
-           (lambda _
-             (substitute* "Cargo.toml"
-               ;; Allow using more recent versions of system-deps.
-               (("~3.1.2") "~3"))))
          (replace 'build
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -5397,7 +5372,9 @@ result in several formats:
              (delete-file (string-append (assoc-ref outputs "out")
                                          "/lib/librav1e.a")))))))
     (native-inputs
-     (list rust-cargo-c nasm))
+     (list nasm pkg-config rust-cargo-c))
+    (inputs
+     (list libgit2 zlib))
     (home-page "https://github.com/xiph/rav1e/")
     (synopsis "Fast and safe AV1 encoder")
     (description "@code{rav1e} is an AV1 video encoder.  It is designed to
diff --git a/guix/build/cargo-build-system.scm b/guix/build/cargo-build-system.scm
index 41766228c2..fbba554e9b 100644
--- a/guix/build/cargo-build-system.scm
+++ b/guix/build/cargo-build-system.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
-;;; Copyright © 2019-2022 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019-2023 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;;
@@ -210,12 +210,32 @@ directory = '" port)
       #t))
 
 (define* (package #:key
+                  source
+                  skip-build?
                   install-source?
                   (cargo-package-flags '("--no-metadata" "--no-verify"))
                   #:allow-other-keys)
   "Run 'cargo-package' for a given Cargo package."
   (if install-source?
-    (apply invoke `("cargo" "package" ,@cargo-package-flags))
+    (if skip-build?
+      (begin
+        (install-file source "target/package")
+        (with-directory-excursion "target/package"
+          (for-each
+            (lambda (file)
+              (make-file-writable file)
+              ;; Strip the hash and replace '.tar.gz' with '.crate'.
+              (rename-file file
+                           (string-append (string-drop-right
+                                            (string-drop file 35)
+                                            (string-length ".tar.gz"))
+                                          ".crate")))
+            (find-files "." "\\.tar\\.gz$"))))
+      (begin
+        ;;error: invalid inclusion of reserved file name Cargo.toml.orig in package source
+        (when (file-exists? "Cargo.toml.orig")
+          (delete-file "Cargo.toml.orig"))
+        (apply invoke `("cargo" "package" ,@cargo-package-flags))))
     (format #t "Not installing cargo sources, skipping `cargo package`.~%"))
   #t)