diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index b8c4c7bd39..cf77cb2b53 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -22,6 +22,7 @@
 ;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
 ;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2021 Jacob Hrbek <kreyren@rixotstudio.cz>
+;;; Copyright © 2021 (unmatched parenthesis <paren@disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -8134,6 +8135,96 @@ (define-public rust-caps-0.3
         ("rust-error-chain" ,rust-error-chain-0.12)
         ("rust-libc" ,rust-libc-0.2))))))
 
+(define-public rust-cargo-0.57
+  (package
+    (name "rust-cargo")
+    (version "0.57.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cargo" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0nw73wf2f2024qya0lgm6c7wy0vrqd521k2kwzr63gy33fnvk7ai"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(;; The test suite is disabled as the internal 'cargo-test-macro' and
+       ;; 'cargo-test-support' crates are not included in the release.
+       #:tests? #f
+       #:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-atty" ,rust-atty-0.2)
+        ("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-curl" ,rust-curl-0.4)
+        ("rust-curl-sys" ,rust-curl-sys-0.4)
+        ("rust-env-logger" ,rust-env-logger-0.9)
+        ("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-glob" ,rust-glob-0.3)
+        ("rust-hex" ,rust-hex-0.4)
+        ("rust-home" ,rust-home-0.5)
+        ("rust-humantime" ,rust-humantime-2)
+        ("rust-ignore" ,rust-ignore-0.4)
+        ("rust-im-rc" ,rust-im-rc-15)
+        ("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-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-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-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-ignored" ,rust-serde-ignored-0.1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-shell-escape" ,rust-shell-escape-0.1)
+        ("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-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))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("curl" ,curl)
+       ("libssh2" ,libssh2)
+       ("openssl" ,openssl)
+       ("zlib" ,zlib)))
+    (home-page "https://crates.io")
+    (synopsis "Package manager for Rust")
+    (description "Cargo, a package manager for Rust.  This package provides
+the library crate of Cargo.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-cargo-0.53
   (package
     (name "rust-cargo")
@@ -8201,7 +8292,6 @@ (define-public rust-cargo-0.53
         ("rust-shell-escape" ,rust-shell-escape-0.1)
         ("rust-strip-ansi-escapes" ,rust-strip-ansi-escapes-0.1)
         ("rust-tar" ,rust-tar-0.4)
-        ("rust-tar" ,rust-tar-0.4)
         ("rust-tempfile" ,rust-tempfile-3)
         ("rust-termcolor" ,rust-termcolor-1)
         ("rust-toml" ,rust-toml-0.5)
@@ -8309,7 +8399,7 @@ (define-public rust-cargo-metadata-0.6
 (define-public rust-cargo-platform-0.1
   (package
     (name "rust-cargo-platform")
-    (version "0.1.1")
+    (version "0.1.2")
     (source
      (origin
        (method url-fetch)
@@ -8318,7 +8408,7 @@ (define-public rust-cargo-platform-0.1
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1mzi60pf0z83qkzqp7jwd61xnqz2b5ydsj7rnnikbgyicd5989h2"))))
+         "09zsf76b9yr02jh17xq925xp1w824w2bwvb78fd0gpx5m1fq5nyb"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -8329,6 +8419,39 @@ (define-public rust-cargo-platform-0.1
 supported by Cargo.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-cargo-util-0.1
+  (package
+    (name "rust-cargo-util")
+    (version "0.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cargo-util" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "1szsqx6n9lvvpfnppw9xiah0d5mg8x80i5s17kv25q6lg8zn7gzj"))))
+    (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.3)
+         ("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))))
+    (home-page "https://github.com/rust-lang/cargo")
+    (synopsis "Miscellaneous support code used by Cargo.")
+    (description "Miscellaneous support code used by Cargo.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-cargon-0.0
   (package
     (name "rust-cargon")
@@ -12857,14 +12980,14 @@ (define-public rust-cty-0.2
 (define-public rust-curl-0.4
   (package
     (name "rust-curl")
-    (version "0.4.34")
+    (version "0.4.41")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "curl" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0vkm6fyizf8m9yxpv3n5pm9ag3bwlyqa6nz2ga8qkzm5y4m1cs72"))))
+        (base32 "1qqbrvgbnzik4vlni25jwsk3ff57snmbp0zvdzdzhq9jaqrx5ihv"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #false                  ;require internet access
@@ -12874,7 +12997,7 @@ (define-public rust-curl-0.4
         ("rust-openssl-probe" ,rust-openssl-probe-0.1)
         ("rust-openssl-sys" ,rust-openssl-sys-0.9)
         ("rust-schannel" ,rust-schannel-0.1)
-        ("rust-socket2" ,rust-socket2-0.3)
+        ("rust-socket2" ,rust-socket2-0.4)
         ("rust-winapi" ,rust-winapi-0.3))
        #:cargo-development-inputs
        (("rust-anyhow" ,rust-anyhow-1)
@@ -12897,7 +13020,7 @@ (define-public rust-curl-0.4
 (define-public rust-curl-sys-0.4
   (package
     (name "rust-curl-sys")
-    (version "0.4.39+curl-7.74.0")
+    (version "0.4.51+curl-7.80.0")
     (source
       (origin
         (method url-fetch)
@@ -12905,7 +13028,7 @@ (define-public rust-curl-sys-0.4
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0x7qhq7c3b1vmp3740yiigzm09qvkzpdf578jjrs0s3v3s3cxa07"))
+          "085gwlfq15fxp0zvx14sf3k91ka8z8i30271i44gwd3ad9z9hc6i"))
         (modules '((guix build utils)))
         (snippet
          '(begin (delete-file-recursively "curl") #t))))
@@ -15756,6 +15879,31 @@ (define-public rust-duct-0.13
      "A library for running child processes.")
     (license license:expat)))
 
+(define-public rust-duct-0.9
+  (package
+    (name "rust-duct")
+    (version "0.9.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "duct" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "17al305wq9qw54c1idlnjpvwyq37kd1g76z427vgfx0fyiwksmcc"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:cargo-inputs
+        (("rust-lazycell" ,rust-lazycell-0.5)
+         ("rust-libc" ,rust-libc-0.2)
+         ("rust-os-pipe" ,rust-os-pipe-0.6)
+         ("rust-shared-child" ,rust-shared-child-0.3))
+        #:cargo-development-inputs
+        (("rust-tempdir" ,rust-tempdir-0.3))))
+    (home-page "https://github.com/oconnor663/duct.rs")
+    (synopsis "a library for running child processes")
+    (description "a library for running child processes")
+    (license license:expat)))
+
 (define-public rust-dunce-1
   (package
     (name "rust-dunce")
@@ -16807,6 +16955,36 @@ (define-public rust-enumflags2-derive-0.6
     (description "Enumflags2 implements the classic bitflags datastructure.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-env-logger-0.9
+  (package
+    (name "rust-env-logger")
+    (version "0.9.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "env_logger" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "1hzr53r0wga51j0w5zid69ylbfizg4qdbq0vqdj6rvki94sg0b0b"))))
+    (build-system cargo-build-system)
+    (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))))
+    (home-page "https://github.com/env-logger-rs/env_logger/")
+    (synopsis
+      "A logging implementation for `log` which is configured via an environment
+variable.
+")
+    (description
+      "This package provides a logging implementation for `log` which is configured via an environment
+variable.
+")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-env-logger-0.8
   (package
     (name "rust-env-logger")
@@ -25063,14 +25241,14 @@ (define-public rust-iso8601-0.1
 (define-public rust-itertools-0.10
   (package
     (name "rust-itertools")
-    (version "0.10.0")
+    (version "0.10.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "itertools" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "06dkghwi1a6ah2103gibxnr2ys762m5x4rp75x0q43imis8p5m9p"))))
+        (base32 "1bsyxnm20x05rwc5qskrqy4cfswrcadzlwc26dkqml6hz64vipb9"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -25530,7 +25708,7 @@ (define-public rust-jni-sys-0.3
 (define-public rust-jobserver-0.1
   (package
     (name "rust-jobserver")
-    (version "0.1.22")
+    (version "0.1.24")
     (source
      (origin
        (method url-fetch)
@@ -25539,7 +25717,7 @@ (define-public rust-jobserver-0.1
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1zg7p4khibisbvd8b1lqvvni6lr00g49d4bq2zj6m76bs7jmlbwp"))))
+         "1yn1vxbbqv7dqir6qbfcj8h8ddjf89m5mhvm36h13xx7k5raf9dg"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -34079,6 +34257,28 @@ (define-public rust-open-1
 the system.")
     (license license:expat)))
 
+(define-public rust-opener-0.5
+  (package
+    (name "rust-opener")
+    (version "0.5.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "opener" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "0lkrn4fv1h4m8gmp7ll6x7vjvb6kls2ngwa5cgsh2ix5fb6yp8sf"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:cargo-inputs
+        (("rust-bstr" ,rust-bstr-0.2) ("rust-winapi" ,rust-winapi-0.3))
+        #:cargo-development-inputs
+        (("rust-version-sync" ,rust-version-sync-0.9))))
+    (home-page "https://github.com/Seeker14491/opener")
+    (synopsis "Open a file or link using the system default program.")
+    (description "Open a file or link using the system default program.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-opener-0.4
   (package
     (name "rust-opener")
@@ -44267,6 +44467,36 @@ (define-public rust-rustdoc-stripper-0.1
      "This package provides a tool to manipulate rustdoc comments.")
     (license license:asl2.0)))
 
+(define-public rust-rustfix-0.6
+  (package
+    (name "rust-rustfix")
+    (version "0.6.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "rustfix" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "0apkjxv3z70vhnyz2kpwsivvndk6qk7kkp0rf7sg8pk7q1gy02vg"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:cargo-inputs
+        (("rust-anyhow" ,rust-anyhow-1)
+         ("rust-log" ,rust-log-0.4)
+         ("rust-serde" ,rust-serde-1)
+         ("rust-serde-json" ,rust-serde-json-1))
+        #:cargo-development-inputs
+        (("rust-duct" ,rust-duct-0.9)
+         ("rust-env-logger" ,rust-env-logger-0.5)
+         ("rust-log" ,rust-log-0.4)
+         ("rust-proptest" ,rust-proptest-0.7)
+         ("rust-similar" ,rust-similar-0.4)
+         ("rust-tempdir" ,rust-tempdir-0.3))))
+    (home-page "https://github.com/rust-lang-nursery/rustfix")
+    (synopsis "Automatically apply the suggestions made by rustc")
+    (description "Automatically apply the suggestions made by rustc")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-rustfix-0.5
   (package
     (name "rust-rustfix")
@@ -48793,6 +49023,28 @@ (define-public rust-similar-1
     (description "This package provides a diff library for Rust.")
     (license license:asl2.0)))
 
+(define-public rust-similar-0.4
+  (package
+    (name "rust-similar")
+    (version "0.4.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "similar" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "1v6h326qwjdydxk22dfz3x86zp8r1qdnajb3f37w8ngyivzmjgw2"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:cargo-inputs
+        (("rust-unicode-segmentation" ,rust-unicode-segmentation-1))
+        #:cargo-development-inputs
+        (("rust-console" ,rust-console-0.14) ("rust-insta" ,rust-insta-1))))
+    (home-page "https://github.com/mitsuhiko/similar")
+    (synopsis "A diff library for Rust")
+    (description "This package provides a diff library for Rust")
+    (license license:asl2.0)))
+
 (define-public rust-simple-mutex-1
   (package
     (name "rust-simple-mutex")
@@ -49635,7 +49887,7 @@ (define-public rust-snap-1
 (define-public rust-socket2-0.4
   (package
     (name "rust-socket2")
-    (version "0.4.0")
+    (version "0.4.2")
     (source
       (origin
         (method url-fetch)
@@ -49644,7 +49896,7 @@ (define-public rust-socket2-0.4
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "18ny6m1gnf6cwp5ax0b5hr36w6yg16z7faj76b31aq2jghhgqgcy"))))
+          "05imvybc86slkbg6sj9rd1xy9a8ydn1v2bcqjqr346myqzk0zjax"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -52620,7 +52872,7 @@ (define-public rust-tap-1
 (define-public rust-tar-0.4
   (package
     (name "rust-tar")
-    (version "0.4.26")
+    (version "0.4.37")
     (source
       (origin
         (method url-fetch)
@@ -52628,7 +52880,7 @@ (define-public rust-tar-0.4
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "1lr6v3cpkfxd2lk5ll2jd8wr1xdskwj35smnh5sfb8xvzzxnn6dk"))))
+          "0p5srm08dly2bdgkpnjdfmxvldmvi31q6yxdvjxy0lnx79fm3xfn"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f      ; Test tarballs not included in crate.
@@ -59888,6 +60140,36 @@ (define-public rust-version-compare-0.0
 numbers, and test them against various comparison operators.")
     (license license:expat)))
 
+(define-public rust-version-sync-0.9
+  (package
+    (name "rust-version-sync")
+    (version "0.9.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "version-sync" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "0kaqwjr7jlq3afh28jn052vm15z58h8szvbggwdavdng0wzy98x7"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:cargo-inputs
+        (("rust-proc-macro2" ,rust-proc-macro2-1)
+         ("rust-pulldown-cmark" ,rust-pulldown-cmark-0.8)
+         ("rust-regex" ,rust-regex-1)
+         ("rust-semver-parser" ,rust-semver-parser-0.9)
+         ("rust-syn" ,rust-syn-1)
+         ("rust-toml" ,rust-toml-0.5)
+         ("rust-url" ,rust-url-2))
+        #:cargo-development-inputs
+        (("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://github.com/mgeisler/version-sync")
+    (synopsis
+      "Crate for ensuring that version numbers in README files and other files are kept in sync with the crate version.")
+    (description
+      "Crate for ensuring that version numbers in README files and other files are kept in sync with the crate version.")
+    (license license:expat)))
+
 (define-public rust-version-sync-0.8
   (package
     (name "rust-version-sync")
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
old mode 100644
new mode 100755
index f7f05851f1..a1f3d757cd
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2020 Matthew James Kraai <kraai@ftbfs.org>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 (unmatched parenthesis <paren@disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -769,8 +770,16 @@ (define rust-1.54
                             `("procps" ,procps)
                             (package-native-inputs base-rust))))))
 
+(define rust-1.55
+  (rust-bootstrapped-package
+   rust-1.54 "1.55.0" "07l28f7grdmi65naq71pbmvdd61hwcpi40ry7kp7dy7m233rldxj"))
+
+(define rust-1.56
+  (rust-bootstrapped-package
+   rust-1.55 "1.56.1" "04cmqx7nn63hzz7z27b2b0dj2qx18rck9ifvip43s6dampx8v2f3"))
+
 ;;; 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
 ;;; required to build the full Rust bootstrap chain.
-(define-public rust rust-1.54)
+(define-public rust rust-1.56)
