diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 97a1718b2c..dd68a649d4 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -23053,6 +23053,28 @@ (define-public rust-embedded-io-0.4
                        ("rust-log" ,rust-log-0.4)
                        ("rust-tokio" ,rust-tokio-1))))))
 
+(define-public rust-eml-parser-0.1
+  (package
+    (name "rust-eml-parser")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "eml-parser" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0f82z4ryz4wchr0n99gj20s093ygx8ps0dqq6pr01ljcw8a0vqyr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-regex" ,rust-regex-1))))
+    (home-page "https://github.com/aeshirey/EmlParser/")
+    (synopsis "Library for parsing @file{.eml} files")
+    (description
+     "This package provides a library for parsing @file{.eml} files.")
+    (license license:asl2.0)))
+
 (define-public rust-emojis-0.5
   (package
     (name "rust-emojis")
@@ -24205,6 +24227,23 @@ (define-public rust-envy-0.4
 deserialized from environment variables.")
      (license license:expat)))
 
+(define-public rust-equivalent-1
+  (package
+    (name "rust-equivalent")
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "equivalent" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1malmx5f4lkfvqasz319lq6gb3ddg19yzf9s8cykfsgzdmyq0hsl"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/cuviper/equivalent")
+    (synopsis "Traits for key comparison in maps")
+    (description "Traits for key comparison in maps.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-erased-serde-0.4
   (package
     (name "rust-erased-serde")
@@ -24533,6 +24572,46 @@ (define-public rust-etcetera-0.8
 they follow.  Etcetera, on the other hand, gives you the choice.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-etherparse-0.13
+  (package
+    (name "rust-etherparse")
+    (version "0.13.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "etherparse" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "146rcbnhlpcbl6c6csfhvz0227wbiwhk13md6acq8211b7m94wl2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-arrayvec" ,rust-arrayvec-0.7))
+       #:cargo-development-inputs (("rust-assert-matches" ,rust-assert-matches-1)
+                                   ("rust-proptest" ,rust-proptest-1))))
+    (home-page "https://github.com/JulianSchmid/etherparse")
+    (synopsis "Library for parsing & writing a bunch of packet based protocols")
+    (description
+     "This package provides a library for parsing & writing a bunch of packet
+based protocols (@code{EthernetII}, IPv4, IPv6, UDP, TCP ...).")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-etherparse-0.9
+  (package
+    (inherit rust-etherparse-0.13)
+    (name "rust-etherparse")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "etherparse" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "01s86nj0k663mgxpj3r7y5wr50l5c3aq0pm4rpzyb7hz50i0k8ig"))))
+    (arguments
+     `(#:cargo-inputs (("rust-byteorder" ,rust-byteorder-1))
+       #:cargo-development-inputs (("rust-assert-matches" ,rust-assert-matches-1)
+                                   ("rust-proptest" ,rust-proptest-0.9))))))
+
 (define-public rust-ethnum-1
   (package
     (name "rust-ethnum")
@@ -24575,6 +24654,41 @@ (define-public rust-ethnum-intrinsics-1
      "This package contains LLVM generated 256-bit integer intrinsics.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-ethtool-0.2
+  (package
+    (name "rust-ethtool")
+    (version "0.2.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ethtool" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0nivim6pzfvrnmyb0p7qv39q54vraa0z6jy0ims7gp0panih93hx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags '("--release" "--"
+                            "--skip=test_dump_link_modes")
+       #:cargo-inputs (("rust-anyhow" ,rust-anyhow-1)
+                       ("rust-async-std" ,rust-async-std-1)
+                       ("rust-byteorder" ,rust-byteorder-1)
+                       ("rust-futures" ,rust-futures-0.3)
+                       ("rust-genetlink" ,rust-genetlink-0.2)
+                       ("rust-log" ,rust-log-0.4)
+                       ("rust-netlink-packet-core" ,rust-netlink-packet-core-0.7)
+                       ("rust-netlink-packet-generic" ,rust-netlink-packet-generic-0.3)
+                       ("rust-netlink-packet-utils" ,rust-netlink-packet-utils-0.5)
+                       ("rust-netlink-proto" ,rust-netlink-proto-0.11)
+                       ("rust-netlink-sys" ,rust-netlink-sys-0.8)
+                       ("rust-thiserror" ,rust-thiserror-1)
+                       ("rust-tokio" ,rust-tokio-1))
+       #:cargo-development-inputs (("rust-env-logger" ,rust-env-logger-0.9)
+                                   ("rust-tokio" ,rust-tokio-1))))
+    (home-page "https://docs.rs/ethtool/latest/ethtool/")
+    (synopsis "Linux Ethtool Communication Library")
+    (description "Linux Ethtool Communication Library.")
+    (license license:expat)))
+
 (define-public rust-eui48-1
   (package
     (name "rust-eui48")
@@ -64279,120 +64393,6 @@ (define-public rust-rust-embed-utils-5
     (arguments
      `(#:cargo-inputs (("rust-walkdir" ,rust-walkdir-2))))))
 
-(define-public rust-eml-parser-0.1
-  (package
-    (name "rust-eml-parser")
-    (version "0.1.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "eml-parser" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0f82z4ryz4wchr0n99gj20s093ygx8ps0dqq6pr01ljcw8a0vqyr"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-regex" ,rust-regex-1))))
-    (home-page "https://github.com/aeshirey/EmlParser/")
-    (synopsis "Library for parsing @file{.eml} files")
-    (description
-     "This package provides a library for parsing @file{.eml} files.")
-    (license license:asl2.0)))
-
-(define-public rust-equivalent-1
-  (package
-    (name "rust-equivalent")
-    (version "1.0.1")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "equivalent" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1malmx5f4lkfvqasz319lq6gb3ddg19yzf9s8cykfsgzdmyq0hsl"))))
-    (build-system cargo-build-system)
-    (home-page "https://github.com/cuviper/equivalent")
-    (synopsis "Traits for key comparison in maps")
-    (description "Traits for key comparison in maps.")
-    (license (list license:asl2.0 license:expat))))
-
-(define-public rust-ethtool-0.2
-  (package
-    (name "rust-ethtool")
-    (version "0.2.5")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "ethtool" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0nivim6pzfvrnmyb0p7qv39q54vraa0z6jy0ims7gp0panih93hx"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-test-flags '("--release" "--"
-                            "--skip=test_dump_link_modes")
-       #:cargo-inputs (("rust-anyhow" ,rust-anyhow-1)
-                       ("rust-async-std" ,rust-async-std-1)
-                       ("rust-byteorder" ,rust-byteorder-1)
-                       ("rust-futures" ,rust-futures-0.3)
-                       ("rust-genetlink" ,rust-genetlink-0.2)
-                       ("rust-log" ,rust-log-0.4)
-                       ("rust-netlink-packet-core" ,rust-netlink-packet-core-0.7)
-                       ("rust-netlink-packet-generic" ,rust-netlink-packet-generic-0.3)
-                       ("rust-netlink-packet-utils" ,rust-netlink-packet-utils-0.5)
-                       ("rust-netlink-proto" ,rust-netlink-proto-0.11)
-                       ("rust-netlink-sys" ,rust-netlink-sys-0.8)
-                       ("rust-thiserror" ,rust-thiserror-1)
-                       ("rust-tokio" ,rust-tokio-1))
-       #:cargo-development-inputs (("rust-env-logger" ,rust-env-logger-0.9)
-                                   ("rust-tokio" ,rust-tokio-1))))
-    (home-page "https://docs.rs/ethtool/latest/ethtool/")
-    (synopsis "Linux Ethtool Communication Library")
-    (description "Linux Ethtool Communication Library.")
-    (license license:expat)))
-
-(define-public rust-etherparse-0.13
-  (package
-    (name "rust-etherparse")
-    (version "0.13.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "etherparse" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "146rcbnhlpcbl6c6csfhvz0227wbiwhk13md6acq8211b7m94wl2"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs (("rust-arrayvec" ,rust-arrayvec-0.7))
-       #:cargo-development-inputs (("rust-assert-matches" ,rust-assert-matches-1)
-                                   ("rust-proptest" ,rust-proptest-1))))
-    (home-page "https://github.com/JulianSchmid/etherparse")
-    (synopsis "Library for parsing & writing a bunch of packet based protocols")
-    (description
-     "This package provides a library for parsing & writing a bunch of packet
-based protocols (@code{EthernetII}, IPv4, IPv6, UDP, TCP ...).")
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-etherparse-0.9
-  (package
-    (inherit rust-etherparse-0.13)
-    (name "rust-etherparse")
-    (version "0.9.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "etherparse" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "01s86nj0k663mgxpj3r7y5wr50l5c3aq0pm4rpzyb7hz50i0k8ig"))))
-    (arguments
-     `(#:cargo-inputs (("rust-byteorder" ,rust-byteorder-1))
-       #:cargo-development-inputs (("rust-assert-matches" ,rust-assert-matches-1)
-                                   ("rust-proptest" ,rust-proptest-0.9))))))
-
 (define-public rust-rust-hawktracer-0.7
   (package
     (name "rust-rust-hawktracer")
