GNU logs - #72506, boring messages


Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#72506] [PATCH] gnu: typst: Add package and dependencies.
Resent-From: Ethan Reece <git@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Wed, 07 Aug 2024 06:54:01 +0000
Resent-Message-ID: <handler.72506.B.17230136207113 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 72506
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 72506 <at> debbugs.gnu.org
Cc: Ethan Reece <git@HIDDEN>
X-Debbugs-Original-To: guix-patches@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.17230136207113
          (code B ref -1); Wed, 07 Aug 2024 06:54:01 +0000
Received: (at submit) by debbugs.gnu.org; 7 Aug 2024 06:53:40 +0000
Received: from localhost ([127.0.0.1]:33546 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sbaYG-0001qf-6D
	for submit <at> debbugs.gnu.org; Wed, 07 Aug 2024 02:53:40 -0400
Received: from lists.gnu.org ([209.51.188.17]:33864)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <guix-home@HIDDEN>) id 1sbTIv-0005JC-29
 for submit <at> debbugs.gnu.org; Tue, 06 Aug 2024 19:09:21 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <guix-home@HIDDEN>)
 id 1sbTIW-0003Vk-BX
 for guix-patches@HIDDEN; Tue, 06 Aug 2024 19:08:56 -0400
Received: from fout7-smtp.messagingengine.com ([103.168.172.150])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <guix-home@HIDDEN>)
 id 1sbTIR-0002HF-PK
 for guix-patches@HIDDEN; Tue, 06 Aug 2024 19:08:56 -0400
Received: from compute6.internal (compute6.nyi.internal [10.202.2.47])
 by mailfout.nyi.internal (Postfix) with ESMTP id 73AE1138F0F1;
 Tue,  6 Aug 2024 19:08:49 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute6.internal (MEProxy); Tue, 06 Aug 2024 19:08:49 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ethanreece.com;
 h=cc:cc:content-transfer-encoding:content-type:content-type
 :date:date:from:from:in-reply-to:message-id:mime-version
 :reply-to:subject:subject:to:to; s=fm1; t=1722985729; x=
 1723072129; bh=MZis/E/YjBIAJ841jmmTsc/XywrXE7MoGnM65OWBthQ=; b=U
 bAv0u/oUZ4b17x228o0qC5taYn93RpMBb8vlsm4/1B1TWAcJr6YbGJ6hC3R/fWfa
 RE6qn3bCFuW4Udv3m/LJnZwgQaOZKRSbsZyCDIW1IjTfQgsebbBbDb6PYgVEylCl
 vfOOx9HT0e3OXOr7VNTyh0YowW1xfRUvkEJZp17x4Qh3rekJes2E3oEpMQuHrL1i
 Hylj/pa+AEB16Dth7VN74f/ldGFRppMSHUbLrN+fHtWFFcC1AUaI/u90oCvtIi++
 EvgYa7XSnT6dsQZj/NfOr6sOFJPu2Bno1pilsd0/ruLlYEbgM9bzdBD5+Nj/8Wd/
 C9cFphaMHEMoAvUl9pSfA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-transfer-encoding
 :content-type:content-type:date:date:feedback-id:feedback-id
 :from:from:in-reply-to:message-id:mime-version:reply-to:subject
 :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender
 :x-sasl-enc; s=fm3; t=1722985729; x=1723072129; bh=MZis/E/YjBIAJ
 841jmmTsc/XywrXE7MoGnM65OWBthQ=; b=alikqle7e0FILlRT+r51BLvYw9tTt
 bu0lrTSgMWck/jPAeVvE/MOQV9eg8dEv5ecu3SrJPThMpV54PtFqNMSFeqitgxDz
 6LnOQrh0RxJNwcdxr0dmHEWx+KM+wKlSLN3PACkn7A2+/AHCJO7cS+Fa0hci+ewf
 5osuHt3ZC8CQXaufwaHh7OU96s0pBMG6rIvvrqDjn+ShIxEoqJXvyGR17qNAK+p9
 RMc5AHHFiqVqEYcwyZszs5gx84MRwq6d0Y4wpiEmI71HyUIhGAgYJJRb+n2EUOGK
 YWBALVElDDeAEnoSnPxSAXDlboYTNP6x9GKfJ5fvETsEphpqihihmShrQ==
X-ME-Sender: <xms:Aa2yZmc5YGQ71Xv7zjd_NPUIUECP3EJV2rp6b51gAFto-mmUPhOtYA>
 <xme:Aa2yZgMXdbXOxCUhO58bHB01fcN5yn45rlHctT373-O7pFq-brIXrI9hTXqLCe8aL
 6aEoNee2TMQAAMsfkw>
X-ME-Received: <xmr:Aa2yZnjWqz1O2AXoN0LCAUxSpyrWvPG4_CcXHmkxUV1W59kJTRHoOcOkwjh9xHUfwZhsUvsJdf040owYnc3cnk2QRt0k>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrkeelgddvtdcutefuodetggdotefrodftvf
 curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
 uegrihhlohhuthemuceftddtnecunecujfgurhephffvvefufffkofggtgfgsehtkeertd
 ertdejnecuhfhrohhmpefgthhhrghnucftvggvtggvuceoghhithesvghthhgrnhhrvggv
 tggvrdgtohhmqeenucggtffrrghtthgvrhhnpeehkeekudeutefffeffheekheffleeuje
 evgfehtdejueeltefgueehkedvhfeggfenucffohhmrghinhepghhithhhuhgsrdgtohhm
 pdhmrghgihgtlhgvnhdrohhrghdpuhhnihgtohguvgdrohhrghdpughotghsrdhrshdpth
 ihphhsthdrrghpphenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
 fhhrohhmpehguhhigidqhhhomhgvsegvthhhrghnrhgvvggtvgdrtghomhdpnhgspghrtg
 hpthhtoheptd
X-ME-Proxy: <xmx:Aa2yZj-NXbB6URuqv8A6cJ__vyV084RSkAL5Zz5yZU1k3l-a7ql13w>
 <xmx:Aa2yZiuCEzmBQN1YGd6gGF3LEM2185x6zFEmGh_mi53YoGUWSMoPvg>
 <xmx:Aa2yZqGqy57OPuPdAbBOPqZQIiXr8_gvQOS1CuVOITyGvH4MgvAa1Q>
 <xmx:Aa2yZhPeDfXJGd8xHlv_AD6do5eUR0046oPWua3bByFg04-LXLKerg>
 <xmx:Aa2yZr6JXrt8GiT6jUA8BCnGbJ8SzV1T0dAM3_08pLj2aE_cDxry5ahh>
Feedback-ID: i4959463e:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 6 Aug 2024 19:08:48 -0400 (EDT)
From: Ethan Reece <git@HIDDEN>
Date: Tue,  6 Aug 2024 18:06:27 -0500
Message-ID: <20240806230845.7790-1-git@HIDDEN>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Received-SPF: pass client-ip=103.168.172.150;
 envelope-from=guix-home@HIDDEN; helo=fout7-smtp.messagingengine.com
X-Spam_score_int: -27
X-Spam_score: -2.8
X-Spam_bar: --
X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001,
 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,
 SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Mailman-Approved-At: Wed, 07 Aug 2024 02:53:38 -0400
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>


Hello,

This patch aims to package Typst and its dependencies.

Steps I took:
	- `./pre-inst-env guix import -i gnu/packages/crates-io.scm crate --recursive --recursive-dev-dependencies --allow-yanked typst-cli`
	- Moved `rust-typst-cli-0.11` to `typst` in a new file that should have other Typst packages from Typst Universe in the future.
	- Successfully ran `./pre-inst-env guix build` on a manifest containing all of the added dependencies, and disabled tests for dependencies where tests failed (my computer uses aarch64).

Steps I haven't taken:
	- Test build for platforms other than aarch64.
	- Test modifications to dependencies of other packages (I am not sure how to do this for cargo-build-system)

Dependencies added (to my knowledge):
	  typst-0.11
	  rust-comemo-0.4  
	  rust-ecow-0.2  
	  rust-fontdb-0.16  
	  rust-self-replace-1  
	  rust-typst-0.11  
	  rust-typst-assets-0.11  
	  rust-typst-macros-0.11  
	  rust-typst-pdf-0.11  
	  rust-typst-render-0.11  
	  rust-typst-svg-0.11  
	  rust-typst-timing-0.11  
	  rust-comemo-macros-0.4  
	  rust-siphasher-1  
	  rust-fontconfig-parser-0.5  
	  rust-ttf-parser-0.20  
	  rust-roxmltree-0.20  
	  rust-xmlwriter-0.1  
	  rust-chinese-number-0.7  
	  rust-hayagriva-0.5  
	  rust-hypher-0.1  
	  rust-icu-properties-1  
	  rust-icu-provider-1  
	  rust-icu-provider-adapters-1  
	  rust-icu-provider-blob-1  
	  rust-icu-segmenter-1  
	  rust-kamadak-exif-0.5  
	  rust-kurbo-0.9  
	  rust-lipsum-0.9  
	  rust-qcms-0.3  
	  rust-rustybuzz-0.12  
	  rust-two-face-0.3  
	  rust-typst-syntax-0.11  
	  rust-unicode-math-class-0.1  
	  rust-unicode-script-0.5  
	  rust-usvg-0.38  
	  rust-wasmi-0.31  
	  rust-chinese-variant-1  
	  rust-enum-ordinalize-4  
	  rust-assert-eq-float-0.1  
	  rust-enum-ordinalize-derive-4  
	  rust-biblatex-0.9  
	  rust-citationberg-0.3  
	  rust-numerals-0.1  
	  rust-unic-langid-0.9  
	  rust-unscanny-0.1  
	  rust-unic-langid-impl-0.9  
	  rust-unic-langid-macros-0.9  
	  rust-tinystr-0.7  
	  rust-databake-0.1  
	  rust-zerovec-0.10  
	  rust-databake-derive-0.1  
	  rust-synstructure-0.13  
	  rust-yoke-0.7  
	  rust-zerofrom-0.1  
	  rust-zerovec-derive-0.10  
	  rust-rmp-serde-1  
	  rust-yoke-derive-0.7  
	  rust-zerofrom-derive-0.1  
	  rust-rmp-0.8  
	  rust-unic-langid-macros-impl-0.9  
	  rust-icu-collections-1  
	  rust-icu-locid-transform-1  
	  rust-icu-properties-data-1  
	  rust-icu-locid-1  
	  rust-icu-locid-transform-data-1  
	  rust-litemap-0.7  
	  rust-writeable-0.5  
	  rust-icu-provider-macros-1  
	  rust-zerotrie-0.1  
	  rust-core-maths-0.1  
	  rust-icu-segmenter-data-1  
	  rust-utf8-iter-1  
	  rust-mutate-once-0.1  
	  rust-unicode-bidi-mirroring-0.1  
	  rust-unicode-ccc-0.1  
	  rust-unicode-properties-0.1  
	  rust-usvg-parser-0.38  
	  rust-usvg-text-layout-0.38  
	  rust-usvg-tree-0.38  
	  rust-imagesize-0.12  
	  rust-simplecss-0.2  
	  rust-svgtypes-0.13  
	  rust-roxmltree-0.7  
	  rust-xmlparser-0.10  
	  rust-strict-num-0.1  
	  rust-unicode-vo-0.1  
	  rust-wasmi-arena-0.4  
	  rust-wasmi-core-0.13  
	  rust-wasmparser-nostd-0.100  
	  rust-wast-62  
	  rust-wat-1  
	  rust-indexmap-nostd-0.4  
	  rust-wasm-encoder-0.31  
	  rust-wast-215  
	  rust-bumpalo-3  
	  rust-gimli-0.30  
	  rust-wasm-encoder-0.215  
	  rust-serde-json-1  
	  rust-wasmparser-0.215  
	  rust-ahash-0.8  
	  rust-pcg-mwc-0.2  
	  rust-pdf-writer-0.9  
	  rust-subsetter-0.1  
	  rust-svg2pdf-0.10  
	  rust-xmp-writer-0.2  
	  rust-ttf-parser-0.15  
	  rust-resvg-0.38  
	  rust-pixglyph-0.3  
	  rust-xmlparser-0.13  

Dependencies updated:
	  rust-ahash-0.8
	  rust-bumpalo-3
	  rust-rmp-0.8
	  rust-rmp-serde-1
	  rust-serde-json-1
	  rust-strict-num-0.1
	  rust-xmlparser-0.13

 - Ethan

Change-Id: I13741b2af2bb734362250ca0a568709aa6be8a78
---
 gnu/local.mk               |    2 +
 gnu/packages/crates-io.scm | 2727 ++++++++++++++++++++++++++++++++++--
 gnu/packages/typst.scm     |   90 ++
 3 files changed, 2718 insertions(+), 101 deletions(-)
 create mode 100644 gnu/packages/typst.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 6d2b14e72d..f8cd91f6ef 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -66,6 +66,7 @@
 # Copyright © 2023 Troy Figiel <troy@HIDDEN>
 # Copyright © 2024 David Elsing <david.elsing@HIDDEN>
 # Copyright © 2024 Ashish SHUKLA <ashish.is@HIDDEN>
+# Copyright © 2024 Ethan Reece <guix@HIDDEN>
 #
 # This file is part of GNU Guix.
 #
@@ -652,6 +653,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/toolkits.scm			\
   %D%/packages/tor-browsers.scm			\
   %D%/packages/tor.scm				\
+  %D%/packages/typst.scm			\
   %D%/packages/tree-sitter.scm			\
   %D%/packages/tv.scm				\
   %D%/packages/uglifyjs.scm			\
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 22c6136852..fe140fd65b 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -44,6 +44,7 @@
 ;;; Copyright © 2024 Suhail Singh <suhail@HIDDEN>
 ;;; Copyright © 2024 Aaron Covrig <aaron.covrig.us@HIDDEN>
 ;;; Copyright © 2024 Nguyễn Gia Phong <mcsinyx@HIDDEN>
+;;; Copyright © 2024 Ethan Reece <guix@HIDDEN>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -791,41 +792,41 @@ (define-public rust-afl-0.11
 (define-public rust-ahash-0.8
   (package
     (name "rust-ahash")
-    (version "0.8.7")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "ahash" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "008xw6gigwnf0q01ic4ar2y4dqfnzn3kyys6vd4cvfa3imjakhvp"))))
+    (version "0.8.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ahash" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "04chdfkls5xmhp1d48gnjsmglbqibizs3bpbj6rsj604m10si7g8"))))
     (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)
-        ("rust-zerocopy" ,rust-zerocopy-0.7))
-       #: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))))
+     `(#: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)
+                       ("rust-zerocopy" ,rust-zerocopy-0.7))
+       #: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.14)
+                                   ("rust-hex" ,rust-hex-0.4)
+                                   ("rust-no-panic" ,rust-no-panic-0.1)
+                                   ("rust-pcg-mwc" ,rust-pcg-mwc-0.2)
+                                   ("rust-rand" ,rust-rand-0.8)
+                                   ("rust-seahash" ,rust-seahash-4)
+                                   ("rust-serde-json" ,rust-serde-json-1)
+                                   ("rust-smallvec" ,rust-smallvec-1))))
     (home-page "https://github.com/tkaitchuck/ahash")
     (synopsis
-     "Non-cryptographic hash function using AES-NI")
+     "non-cryptographic hash function using AES-NI for high performance")
     (description
-     "This package provides a non-cryptographic hash function using AES-NI for
-high performance.")
+     "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
@@ -4444,6 +4445,27 @@ (define-public rust-assert-cmd-0.9
        #:cargo-development-inputs
        (("rust-docmatic" ,rust-docmatic-0.1))))))
 
+(define-public rust-assert-eq-float-0.1
+  (package
+    (name "rust-assert-eq-float")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "assert-eq-float" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1y2hb46hm4cvxxy0bwng9gv4vq48i4scynflhqr5d2ijwzsd3c8w"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-num-traits" ,rust-num-traits-0.2))))
+    (home-page "https://magiclen.org/assert-eq-float")
+    (synopsis
+     "This crate provides the `assert_eq_float!` macros that support floats")
+    (description
+     "This crate provides the `assert_eq_float!` macros that support floats.")
+    (license license:expat)))
+
 (define-public rust-assert-float-eq-1
   (package
     (name "rust-assert-float-eq")
@@ -7040,6 +7062,31 @@ (define-public rust-better-panic-0.3
     (description "Pretty panic backtraces inspired by Python's tracebacks.")
     (license license:expat)))
 
+(define-public rust-biblatex-0.9
+  (package
+    (name "rust-biblatex")
+    (version "0.9.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "biblatex" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1f5py80y8aj3yibsd9gcffvg0i1zg32f35akig6jf0hd0j2p5zi7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-numerals" ,rust-numerals-0.1)
+                       ("rust-paste" ,rust-paste-1)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-strum" ,rust-strum-0.26)
+                       ("rust-unicode-normalization" ,rust-unicode-normalization-0.1)
+                       ("rust-unscanny" ,rust-unscanny-0.1))))
+    (home-page "https://github.com/typst/biblatex")
+    (synopsis "Parsing, writing, and evaluating BibTeX and BibLaTeX files")
+    (description
+     "This package provides Parsing, writing, and evaluating @code{BibTeX} and @code{BibLaTeX} files.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-bigdecimal-0.4
   (package
     (name "rust-bigdecimal")
@@ -9730,30 +9777,29 @@ (define-public rust-built-0.5
 (define-public rust-bumpalo-3
   (package
     (name "rust-bumpalo")
-    (version "3.13.0")
+    (version "3.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "bumpalo" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "1h9zmxb9d14m2sx34daz88fsjw1lx7d5mhaqbldwqgl8xzdc7qm3"))))
+        (base32 "0b015qb4knwanbdlp1x48pkb4pm57b8gidbhhhxr900q2wb6fabr"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:tests? #f                      ; Not all files included.
-       #:cargo-inputs
-       (("rust-allocator-api2" ,rust-allocator-api2-0.2))
-       #:cargo-development-inputs
-       (("rust-criterion" ,rust-criterion-0.3)
-        ("rust-quickcheck" ,rust-quickcheck-1)
-        ("rust-rand" ,rust-rand-0.8))))
+     `(#:tests? #f    ; No such file or directory
+       #:cargo-inputs (("rust-allocator-api2" ,rust-allocator-api2-0.2)
+                       ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs (("rust-criterion" ,rust-criterion-0.3)
+                                   ("rust-quickcheck" ,rust-quickcheck-1)
+                                   ("rust-rand" ,rust-rand-0.8)
+                                   ("rust-serde" ,rust-serde-1)
+                                   ("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://github.com/fitzgen/bumpalo")
-    (synopsis "Fast bump allocation arena for Rust")
+    (synopsis "fast bump allocation arena for Rust.")
     (description
      "This package provides a fast bump allocation arena for Rust.")
-    (license (list license:asl2.0 license:expat))))
+    (license (list license:expat license:asl2.0))))
 
 (define-public rust-bv-0.11
   (package
@@ -12221,6 +12267,52 @@ (define-public rust-charset-0.1
 Encoding Standard.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-chinese-number-0.7
+  (package
+    (name "rust-chinese-number")
+    (version "0.7.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "chinese-number" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0v5va8drix8gs2kv6pmv5yzdxhlpzrwkp3ch86kxdxj6cgpwmz29"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-chinese-variant" ,rust-chinese-variant-1)
+                       ("rust-enum-ordinalize" ,rust-enum-ordinalize-4)
+                       ("rust-num-bigint" ,rust-num-bigint-0.4)
+                       ("rust-num-traits" ,rust-num-traits-0.2))
+       #:cargo-development-inputs (("rust-assert-eq-float" ,rust-assert-eq-float-0.1))))
+    (home-page "https://magiclen.org/chinese-number")
+    (synopsis
+     "Convert primitive numbers to Chinese numbers, or parse Chinese numbers to primitive numbers")
+    (description
+     "This package provides Convert primitive numbers to Chinese numbers, or parse Chinese numbers to
+primitive numbers.")
+    (license license:expat)))
+
+(define-public rust-chinese-variant-1
+  (package
+    (name "rust-chinese-variant")
+    (version "1.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "chinese-variant" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "12s91vg2m9wfs9b3f0q2alj9am08y7r2prb0szg3fwjh8m8lg23m"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-enum-ordinalize" ,rust-enum-ordinalize-4))))
+    (home-page "https://magiclen.org/chinese-variant")
+    (synopsis "An enum to represent the variants of the Chinese Language")
+    (description
+     "This package provides An enum to represent the variants of the Chinese Language.")
+    (license license:expat)))
+
 (define-public rust-chrono-0.4
   (package
     (name "rust-chrono")
@@ -12564,6 +12656,31 @@ (define-public rust-ci-info-0.3
      "This package provides current CI environment information.")
     (license license:asl2.0)))
 
+(define-public rust-citationberg-0.3
+  (package
+    (name "rust-citationberg")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "citationberg" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "02rx28ar1yqzfh97n18ihd1bmgshvgyj07aq36hhbylgsygzwnfj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; No such file or directory
+       #:cargo-inputs (("rust-quick-xml" ,rust-quick-xml-0.31)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-unscanny" ,rust-unscanny-0.1))
+       #:cargo-development-inputs (("rust-ciborium" ,rust-ciborium-0.2)
+                                   ("rust-serde-json" ,rust-serde-json-1)
+                                   ("rust-serde-path-to-error" ,rust-serde-path-to-error-0.1))))
+    (home-page "https://github.com/typst/citationberg")
+    (synopsis "parser for CSL files")
+    (description "This package provides a parser for CSL files.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-clang-ast-0.1
   (package
     (name "rust-clang-ast")
@@ -14123,6 +14240,52 @@ (define-public rust-combine-regex-1-1
 and 1.0.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-comemo-0.4
+  (package
+    (name "rust-comemo")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "comemo" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "14bsiayib4lhz3jrbf1fqh2fpwsm6cii90mifym3jhvji901csfz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-comemo-macros" ,rust-comemo-macros-0.4)
+                       ("rust-once-cell" ,rust-once-cell-1)
+                       ("rust-parking-lot" ,rust-parking-lot-0.12)
+                       ("rust-siphasher" ,rust-siphasher-1))
+       #:cargo-development-inputs (("rust-serial-test" ,rust-serial-test-3))))
+    (home-page "https://github.com/typst/comemo")
+    (synopsis "Incremental computation through constrained memoization")
+    (description
+     "This package provides Incremental computation through constrained memoization.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-comemo-macros-0.4
+  (package
+    (name "rust-comemo-macros")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "comemo-macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1nr8w81hkzg49s515v61shxb077iq6d6001pybxbvxdlz516x4y8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; failed to resolve: use of undeclared crate or module `comemo`
+       #:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
+                       ("rust-quote" ,rust-quote-1)
+                       ("rust-syn" ,rust-syn-2))))
+    (home-page "https://github.com/typst/comemo")
+    (synopsis "Procedural macros for comemo")
+    (description "This package provides Procedural macros for comemo.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-comfy-table-7
   (package
     (name "rust-comfy-table")
@@ -16095,6 +16258,27 @@ (define-public rust-core-extensions-proc-macros-1
     (description "Implementation detail of the @code{core_extensions} crate.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-core-maths-0.1
+  (package
+    (name "rust-core-maths")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "core_maths" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "18q9fwy80lk1lccam375skmsslryik00zkhsl850pidqrh2jbc73"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-libm" ,rust-libm-0.2))))
+    (home-page "https://github.com/robertbastian/core_maths")
+    (synopsis
+     "Extension trait for full float functionality in `#[no_std]` backed by `libm`")
+    (description
+     "This package provides Extension trait for full float functionality in `#[no_std]` backed by `libm`.")
+    (license license:expat)))
+
 (define-public rust-core2-0.4
   (package
     (name "rust-core2")
@@ -19594,6 +19778,53 @@ (define-public rust-data-url-0.2
                                    ("rust-serde-json" ,rust-serde-json-1)
                                    ("rust-tester" ,rust-tester-0.9))))))
 
+(define-public rust-databake-0.1
+  (package
+    (name "rust-databake")
+    (version "0.1.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "databake" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0kb0lnhka1fklrii3qaj40zcrbclfn8fyvy0r1whd3yaxkxzn13a"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; cannot find derive macro `Bake` in this scope
+       #:cargo-inputs (("rust-databake-derive" ,rust-databake-derive-0.1)
+                       ("rust-proc-macro2" ,rust-proc-macro2-1)
+                       ("rust-quote" ,rust-quote-1))))
+    (home-page "https://github.com/unicode-org/icu4x")
+    (synopsis
+     "Trait that lets structs represent themselves as (const) Rust expressions")
+    (description
+     "This package provides Trait that lets structs represent themselves as (const) Rust expressions.")
+    (license license:unicode)))
+
+(define-public rust-databake-derive-0.1
+  (package
+    (name "rust-databake-derive")
+    (version "0.1.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "databake-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0yymbr1z93k7lg0pl5mw9mjhw8fpsfykg7bmkvmir9h1wmfjfy20"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; unresolved import `databake`
+       #:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
+                       ("rust-quote" ,rust-quote-1)
+                       ("rust-syn" ,rust-syn-2)
+                       ("rust-synstructure" ,rust-synstructure-0.13))))
+    (home-page "https://github.com/unicode-org/icu4x")
+    (synopsis "Custom derive for the databake crate")
+    (description "This package provides Custom derive for the databake crate.")
+    (license license:unicode)))
+
 (define-public rust-datetime-0.5
   (package
     (name "rust-datetime")
@@ -22857,6 +23088,27 @@ (define-public rust-ecb-0.1
     (description "Electronic Codebook (ECB) block cipher mode of operation")
     (license license:expat)))
 
+(define-public rust-ecow-0.2
+  (package
+    (name "rust-ecow")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ecow" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0jvg2jrjgczy05mbsnirqqh3rxghxbdbwkbc18cj71lq10bvpgsl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-loom" ,rust-loom-0.7)
+                       ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/typst/ecow")
+    (synopsis "Compact, clone-on-write vector and string")
+    (description
+     "This package provides Compact, clone-on-write vector and string.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-edit-distance-2
   (package
     (name "rust-edit-distance")
@@ -23860,6 +24112,53 @@ (define-public rust-enum-map-0.6
 as an array.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-enum-ordinalize-4
+  (package
+    (name "rust-enum-ordinalize")
+    (version "4.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "enum-ordinalize" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1max64z9giii61qcwl56rndd7pakaylkaij5zqbbbvjl9vxdr87y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-enum-ordinalize-derive" ,rust-enum-ordinalize-derive-4))))
+    (home-page "https://magiclen.org/enum-ordinalize")
+    (synopsis
+     "This library enables enums to not only obtain the ordinal values of their variants but also allows for the construction of enums from an ordinal value")
+    (description
+     "This library enables enums to not only obtain the ordinal values of their
+variants but also allows for the construction of enums from an ordinal value.")
+    (license license:expat)))
+
+(define-public rust-enum-ordinalize-derive-4
+  (package
+    (name "rust-enum-ordinalize-derive")
+    (version "4.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "enum-ordinalize-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1zy53fabazimwv5cl0366k834ybixzl84lxj9mfavbnlfn532a0d"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
+                       ("rust-quote" ,rust-quote-1)
+                       ("rust-syn" ,rust-syn-2))))
+    (home-page "https://magiclen.org/enum-ordinalize")
+    (synopsis
+     "This crate provides a procedural macro that enables enums to not only obtain the ordinal values of their variants but also allows for the construction of enums from an ordinal value")
+    (description
+     "This crate provides a procedural macro that enables enums to not only obtain the
+ordinal values of their variants but also allows for the construction of enums
+from an ordinal value.")
+    (license license:expat)))
+
 (define-public rust-enum-primitive-0.1
   (package
     (name "rust-enum-primitive")
@@ -27320,6 +27619,57 @@ (define-public rust-font8x8-0.3
     (description "8x8 monochrome bitmap font for rendering.")
     (license license:expat)))
 
+(define-public rust-fontconfig-parser-0.5
+  (package
+    (name "rust-fontconfig-parser")
+    (version "0.5.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "fontconfig-parser" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "19xdfsvl9sjha9n1lk3s6bqixcihsmjsd7zf3y90rsd69kagrz61"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-log" ,rust-log-0.4)
+                       ("rust-roxmltree" ,rust-roxmltree-0.20)
+                       ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs (("rust-criterion" ,rust-criterion-0.5)
+                                   ("rust-glob" ,rust-glob-0.3)
+                                   ("rust-k9" ,rust-k9-0.12)
+                                   ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/Riey/fontconfig-parser")
+    (synopsis "fontconfig file parser in pure Rust")
+    (description "This package provides fontconfig file parser in pure Rust.")
+    (license license:expat)))
+
+(define-public rust-fontdb-0.16
+  (package
+    (name "rust-fontdb")
+    (version "0.16.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "fontdb" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1hqxv3jnh06s4bflrwnb39mi3knllfs4mxm44vsn0gzgqch90adh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-fontconfig-parser" ,rust-fontconfig-parser-0.5)
+                       ("rust-log" ,rust-log-0.4)
+                       ("rust-memmap2" ,rust-memmap2-0.9)
+                       ("rust-slotmap" ,rust-slotmap-1)
+                       ("rust-tinyvec" ,rust-tinyvec-1)
+                       ("rust-ttf-parser" ,rust-ttf-parser-0.20))
+       #:cargo-development-inputs (("rust-env-logger" ,rust-env-logger-0.10))))
+    (home-page "https://github.com/RazrFalcon/fontdb")
+    (synopsis "simple, in-memory font database with CSS-like queries.")
+    (description
+     "This package provides a simple, in-memory font database with CSS-like queries.")
+    (license license:expat)))
+
 (define-public rust-force-send-sync-1
   (package
     (name "rust-force-send-sync")
@@ -29809,6 +30159,33 @@ (define-public rust-gimli-0.26
         ("rust-test-assembler" ,rust-test-assembler-0.1)
         ("rust-typed-arena" ,rust-typed-arena-2))))))
 
+(define-public rust-gimli-0.30
+  (package
+    (name "rust-gimli")
+    (version "0.30.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gimli" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1jfz1sj9h0rnlhjnmy315db2drsn54f0b5qcpndvl8lpprzxkqg2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+                       ("rust-fallible-iterator" ,rust-fallible-iterator-0.3)
+                       ("rust-indexmap" ,rust-indexmap-2)
+                       ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
+                       ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
+                       ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))
+       #:cargo-development-inputs (("rust-test-assembler" ,rust-test-assembler-0.1))))
+    (home-page "https://github.com/gimli-rs/gimli")
+    (synopsis "library for reading and writing the DWARF debugging format.")
+    (description
+     "This package provides a library for reading and writing the DWARF debugging
+format.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-gjson-0.8
   (package
     (name "rust-gjson")
@@ -31111,6 +31488,45 @@ (define-public rust-handlebars-4
                                    ("rust-tiny-http" ,rust-tiny-http-0.11))))
     (native-inputs (list protobuf))))
 
+(define-public rust-hayagriva-0.5
+  (package
+    (name "rust-hayagriva")
+    (version "0.5.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hayagriva" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0yn9j48hj491swwvpbw4xszaprp2acb2lsw76zknrf3pig4j038x"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; No such file or directory
+       #:cargo-inputs (("rust-biblatex" ,rust-biblatex-0.9)
+                       ("rust-ciborium" ,rust-ciborium-0.2)
+                       ("rust-citationberg" ,rust-citationberg-0.3)
+                       ("rust-clap" ,rust-clap-4)
+                       ("rust-indexmap" ,rust-indexmap-2)
+                       ("rust-numerals" ,rust-numerals-0.1)
+                       ("rust-paste" ,rust-paste-1)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-serde-yaml" ,rust-serde-yaml-0.9)
+                       ("rust-strum" ,rust-strum-0.26)
+                       ("rust-thiserror" ,rust-thiserror-1)
+                       ("rust-unic-langid" ,rust-unic-langid-0.9)
+                       ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
+                       ("rust-unscanny" ,rust-unscanny-0.1)
+                       ("rust-url" ,rust-url-2))
+       #:cargo-development-inputs (("rust-heck" ,rust-heck-0.4)
+                                   ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/typst/hayagriva")
+    (synopsis
+     "Work with references: Literature database management, storage, and citation formatting")
+    (description
+     "This package provides Work with references: Literature database management, storage, and citation
+formatting.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-home-0.5
   (package
     (name "rust-home")
@@ -32384,6 +32800,399 @@ (define-public rust-hts-sys-2
     (description "This library provides Rust bindings to HTSlib.")
     (license license:expat)))
 
+(define-public rust-hypher-0.1
+  (package
+    (name "rust-hypher")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hypher" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ra2kxbpi033jy42wkr7m7rgg6yhy69xad0hmc0z43936xbas91v"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f))   ; No such file or directory
+    (home-page "https://github.com/typst/hypher")
+    (synopsis "hypher separates words into syllables")
+    (description
+     "This package provides hypher separates words into syllables.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-icu-collections-1
+  (package
+    (name "rust-icu-collections")
+    (version "1.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "icu_collections" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "09j5kskirl59mvqc8kabhy7005yyy7dp88jw9f6f3gkf419a8byv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; use of undeclared crate or module `icu_benchmark_macros`
+       #:cargo-inputs (("rust-databake" ,rust-databake-0.1)
+                       ("rust-displaydoc" ,rust-displaydoc-0.2)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-yoke" ,rust-yoke-0.7)
+                       ("rust-zerofrom" ,rust-zerofrom-0.1)
+                       ("rust-zerovec" ,rust-zerovec-0.10))
+       #:cargo-development-inputs (("rust-criterion" ,rust-criterion-0.5)
+                                   ("rust-iai" ,rust-iai-0.1)
+                                   ("rust-postcard" ,rust-postcard-1)
+                                   ("rust-serde" ,rust-serde-1)
+                                   ("rust-serde-json" ,rust-serde-json-1)
+                                   ("rust-toml" ,rust-toml-0.5))))
+    (home-page "https://icu4x.unicode.org")
+    (synopsis "Collection of API for use in ICU libraries")
+    (description
+     "This package provides Collection of API for use in ICU libraries.")
+    (license license:unicode)))
+
+(define-public rust-icu-locid-1
+  (package
+    (name "rust-icu-locid")
+    (version "1.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "icu_locid" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0dznvd1c5b02iilqm044q4hvar0sqibq1z46prqwjzwif61vpb0k"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; use of undeclared crate or module `icu_benchmark_macros`
+       #:cargo-inputs (("rust-databake" ,rust-databake-0.1)
+                       ("rust-displaydoc" ,rust-displaydoc-0.2)
+                       ("rust-litemap" ,rust-litemap-0.7)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-tinystr" ,rust-tinystr-0.7)
+                       ("rust-writeable" ,rust-writeable-0.5)
+                       ("rust-zerovec" ,rust-zerovec-0.10))
+       #:cargo-development-inputs (("rust-criterion" ,rust-criterion-0.5)
+                                   ("rust-iai" ,rust-iai-0.1)
+                                   ("rust-postcard" ,rust-postcard-1)
+                                   ("rust-serde" ,rust-serde-1)
+                                   ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://icu4x.unicode.org")
+    (synopsis "API for managing Unicode Language and Locale Identifiers")
+    (description
+     "This package provides API for managing Unicode Language and Locale Identifiers.")
+    (license license:unicode)))
+
+(define-public rust-icu-locid-transform-1
+  (package
+    (name "rust-icu-locid-transform")
+    (version "1.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "icu_locid_transform" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0kmmi1kmj9yph6mdgkc7v3wz6995v7ly3n80vbg0zr78bp1iml81"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; unresolved import `writeable`
+       #:cargo-inputs (("rust-databake" ,rust-databake-0.1)
+                       ("rust-displaydoc" ,rust-displaydoc-0.2)
+                       ("rust-icu-locid" ,rust-icu-locid-1)
+                       ("rust-icu-locid-transform-data" ,rust-icu-locid-transform-data-1)
+                       ("rust-icu-provider" ,rust-icu-provider-1)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-tinystr" ,rust-tinystr-0.7)
+                       ("rust-zerovec" ,rust-zerovec-0.10))
+       #:cargo-development-inputs (("rust-criterion" ,rust-criterion-0.5)
+                                   ("rust-serde" ,rust-serde-1)
+                                   ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://icu4x.unicode.org")
+    (synopsis
+     "API for Unicode Language and Locale Identifiers canonicalization")
+    (description
+     "This package provides API for Unicode Language and Locale Identifiers canonicalization.")
+    (license license:unicode)))
+
+(define-public rust-icu-locid-transform-data-1
+  (package
+    (name "rust-icu-locid-transform-data")
+    (version "1.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "icu_locid_transform_data" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0vkgjixm0wzp2n3v5mw4j89ly05bg3lx96jpdggbwlpqi0rzzj7x"))))
+    (build-system cargo-build-system)
+    (home-page "https://icu4x.unicode.org")
+    (synopsis "Data for the icu_locid_transform crate")
+    (description
+     "This package provides Data for the icu_locid_transform crate.")
+    (license license:unicode)))
+
+(define-public rust-icu-properties-1
+  (package
+    (name "rust-icu-properties")
+    (version "1.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "icu_properties" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1xgf584rx10xc1p7zjr78k0n4zn3g23rrg6v2ln31ingcq3h5mlk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; use of undeclared crate or module `icu`
+       #:cargo-inputs (("rust-databake" ,rust-databake-0.1)
+                       ("rust-displaydoc" ,rust-displaydoc-0.2)
+                       ("rust-icu-collections" ,rust-icu-collections-1)
+                       ("rust-icu-locid-transform" ,rust-icu-locid-transform-1)
+                       ("rust-icu-properties-data" ,rust-icu-properties-data-1)
+                       ("rust-icu-provider" ,rust-icu-provider-1)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-tinystr" ,rust-tinystr-0.7)
+                       ("rust-unicode-bidi" ,rust-unicode-bidi-0.3)
+                       ("rust-zerovec" ,rust-zerovec-0.10))))
+    (home-page "https://icu4x.unicode.org")
+    (synopsis "Definitions for Unicode properties")
+    (description "This package provides Definitions for Unicode properties.")
+    (license license:unicode)))
+
+(define-public rust-icu-properties-data-1
+  (package
+    (name "rust-icu-properties-data")
+    (version "1.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "icu_properties_data" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0scms7pd5a7yxx9hfl167f5qdf44as6r3bd8myhlngnxqgxyza37"))))
+    (build-system cargo-build-system)
+    (home-page "https://icu4x.unicode.org")
+    (synopsis "Data for the icu_properties crate")
+    (description "This package provides Data for the icu_properties crate.")
+    (license license:unicode)))
+
+(define-public rust-icu-provider-1
+  (package
+    (name "rust-icu-provider")
+    (version "1.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "icu_provider" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1nb8vvgw8dv2inqklvk05fs0qxzkw8xrg2n9vgid6y7gm3423m3f"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; unresolved import `serde`
+       #:cargo-inputs (("rust-bincode" ,rust-bincode-1)
+                       ("rust-databake" ,rust-databake-0.1)
+                       ("rust-displaydoc" ,rust-displaydoc-0.2)
+                       ("rust-erased-serde" ,rust-erased-serde-0.3)
+                       ("rust-icu-locid" ,rust-icu-locid-1)
+                       ("rust-icu-provider-macros" ,rust-icu-provider-macros-1)
+                       ("rust-log" ,rust-log-0.4)
+                       ("rust-postcard" ,rust-postcard-1)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-serde-json" ,rust-serde-json-1)
+                       ("rust-stable-deref-trait" ,rust-stable-deref-trait-1)
+                       ("rust-tinystr" ,rust-tinystr-0.7)
+                       ("rust-writeable" ,rust-writeable-0.5)
+                       ("rust-yoke" ,rust-yoke-0.7)
+                       ("rust-zerofrom" ,rust-zerofrom-0.1)
+                       ("rust-zerovec" ,rust-zerovec-0.10))
+       #:cargo-development-inputs (("rust-criterion" ,rust-criterion-0.5)
+                                   ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://icu4x.unicode.org")
+    (synopsis "Trait and struct definitions for the ICU data provider")
+    (description
+     "This package provides Trait and struct definitions for the ICU data provider.")
+    (license license:unicode)))
+
+(define-public rust-icu-provider-adapters-1
+  (package
+    (name "rust-icu-provider-adapters")
+    (version "1.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "icu_provider_adapters" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1g60fydak0i4rxf8vfrr31mpck846k9ynix4fh1qx2il13ylscnn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; unresolved import `icu_provider::datagen`
+       #:cargo-inputs (("rust-databake" ,rust-databake-0.1)
+                       ("rust-icu-locid" ,rust-icu-locid-1)
+                       ("rust-icu-locid-transform" ,rust-icu-locid-transform-1)
+                       ("rust-icu-provider" ,rust-icu-provider-1)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-tinystr" ,rust-tinystr-0.7)
+                       ("rust-zerovec" ,rust-zerovec-0.10))))
+    (home-page "https://icu4x.unicode.org")
+    (synopsis "Adapters for composing and manipulating data providers")
+    (description
+     "This package provides Adapters for composing and manipulating data providers.")
+    (license license:unicode)))
+
+(define-public rust-icu-provider-blob-1
+  (package
+    (name "rust-icu-provider-blob")
+    (version "1.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "icu_provider_blob" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0lfgvia5v76gkpfgbga5ga6z1b5465v821f2hs0xfmaz6v8rhjy2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; unresolved import `icu_provider::datagen`
+       #:cargo-inputs (("rust-icu-provider" ,rust-icu-provider-1)
+                       ("rust-log" ,rust-log-0.4)
+                       ("rust-postcard" ,rust-postcard-1)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-writeable" ,rust-writeable-0.5)
+                       ("rust-zerotrie" ,rust-zerotrie-0.1)
+                       ("rust-zerovec" ,rust-zerovec-0.10))
+       #:cargo-development-inputs (("rust-criterion" ,rust-criterion-0.5)
+                                   ("rust-twox-hash" ,rust-twox-hash-1))))
+    (home-page "https://icu4x.unicode.org")
+    (synopsis "ICU4X data provider that reads from blobs in memory")
+    (description
+     "This package provides ICU4X data provider that reads from blobs in memory.")
+    (license license:unicode)))
+
+(define-public rust-icu-provider-macros-1
+  (package
+    (name "rust-icu-provider-macros")
+    (version "1.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "icu_provider_macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1mjs0w7fcm2lcqmbakhninzrjwqs485lkps4hz0cv3k36y9rxj0y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; use of undeclared crate or module `icu_provider`
+       #:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
+                       ("rust-quote" ,rust-quote-1)
+                       ("rust-syn" ,rust-syn-2))))
+    (home-page "https://icu4x.unicode.org")
+    (synopsis "Proc macros for ICU data providers")
+    (description "This package provides Proc macros for ICU data providers.")
+    (license license:unicode)))
+
+(define-public rust-icu-segmenter-1
+  (package
+    (name "rust-icu-segmenter")
+    (version "1.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "icu_segmenter" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1pmharib9s1hn5650d4lyd48145n1n14pja2gcnzqvrl29b745x7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; failed to resolve: use of undeclared crate or module `icu`
+       #:cargo-inputs (("rust-core-maths" ,rust-core-maths-0.1)
+                       ("rust-databake" ,rust-databake-0.1)
+                       ("rust-displaydoc" ,rust-displaydoc-0.2)
+                       ("rust-icu-collections" ,rust-icu-collections-1)
+                       ("rust-icu-locid" ,rust-icu-locid-1)
+                       ("rust-icu-locid-transform" ,rust-icu-locid-transform-1)
+                       ("rust-icu-provider" ,rust-icu-provider-1)
+                       ("rust-icu-segmenter-data" ,rust-icu-segmenter-data-1)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-utf8-iter" ,rust-utf8-iter-1)
+                       ("rust-zerovec" ,rust-zerovec-0.10))
+       #:cargo-development-inputs (("rust-criterion" ,rust-criterion-0.5)
+                                   ("rust-itertools" ,rust-itertools-0.10)
+                                   ("rust-serde" ,rust-serde-1)
+                                   ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://icu4x.unicode.org")
+    (synopsis
+     "Unicode line breaking and text segmentation algorithms for text boundaries analysis")
+    (description
+     "This package provides Unicode line breaking and text segmentation algorithms for text boundaries
+analysis.")
+    (license license:unicode)))
+
+(define-public rust-icu-segmenter-data-1
+  (package
+    (name "rust-icu-segmenter-data")
+    (version "1.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "icu_segmenter_data" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1pvrgnxi7fq47hfpc66jgvxzfc8nmzmgv0xw63imbnb0f9rywfgp"))))
+    (build-system cargo-build-system)
+    (home-page "https://icu4x.unicode.org")
+    (synopsis "Data for the icu_segmenter crate")
+    (description "This package provides Data for the icu_segmenter crate.")
+    (license license:unicode)))
+
+(define-public rust-imagesize-0.12
+  (package
+    (name "rust-imagesize")
+    (version "0.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "imagesize" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "114jvqiyv13il1qghv2xm0xqrcjm68fh282hdlzdds6qfgsp7782"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs (("rust-criterion" ,rust-criterion-0.4)
+                                   ("rust-walkdir" ,rust-walkdir-2))))
+    (home-page "https://github.com/Roughsketch/imagesize")
+    (synopsis
+     "Quick probing of image dimensions without loading the entire file")
+    (description
+     "This package provides Quick probing of image dimensions without loading the entire file.")
+    (license license:expat)))
+
+(define-public rust-indexmap-nostd-0.4
+  (package
+    (name "rust-indexmap-nostd")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "indexmap-nostd" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "145mrkrrnzzg8xbv6si8j3b8cw1pi3g13vrjgf1fm2415gyy414f"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs (("rust-serde-derive" ,rust-serde-derive-1))))
+    (home-page "https://github.com/robbepop/indexmap-nostd")
+    (synopsis "no_std compatible implementation of the indexmap crate")
+    (description
+     "This package provides a no_std compatible implementation of the indexmap crate.")
+    (license license:asl2.0)))
+
 (define-public rust-jwalk-0.8
   (package
     (name "rust-jwalk")
@@ -32415,6 +33224,26 @@ (define-public rust-jwalk-0.8
      "Filesystem walk performed in parallel with streamed and sorted results.")
     (license license:expat)))
 
+(define-public rust-kamadak-exif-0.5
+  (package
+    (name "rust-kamadak-exif")
+    (version "0.5.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "kamadak-exif" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0xw0lpmra8j1y98c0agwrmjajpkh91mnl89hzaxbdrdp186wfkzg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-mutate-once" ,rust-mutate-once-0.1))))
+    (home-page "https://github.com/kamadak/exif-rs")
+    (synopsis "Exif parsing library written in pure Rust")
+    (description
+     "This package provides Exif parsing library written in pure Rust.")
+    (license license:bsd-2)))
+
 (define-public rust-koibumi-base32-0.0.2
   (package
     (name "rust-koibumi-base32")
@@ -36642,6 +37471,32 @@ (define-public rust-kstring-2
     (description "Key String provides a Rust package optimized for map keys.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-kurbo-0.9
+  (package
+    (name "rust-kurbo")
+    (version "0.9.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "kurbo" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "16w4k313z8smic4zifpwnxk8alh17dncgj2r40p0ql6rdivsb1dx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; Can't start a segment on a ClosePath
+       #:cargo-inputs (("rust-arrayvec" ,rust-arrayvec-0.7)
+                       ("rust-libm" ,rust-libm-0.2)
+                       ("rust-mint" ,rust-mint-0.5)
+                       ("rust-schemars" ,rust-schemars-0.8)
+                       ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs (("rust-getrandom" ,rust-getrandom-0.2)
+                                   ("rust-rand" ,rust-rand-0.8))))
+    (home-page "https://github.com/linebender/kurbo")
+    (synopsis "2D curves library")
+    (description "This package provides a 2D curves library.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-kv-log-macro-1
   (package
     (name "rust-kv-log-macro")
@@ -39504,6 +40359,38 @@ (define-public rust-libtest-mimic-0.3
         ("rust-structopt" ,rust-structopt-0.3)
         ("rust-termcolor" ,rust-termcolor-1))))))
 
+(define-public rust-lipsum-0.9
+  (package
+    (name "rust-lipsum")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lipsum" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0r40mf2cwh4fp9pdfcc1n8hjxw05w7galjvb1z23r5pq38jn0s33"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-rand" ,rust-rand-0.8)
+                       ("rust-rand-chacha" ,rust-rand-chacha-0.3))
+       #:cargo-development-inputs (("rust-rand" ,rust-rand-0.8)
+                                   ("rust-version-sync" ,rust-version-sync-0.9))))
+    (home-page "https://github.com/mgeisler/lipsum/")
+    (synopsis
+     "Lipsum is a lorem ipsum text generation library. It generates
+pseudo-random Latin text. Use this if you need filler or dummy text
+for your application.
+
+The text is generated using a simple Markov chain, which you can
+instantiate to generate your own pieces of pseudo-random text.")
+    (description
+     "This package provides Lipsum is a lorem ipsum text generation library.  It generates pseudo-random
+Latin text.  Use this if you need filler or dummy text for your application.
+The text is generated using a simple Markov chain, which you can instantiate to
+generate your own pieces of pseudo-random text.")
+    (license license:expat)))
+
 (define-public rust-listenfd-1
   (package
     (name "rust-listenfd")
@@ -39530,6 +40417,36 @@ (define-public rust-listenfd-1
 the outside, such as systemd/catflap socket activation.")
     (license license:asl2.0)))
 
+(define-public rust-litemap-0.7
+  (package
+    (name "rust-litemap")
+    (version "0.7.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "litemap" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0157lf44c3s2piqiwpppnynzzpv1rxyddl2z9l089hpwsjwb0g34"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; use of undeclared crate or module `icu_locid`
+       #:cargo-inputs (("rust-databake" ,rust-databake-0.1)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-yoke" ,rust-yoke-0.7))
+       #:cargo-development-inputs (("rust-bincode" ,rust-bincode-1)
+                                   ("rust-criterion" ,rust-criterion-0.5)
+                                   ("rust-postcard" ,rust-postcard-1)
+                                   ("rust-rkyv" ,rust-rkyv-0.7)
+                                   ("rust-serde" ,rust-serde-1)
+                                   ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/unicode-org/icu4x")
+    (synopsis "key-value Map implementation based on a flat, sorted Vec.")
+    (description
+     "This package provides a key-value Map implementation based on a flat, sorted
+Vec.")
+    (license license:unicode)))
+
 (define-public rust-litrs-0.4
   (package
     (name "rust-litrs")
@@ -43704,6 +44621,24 @@ (define-public rust-mustache-0.9
     (description "This package provides a Rust implementation of Mustache.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-mutate-once-0.1
+  (package
+    (name "rust-mutate-once")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "mutate_once" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ys9mpjhwsj5md10ykmkin0wv7bz8dvc292hqczs9l5l4cd6ikqn"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/kamadak/mutate_once-rs")
+    (synopsis "Interior mutability, write-once and borrowable as plain &T")
+    (description
+     "This package provides Interior mutability, write-once and borrowable as plain &T.")
+    (license license:bsd-2)))
+
 (define-public rust-mysqlclient-sys-0.2
   (package
     (name "rust-mysqlclient-sys")
@@ -48280,6 +49215,26 @@ (define-public rust-number-prefix-0.3
 giga, kibi.")
     (license license:expat)))
 
+(define-public rust-numerals-0.1
+  (package
+    (name "rust-numerals")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "numerals" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0cdx6yf5zcx2nvmzavr4qk9m35ha6i2rhy5fjxgx2wm7fq9y4nz2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f))    ; roman::test::value_panic_on_large
+    (home-page "https://github.com/ogham/rust-numerals")
+    (synopsis "Library for numeric systems, both ancient and modern")
+    (description
+     "This package provides Library for numeric systems, both ancient and modern.")
+    (license license:expat)))
+
 (define-public rust-numtoa-0.2
   (package
     (name "rust-numtoa")
@@ -51858,6 +52813,27 @@ (define-public rust-pcap-sys-0.1
 library.")
     (license license:expat)))
 
+(define-public rust-pcg-mwc-0.2
+  (package
+    (name "rust-pcg-mwc")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pcg-mwc" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0z6cpz8x387iqcx8kjnqfihgggi0yngqx73zwjz132y56f38a5i2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-rand-core" ,rust-rand-core-0.6)
+                       ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/tkaitchuck/Mwc256XXA64")
+    (synopsis "fast non-cryptographic psudo random number generator")
+    (description
+     "This package provides a fast non-cryptographic psudo random number generator.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-pciid-parser-0.6
   (package
     (name "rust-pciid-parser")
@@ -51956,6 +52932,31 @@ (define-public rust-pdcurses-sys-0.7
      "This package provides FFI bindings for PDCurses implementation.")
     (license license:expat)))
 
+(define-public rust-pdf-writer-0.9
+  (package
+    (name "rust-pdf-writer")
+    (version "0.9.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pdf-writer" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0arksb7ahf389q0r7gjm3y3x4fh4v7nckahwcrp82g06ams15s94"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-bitflags" ,rust-bitflags-1)
+                       ("rust-itoa" ,rust-itoa-1)
+                       ("rust-memchr" ,rust-memchr-2)
+                       ("rust-ryu" ,rust-ryu-1))
+       #:cargo-development-inputs (("rust-iai" ,rust-iai-0.1)
+                                   ("rust-image" ,rust-image-0.24)
+                                   ("rust-miniz-oxide" ,rust-miniz-oxide-0.5))))
+    (home-page "https://github.com/typst/pdf-writer")
+    (synopsis "step-by-step PDF writer.")
+    (description "This package provides a step-by-step PDF writer.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-pdqselect-0.1
   (package
     (name "rust-pdqselect")
@@ -53580,6 +54581,27 @@ (define-public rust-piper-0.1
        #:cargo-development-inputs
        (("rust-futures" ,rust-futures-0.3))))))
 
+(define-public rust-pixglyph-0.3
+  (package
+    (name "rust-pixglyph")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pixglyph" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "04m7l6y49nimb8pw9x6mqxjqcy248p2c705q4n0v6z8r9jnziq72"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; No such file or directory
+       #:cargo-inputs (("rust-ttf-parser" ,rust-ttf-parser-0.20))))
+    (home-page "https://github.com/typst/pixglyph")
+    (synopsis "Font-rendering with subpixel positioning")
+    (description
+     "This package provides Font-rendering with subpixel positioning.")
+    (license license:asl2.0)))
+
 (define-public rust-pkg-config-0.3
   (package
     (name "rust-pkg-config")
@@ -59042,6 +60064,26 @@ (define-public rust-python-pkginfo-0.5
         ("rust-zip" ,rust-zip-0.6))
        #:cargo-development-inputs (("rust-serde-json" ,rust-serde-json-1))))))
 
+(define-public rust-qcms-0.3
+  (package
+    (name "rust-qcms")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "qcms" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1yihv9rsa0qc4mmhzp8f0xdfrnkw7q8l7kr4ivcyb9amszazrv7d"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f     ; No such file or directory
+       #:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/FirefoxGraphics/qcms")
+    (synopsis "lightweight color management")
+    (description "This package provides lightweight color management.")
+    (license license:expat)))
+
 (define-public rust-quad-rand-0.2
   (package
     (name "rust-quad-rand")
@@ -62563,6 +63605,34 @@ (define-public rust-result-1
 @code{Option} types.")
     (license license:expat)))
 
+(define-public rust-resvg-0.38
+  (package
+    (name "rust-resvg")
+    (version "0.38.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "resvg" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "07hcwi72y0cybyj45n2hq95gj58wyg3jsam61d3hd7lm8q850d2w"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-gif" ,rust-gif-0.12)
+                       ("rust-jpeg-decoder" ,rust-jpeg-decoder-0.3)
+                       ("rust-log" ,rust-log-0.4)
+                       ("rust-pico-args" ,rust-pico-args-0.5)
+                       ("rust-png" ,rust-png-0.17)
+                       ("rust-rgb" ,rust-rgb-0.8)
+                       ("rust-svgtypes" ,rust-svgtypes-0.13)
+                       ("rust-tiny-skia" ,rust-tiny-skia-0.11)
+                       ("rust-usvg" ,rust-usvg-0.38))
+       #:cargo-development-inputs (("rust-once-cell" ,rust-once-cell-1))))
+    (home-page "https://github.com/RazrFalcon/resvg")
+    (synopsis "An SVG rendering library")
+    (description "This package provides An SVG rendering library.")
+    (license license:mpl2.0)))
+
 (define-public rust-retain-mut-0.1
   (package
     (name "rust-retain-mut")
@@ -62749,55 +63819,48 @@ (define-public rust-rlp-0.5
 (define-public rust-rmp-0.8
   (package
     (name "rust-rmp")
-    (version "0.8.12")
+    (version "0.8.14")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rmp" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "083bbqw8ibqp63v6scmaxmy5x8yznj4j0i2n6jjivv9qrjk6163z"))))
+        (base32 "1i1l6dhv7vws5vp0ikakj44fk597xi59g3j6ng1q55x3dz0xg3i2"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1)
-        ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-paste" ,rust-paste-1))
-       #:cargo-development-inputs
-       (("rust-quickcheck" ,rust-quickcheck-1))))
+     `(#:cargo-inputs (("rust-byteorder" ,rust-byteorder-1)
+                       ("rust-num-traits" ,rust-num-traits-0.2)
+                       ("rust-paste" ,rust-paste-1))
+       #:cargo-development-inputs (("rust-quickcheck" ,rust-quickcheck-1))))
     (home-page "https://github.com/3Hren/msgpack-rust")
     (synopsis "Pure Rust MessagePack serialization implementation")
     (description
-     "RMP is a pure Rust MessagePack implementation of an efficient binary
-serialization format.  This crate provides low-level core functionality,
-writers and readers for primitive values with direct mapping between binary
-MessagePack format.")
+     "This package provides Pure Rust @code{MessagePack} serialization implementation.")
     (license license:expat)))
 
 (define-public rust-rmp-serde-1
   (package
     (name "rust-rmp-serde")
-    (version "1.1.2")
+    (version "1.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rmp-serde" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "12i5aglyni58hlq19pi58z1z6a1hv6l04p9y8ms8l3cqx9gaizmz"))))
+        (base32 "1nylmh7w2vpa1bwrnx1jfp2l4yz6i5qrmpic5zll166gfyj9kraj"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:tests? #f      ; use of undeclared crate or module `rmpv`
-       #:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1)
-        ("rust-rmp" ,rust-rmp-0.8)
-        ("rust-serde" ,rust-serde-1))
-       #:cargo-development-inputs
-       (("rust-serde-bytes" ,rust-serde-bytes-0.11)
-        ("rust-serde-derive" ,rust-serde-derive-1))))
+     `(#:tests? #f    ; use of undeclared crate or module `rmpv`
+       #:cargo-inputs (("rust-byteorder" ,rust-byteorder-1)
+                       ("rust-rmp" ,rust-rmp-0.8)
+                       ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs (("rust-serde" ,rust-serde-1)
+                                   ("rust-serde-bytes" ,rust-serde-bytes-0.11))))
     (home-page "https://github.com/3Hren/msgpack-rust")
     (synopsis "Serde bindings for RMP")
-    (description "This crate provides Serde bindings for RMP.")
+    (description "This package provides Serde bindings for RMP.")
     (license license:expat)))
 
 (define-public rust-rmp-serde-0.15
@@ -63189,6 +64252,43 @@ (define-public rust-roxmltree-0.14
      `(#:skip-build? #t
        #:cargo-inputs (("rust-xmlparser" ,rust-xmlparser-0.13))))))
 
+(define-public rust-roxmltree-0.20
+  (package
+    (name "rust-roxmltree")
+    (version "0.20.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "roxmltree" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "15vw91ps91wkmmgy62khf9zb63bdinvm80957dascbsw7dwvc83c"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/RazrFalcon/roxmltree")
+    (synopsis "Represent an XML as a read-only tree")
+    (description "This package provides Represent an XML as a read-only tree.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-roxmltree-0.7
+  (package
+    (name "rust-roxmltree")
+    (version "0.7.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "roxmltree" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ay04flfbwz6a205qwpsl922g73nwzzv77bbqsh9ddn1axr40lh8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-xmlparser" ,rust-xmlparser-0.10))
+       #:cargo-development-inputs (("rust-pretty-assertions" ,rust-pretty-assertions-0.5))))
+    (home-page "https://github.com/RazrFalcon/roxmltree")
+    (synopsis "Represent an XML as a read-only tree")
+    (description "This package provides Represent an XML as a read-only tree.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-rpassword-7
   (package
     (name "rust-rpassword")
@@ -66105,6 +67205,37 @@ (define-public rust-rusty-fork-0.2
         ("rust-tempfile" ,rust-tempfile-3)
         ("rust-wait-timeout" ,rust-wait-timeout-0.2))))))
 
+(define-public rust-rustybuzz-0.12
+  (package
+    (name "rust-rustybuzz")
+    (version "0.12.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rustybuzz" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0b12arlca4lfniphg91v9s5awkl7szpdwc18walxdamyqn95dbph"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; mismatched types
+       #:cargo-inputs (("rust-bitflags" ,rust-bitflags-2)
+                       ("rust-bytemuck" ,rust-bytemuck-1)
+                       ("rust-libm" ,rust-libm-0.2)
+                       ("rust-smallvec" ,rust-smallvec-1)
+                       ("rust-ttf-parser" ,rust-ttf-parser-0.20)
+                       ("rust-unicode-bidi-mirroring" ,rust-unicode-bidi-mirroring-0.1)
+                       ("rust-unicode-ccc" ,rust-unicode-ccc-0.1)
+                       ("rust-unicode-properties" ,rust-unicode-properties-0.1)
+                       ("rust-unicode-script" ,rust-unicode-script-0.5))
+       #:cargo-development-inputs (("rust-libc" ,rust-libc-0.2)
+                                   ("rust-pico-args" ,rust-pico-args-0.5))))
+    (home-page "https://github.com/RazrFalcon/rustybuzz")
+    (synopsis "complete harfbuzz shaping algorithm port to Rust.")
+    (description
+     "This package provides a complete harfbuzz shaping algorithm port to Rust.")
+    (license license:expat)))
+
 (define-public rust-rustyline-13
   (package
     (name "rust-rustyline")
@@ -68097,6 +69228,30 @@ (define-public rust-self-cell-1
 in stable Rust.")
     (license license:asl2.0)))
 
+(define-public rust-self-replace-1
+  (package
+    (name "rust-self-replace")
+    (version "1.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "self-replace" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "05c5b55v90328gpc6a08qa4p51m5g4rplpiwbazxi1c6k5c8m0pp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; no example target named `deletes-itself`.
+       #:cargo-inputs (("rust-fastrand" ,rust-fastrand-1)
+                       ("rust-tempfile" ,rust-tempfile-3)
+                       ("rust-windows-sys" ,rust-windows-sys-0.48))))
+    (home-page "https://github.com/mitsuhiko/self-replace")
+    (synopsis
+     "Utility crate that allows executables to replace or uninstall themselves")
+    (description
+     "This package provides Utility crate that allows executables to replace or uninstall themselves.")
+    (license license:asl2.0)))
+
 (define-public rust-selinux-0.4
   (package
     (name "rust-selinux")
@@ -68989,35 +70144,33 @@ (define-public rust-serde-ignored-0.1
 (define-public rust-serde-json-1
   (package
     (name "rust-serde-json")
-    (version "1.0.114")
+    (version "1.0.122")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serde_json" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1q4saigxwkf8bw4y5kp6k33dnavlvvwa2q4zmag59vrjsqdrpw65"))))
+        (base32 "1nk8phyvwmhrmcbwdr8rbjd9bqp8np62dcbnhisgymqwjl1n4jvq"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-indexmap" ,rust-indexmap-2)
-        ("rust-itoa" ,rust-itoa-1)
-        ("rust-ryu" ,rust-ryu-1)
-        ("rust-serde" ,rust-serde-1))
-       #:cargo-development-inputs
-       (("rust-automod" ,rust-automod-1)
-        ("rust-indoc" ,rust-indoc-2)
-        ("rust-ref-cast" ,rust-ref-cast-1)
-        ("rust-rustversion" ,rust-rustversion-1)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-serde-bytes" ,rust-serde-bytes-0.11)
-        ("rust-serde-derive" ,rust-serde-derive-1)
-        ("rust-serde-stacker" ,rust-serde-stacker-0.1)
-        ("rust-trybuild" ,rust-trybuild-1))))
+     `(#:cargo-inputs (("rust-indexmap" ,rust-indexmap-2)
+                       ("rust-itoa" ,rust-itoa-1)
+                       ("rust-memchr" ,rust-memchr-2)
+                       ("rust-ryu" ,rust-ryu-1)
+                       ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs (("rust-automod" ,rust-automod-1)
+                                   ("rust-indoc" ,rust-indoc-2)
+                                   ("rust-ref-cast" ,rust-ref-cast-1)
+                                   ("rust-rustversion" ,rust-rustversion-1)
+                                   ("rust-serde" ,rust-serde-1)
+                                   ("rust-serde-bytes" ,rust-serde-bytes-0.11)
+                                   ("rust-serde-derive" ,rust-serde-derive-1)
+                                   ("rust-serde-stacker" ,rust-serde-stacker-0.1)
+                                   ("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://github.com/serde-rs/json")
     (synopsis "JSON serialization file format")
-    (description
-     "This package provides a JSON serialization file format.")
+    (description "This package provides a JSON serialization file format.")
     (license (list license:expat license:asl2.0))))
 
 (define-public rust-serde-json-0.9
@@ -71087,6 +72240,28 @@ (define-public rust-similar-asserts-1
 diff output.")
     (license license:asl2.0)))
 
+(define-public rust-simplecss-0.2
+  (package
+    (name "rust-simplecss")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "simplecss" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "17g8q1z9xrkd27ic9nrfirj6in4rai6l9ws0kxz45n97573ff6x1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; No such file or directory
+       #:cargo-inputs (("rust-log" ,rust-log-0.4))
+       #:cargo-development-inputs (("rust-env-logger" ,rust-env-logger-0.6)
+                                   ("rust-roxmltree" ,rust-roxmltree-0.7))))
+    (home-page "https://github.com/RazrFalcon/simplecss")
+    (synopsis "simple CSS 2 parser and selector.")
+    (description "This package provides a simple CSS 2 parser and selector.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-simplelog-0.12
   (package
     (name "rust-simplelog")
@@ -71289,6 +72464,27 @@ (define-public rust-siphasher-0.2
      "SipHash functions from rust-core < 1.13.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-siphasher-1
+  (package
+    (name "rust-siphasher")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "siphasher" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "17f35782ma3fn6sh21c027kjmd227xyrx06ffi8gw4xzv9yry6an"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-serde" ,rust-serde-1)
+                       ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://docs.rs/siphasher")
+    (synopsis "SipHash-2-4, SipHash-1-3 and 128-bit variants in pure Rust")
+    (description
+     "This package provides @code{SipHash-2-4}, @code{SipHash-1-3} and 128-bit variants in pure Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-sized-chunks-0.6
   (package
     (name "rust-sized-chunks")
@@ -74248,20 +75444,21 @@ (define-public rust-strength-reduce-0.2
 (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"))))
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "strict-num" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0cb7l1vhb8zj90mzm8avlk815k40sql9515s865rqdrdfavvldv6"))))
     (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.")
+    (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
@@ -75388,6 +76585,27 @@ (define-public rust-subprocess-0.2
 inspired by Python's subprocess module, with Rust-specific extensions.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-subsetter-0.1
+  (package
+    (name "rust-subsetter")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "subsetter" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ygjaz4nd8m5k5h966s3i3wqgiy78nz5jk5x00ibm2gz7flbish9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; No such file or directory
+       #:cargo-development-inputs (("rust-ttf-parser" ,rust-ttf-parser-0.15))))
+    (home-page "https://github.com/typst/subsetter")
+    (synopsis "Reduces the size and coverage of OpenType fonts")
+    (description
+     "This package provides Reduces the size and coverage of @code{OpenType} fonts.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-supercow-0.1
   (package
     (name "rust-supercow")
@@ -75844,6 +77062,52 @@ (define-public rust-svd-parser-0.10
     (description "This package provides a CMSIS-SVD file parser.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-svg2pdf-0.10
+  (package
+    (name "rust-svg2pdf")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "svg2pdf" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0gk9nd92nlp40r5ickfjqj31nqkvfmx255v5v5zlks1b0qqb6dms"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; No such file or directory
+       #:cargo-inputs (("rust-image" ,rust-image-0.24)
+                       ("rust-miniz-oxide" ,rust-miniz-oxide-0.7)
+                       ("rust-once-cell" ,rust-once-cell-1)
+                       ("rust-pdf-writer" ,rust-pdf-writer-0.9)
+                       ("rust-resvg" ,rust-resvg-0.38)
+                       ("rust-tiny-skia" ,rust-tiny-skia-0.11)
+                       ("rust-usvg" ,rust-usvg-0.38))))
+    (home-page "https://github.com/typst/svg2pdf")
+    (synopsis "Convert SVG files to PDFs")
+    (description "This package provides Convert SVG files to PDFs.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-svgtypes-0.13
+  (package
+    (name "rust-svgtypes")
+    (version "0.13.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "svgtypes" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0w4xknlff1np8l9if7y8ig6bx44bjr006m5xgj8ih0wnrn4f4i3f"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-kurbo" ,rust-kurbo-0.9)
+                       ("rust-siphasher" ,rust-siphasher-0.3))))
+    (home-page "https://github.com/RazrFalcon/svgtypes")
+    (synopsis "SVG types parser")
+    (description "This package provides SVG types parser.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-svgtypes-0.5
   (package
     (name "rust-svgtypes")
@@ -76807,6 +78071,29 @@ (define-public rust-synstructure-0.12
      "This package provides helper methods and macros for custom derives.")
     (license license:expat)))
 
+(define-public rust-synstructure-0.13
+  (package
+    (name "rust-synstructure")
+    (version "0.13.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "synstructure" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0wc9f002ia2zqcbj0q2id5x6n7g1zjqba7qkg2mr0qvvmdk7dby8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
+                       ("rust-quote" ,rust-quote-1)
+                       ("rust-syn" ,rust-syn-2))
+       #:cargo-development-inputs (("rust-synstructure-test-traits" ,rust-synstructure-test-traits-0.1))))
+    (home-page "https://github.com/mystor/synstructure")
+    (synopsis "Helper methods and macros for custom derives")
+    (description
+     "This package provides Helper methods and macros for custom derives.")
+    (license license:expat)))
+
 (define-public rust-synstructure-test-traits-0.1
   (package
     (name "rust-synstructure-test-traits")
@@ -80820,6 +82107,35 @@ (define-public rust-tinyfiledialogs-3
 C library.")
     (license license:zlib)))
 
+(define-public rust-tinystr-0.7
+  (package
+    (name "rust-tinystr")
+    (version "0.7.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tinystr" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0bxqaw7z8r2kzngxlzlgvld1r6jbnwyylyvyjbv1q71rvgaga5wi"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; unresolved import `rand::rngs::SmallRng`
+       #:cargo-inputs (("rust-databake" ,rust-databake-0.1)
+                       ("rust-displaydoc" ,rust-displaydoc-0.2)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-zerovec" ,rust-zerovec-0.10))
+       #:cargo-development-inputs (("rust-bincode" ,rust-bincode-1)
+                                   ("rust-criterion" ,rust-criterion-0.5)
+                                   ("rust-postcard" ,rust-postcard-1)
+                                   ("rust-rand" ,rust-rand-0.8)
+                                   ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/unicode-org/icu4x")
+    (synopsis "small ASCII-only bounded length string representation.")
+    (description
+     "This package provides a small ASCII-only bounded length string representation.")
+    (license license:unicode)))
+
 (define-public rust-tinytemplate-1
   (package
     (name "rust-tinytemplate")
@@ -84468,6 +85784,30 @@ (define-public rust-tstr-proc-macros-0.2
     (description "Implementation detail of tstr.")
     (license license:zlib)))
 
+(define-public rust-ttf-parser-0.15
+  (package
+    (name "rust-ttf-parser")
+    (version "0.15.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ttf-parser" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1pfqn06vjlr6pvlljjmkmcb2kb8ind09q5f78nvxc3nqp74hcgkv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs (("rust-base64" ,rust-base64-0.13)
+                                   ("rust-pico-args" ,rust-pico-args-0.5)
+                                   ("rust-xmlwriter" ,rust-xmlwriter-0.1))))
+    (home-page "https://github.com/RazrFalcon/ttf-parser")
+    (synopsis
+     "high-level, safe, zero-allocation font parser for TrueType, OpenType, and AAT.")
+    (description
+     "This package provides a high-level, safe, zero-allocation font parser for
+@code{TrueType}, @code{OpenType}, and AAT.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-ttf-parser-0.19
   (package
     (name "rust-ttf-parser")
@@ -84519,6 +85859,30 @@ (define-public rust-ttf-parser-0.12
         (base32 "1rkj90w4k21y88i69rlwb8pyfvv5lnb7x2b8yvdan21gha5gbqks"))))
     (arguments `(#:skip-build? #t))))
 
+(define-public rust-ttf-parser-0.20
+  (package
+    (name "rust-ttf-parser")
+    (version "0.20.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ttf-parser" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1d4n3p9ccjvy4mj72700i0c2q6d49dxjpwflw47q79rpv1v7vxqp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs (("rust-base64" ,rust-base64-0.13)
+                                   ("rust-pico-args" ,rust-pico-args-0.5)
+                                   ("rust-xmlwriter" ,rust-xmlwriter-0.1))))
+    (home-page "https://github.com/RazrFalcon/ttf-parser")
+    (synopsis
+     "high-level, safe, zero-allocation font parser for TrueType, OpenType, and AAT.")
+    (description
+     "This package provides a high-level, safe, zero-allocation font parser for
+@code{TrueType}, @code{OpenType}, and AAT.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-ttf-parser-0.6
   (package
     (inherit rust-ttf-parser-0.12)
@@ -84809,6 +86173,30 @@ (define-public rust-tun-tap-0.1
     (description "This package provides a TUN/TAP interface wrapper.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-two-face-0.3
+  (package
+    (name "rust-two-face")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "two-face" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ssydfj3cdjf28pmy84wjhayp5s66xnr0b57zgpcfn94bc9x5gip"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-once-cell" ,rust-once-cell-1)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-syntect" ,rust-syntect-5))
+       #:cargo-development-inputs (("rust-strum" ,rust-strum-0.25)
+                                   ("rust-syntect" ,rust-syntect-5))))
+    (home-page "https://github.com/CosmicHorrorDev/two-face")
+    (synopsis "Extra syntax and theme definitions for syntect")
+    (description
+     "This package provides Extra syntax and theme definitions for syntect.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-twoway-0.2
   (package
     (name "rust-twoway")
@@ -85162,6 +86550,265 @@ (define-public rust-typewit-proc-macros-1
     (description "Implementation detail of typewit.")
     (license license:zlib)))
 
+(define-public rust-typst-0.11
+  (package
+    (name "rust-typst")
+    (version "0.11.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "typst" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "16psqnwkzrrgqpqnl2dl4zcx6pwy6gpm1bj3057ljdq9sabj4j8j"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; use of undeclared crate or module `typst_dev_assets`
+       #:cargo-inputs (("rust-az" ,rust-az-1)
+                       ("rust-bitflags" ,rust-bitflags-2)
+                       ("rust-chinese-number" ,rust-chinese-number-0.7)
+                       ("rust-ciborium" ,rust-ciborium-0.2)
+                       ("rust-comemo" ,rust-comemo-0.4)
+                       ("rust-csv" ,rust-csv-1)
+                       ("rust-ecow" ,rust-ecow-0.2)
+                       ("rust-fontdb" ,rust-fontdb-0.16)
+                       ("rust-hayagriva" ,rust-hayagriva-0.5)
+                       ("rust-hypher" ,rust-hypher-0.1)
+                       ("rust-icu-properties" ,rust-icu-properties-1)
+                       ("rust-icu-provider" ,rust-icu-provider-1)
+                       ("rust-icu-provider-adapters" ,rust-icu-provider-adapters-1)
+                       ("rust-icu-provider-blob" ,rust-icu-provider-blob-1)
+                       ("rust-icu-segmenter" ,rust-icu-segmenter-1)
+                       ("rust-if-chain" ,rust-if-chain-1)
+                       ("rust-image" ,rust-image-0.24)
+                       ("rust-indexmap" ,rust-indexmap-2)
+                       ("rust-kamadak-exif" ,rust-kamadak-exif-0.5)
+                       ("rust-kurbo" ,rust-kurbo-0.9)
+                       ("rust-lipsum" ,rust-lipsum-0.9)
+                       ("rust-log" ,rust-log-0.4)
+                       ("rust-once-cell" ,rust-once-cell-1)
+                       ("rust-palette" ,rust-palette-0.7)
+                       ("rust-phf" ,rust-phf-0.11)
+                       ("rust-png" ,rust-png-0.17)
+                       ("rust-portable-atomic" ,rust-portable-atomic-1)
+                       ("rust-qcms" ,rust-qcms-0.3)
+                       ("rust-rayon" ,rust-rayon-1)
+                       ("rust-regex" ,rust-regex-1)
+                       ("rust-roxmltree" ,rust-roxmltree-0.19)
+                       ("rust-rustybuzz" ,rust-rustybuzz-0.12)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-serde-json" ,rust-serde-json-1)
+                       ("rust-serde-yaml" ,rust-serde-yaml-0.9)
+                       ("rust-siphasher" ,rust-siphasher-1)
+                       ("rust-smallvec" ,rust-smallvec-1)
+                       ("rust-stacker" ,rust-stacker-0.1)
+                       ("rust-syntect" ,rust-syntect-5)
+                       ("rust-time" ,rust-time-0.3)
+                       ("rust-toml" ,rust-toml-0.8)
+                       ("rust-ttf-parser" ,rust-ttf-parser-0.20)
+                       ("rust-two-face" ,rust-two-face-0.3)
+                       ("rust-typed-arena" ,rust-typed-arena-2)
+                       ("rust-typst-assets" ,rust-typst-assets-0.11)
+                       ("rust-typst-macros" ,rust-typst-macros-0.11)
+                       ("rust-typst-syntax" ,rust-typst-syntax-0.11)
+                       ("rust-typst-timing" ,rust-typst-timing-0.11)
+                       ("rust-unicode-bidi" ,rust-unicode-bidi-0.3)
+                       ("rust-unicode-math-class" ,rust-unicode-math-class-0.1)
+                       ("rust-unicode-script" ,rust-unicode-script-0.5)
+                       ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
+                       ("rust-usvg" ,rust-usvg-0.38)
+                       ("rust-wasmi" ,rust-wasmi-0.31))))
+    (home-page "https://typst.app")
+    (synopsis
+     "new markup-based typesetting system that is powerful and easy to learn.")
+    (description
+     "This package provides a new markup-based typesetting system that is powerful and
+easy to learn.")
+    (license license:asl2.0)))
+
+(define-public rust-typst-assets-0.11
+  (package
+    (name "rust-typst-assets")
+    (version "0.11.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "typst-assets" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "172dxzw8nvps72p9mi43568v8p25812v56hw933yxs38sbw62c1b"))))
+    (build-system cargo-build-system)
+    (home-page "https://typst.app")
+    (synopsis "Assets for the Typst compiler")
+    (description "This package provides Assets for the Typst compiler.")
+    (license license:asl2.0)))
+
+(define-public rust-typst-macros-0.11
+  (package
+    (name "rust-typst-macros")
+    (version "0.11.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "typst-macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1z33hci300cvllg6i2j9qf5pwwwc8fwfa5a2iq7hp4ml8vyzv875"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-heck" ,rust-heck-0.4)
+                       ("rust-proc-macro2" ,rust-proc-macro2-1)
+                       ("rust-quote" ,rust-quote-1)
+                       ("rust-syn" ,rust-syn-2))))
+    (home-page "https://typst.app")
+    (synopsis "Proc-macros for Typst")
+    (description "This package provides Proc-macros for Typst.")
+    (license license:asl2.0)))
+
+(define-public rust-typst-pdf-0.11
+  (package
+    (name "rust-typst-pdf")
+    (version "0.11.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "typst-pdf" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1mg0lhkk5zyf6rsk0a5vnizvs7xfj1j642113g9pdr9h8fv47xsl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-base64" ,rust-base64-0.22)
+                       ("rust-bytemuck" ,rust-bytemuck-1)
+                       ("rust-comemo" ,rust-comemo-0.4)
+                       ("rust-ecow" ,rust-ecow-0.2)
+                       ("rust-image" ,rust-image-0.24)
+                       ("rust-miniz-oxide" ,rust-miniz-oxide-0.7)
+                       ("rust-once-cell" ,rust-once-cell-1)
+                       ("rust-pdf-writer" ,rust-pdf-writer-0.9)
+                       ("rust-subsetter" ,rust-subsetter-0.1)
+                       ("rust-svg2pdf" ,rust-svg2pdf-0.10)
+                       ("rust-ttf-parser" ,rust-ttf-parser-0.20)
+                       ("rust-typst" ,rust-typst-0.11)
+                       ("rust-typst-assets" ,rust-typst-assets-0.11)
+                       ("rust-typst-macros" ,rust-typst-macros-0.11)
+                       ("rust-typst-timing" ,rust-typst-timing-0.11)
+                       ("rust-unicode-properties" ,rust-unicode-properties-0.1)
+                       ("rust-unscanny" ,rust-unscanny-0.1)
+                       ("rust-xmp-writer" ,rust-xmp-writer-0.2))))
+    (home-page "https://typst.app")
+    (synopsis "PDF exporter for Typst")
+    (description "This package provides PDF exporter for Typst.")
+    (license license:asl2.0)))
+
+(define-public rust-typst-render-0.11
+  (package
+    (name "rust-typst-render")
+    (version "0.11.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "typst-render" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0zmdnsv5nd3qw9zm7anv494av9f1pp7lwi5cwpyq6mp6znljy4kg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-bytemuck" ,rust-bytemuck-1)
+                       ("rust-comemo" ,rust-comemo-0.4)
+                       ("rust-flate2" ,rust-flate2-1)
+                       ("rust-image" ,rust-image-0.24)
+                       ("rust-pixglyph" ,rust-pixglyph-0.3)
+                       ("rust-resvg" ,rust-resvg-0.38)
+                       ("rust-roxmltree" ,rust-roxmltree-0.19)
+                       ("rust-tiny-skia" ,rust-tiny-skia-0.11)
+                       ("rust-ttf-parser" ,rust-ttf-parser-0.20)
+                       ("rust-typst" ,rust-typst-0.11)
+                       ("rust-typst-macros" ,rust-typst-macros-0.11)
+                       ("rust-typst-timing" ,rust-typst-timing-0.11)
+                       ("rust-usvg" ,rust-usvg-0.38))))
+    (home-page "https://typst.app")
+    (synopsis "Raster image exporter for Typst")
+    (description "This package provides Raster image exporter for Typst.")
+    (license license:asl2.0)))
+
+(define-public rust-typst-svg-0.11
+  (package
+    (name "rust-typst-svg")
+    (version "0.11.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "typst-svg" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0fz2maws498x19ai7h421s4jab2b6zlazq09zgm1rj3909jf7x6f"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-base64" ,rust-base64-0.22)
+                       ("rust-comemo" ,rust-comemo-0.4)
+                       ("rust-ecow" ,rust-ecow-0.2)
+                       ("rust-flate2" ,rust-flate2-1)
+                       ("rust-ttf-parser" ,rust-ttf-parser-0.20)
+                       ("rust-typst" ,rust-typst-0.11)
+                       ("rust-typst-macros" ,rust-typst-macros-0.11)
+                       ("rust-typst-timing" ,rust-typst-timing-0.11)
+                       ("rust-xmlparser" ,rust-xmlparser-0.13)
+                       ("rust-xmlwriter" ,rust-xmlwriter-0.1))))
+    (home-page "https://typst.app")
+    (synopsis "SVG exporter for Typst")
+    (description "This package provides SVG exporter for Typst.")
+    (license license:asl2.0)))
+
+(define-public rust-typst-syntax-0.11
+  (package
+    (name "rust-typst-syntax")
+    (version "0.11.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "typst-syntax" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1i20vfmdxkk0ym36rqwy15zi6965gpyl9v6vdvzv24qnykr6knz3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-comemo" ,rust-comemo-0.4)
+                       ("rust-ecow" ,rust-ecow-0.2)
+                       ("rust-once-cell" ,rust-once-cell-1)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-unicode-ident" ,rust-unicode-ident-1)
+                       ("rust-unicode-math-class" ,rust-unicode-math-class-0.1)
+                       ("rust-unicode-script" ,rust-unicode-script-0.5)
+                       ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
+                       ("rust-unscanny" ,rust-unscanny-0.1))))
+    (home-page "https://typst.app")
+    (synopsis "Parser and syntax tree for Typst")
+    (description "This package provides Parser and syntax tree for Typst.")
+    (license license:asl2.0)))
+
+(define-public rust-typst-timing-0.11
+  (package
+    (name "rust-typst-timing")
+    (version "0.11.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "typst-timing" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0rzfmxzkan0sa2n89qwwjjr0iw3hrvpd7rmckaiv5b5wj9qy2n2v"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-parking-lot" ,rust-parking-lot-0.12)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-serde-json" ,rust-serde-json-1)
+                       ("rust-typst-syntax" ,rust-typst-syntax-0.11))))
+    (home-page "https://typst.app")
+    (synopsis "Performance timing for Typst")
+    (description "This package provides Performance timing for Typst.")
+    (license license:asl2.0)))
+
 (define-public rust-tz-rs-0.6
   (package
     (name "rust-tz-rs")
@@ -85651,6 +87298,215 @@ (define-public rust-ungrammar-1
      "This package provides a DSL for describing concrete syntax trees.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-unic-langid-0.9
+  (package
+    (name "rust-unic-langid")
+    (version "0.9.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unic-langid" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0i2s024frmpfa68lzy8y8vnb1rz3m9v0ga13f7h2afx7f8g9vp93"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-unic-langid-impl" ,rust-unic-langid-impl-0.9)
+                       ("rust-unic-langid-macros" ,rust-unic-langid-macros-0.9))
+       #:cargo-development-inputs (("rust-unic-langid-macros" ,rust-unic-langid-macros-0.9))))
+    (home-page "https://github.com/zbraniecki/unic-locale")
+    (synopsis "API for managing Unicode Language Identifiers")
+    (description
+     "This package provides API for managing Unicode Language Identifiers.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-unic-langid-impl-0.9
+  (package
+    (name "rust-unic-langid-impl")
+    (version "0.9.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unic-langid-impl" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1rckyn5wqd5h8jxhbzlbbagr459zkzg822r4k5n30jaryv0j4m0a"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; No such file or directory
+       #:cargo-inputs (("rust-serde" ,rust-serde-1)
+                       ("rust-serde-json" ,rust-serde-json-1)
+                       ("rust-tinystr" ,rust-tinystr-0.7))
+       #:cargo-development-inputs (("rust-criterion" ,rust-criterion-0.3)
+                                   ("rust-serde" ,rust-serde-1)
+                                   ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/zbraniecki/unic-locale")
+    (synopsis "API for managing Unicode Language Identifiers")
+    (description
+     "This package provides API for managing Unicode Language Identifiers.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-unic-langid-macros-0.9
+  (package
+    (name "rust-unic-langid-macros")
+    (version "0.9.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unic-langid-macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0pi71r5474n7sdmyky7qpnia9rrr42q0d200l5lpag1d0hncv88d"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)
+                       ("rust-tinystr" ,rust-tinystr-0.7)
+                       ("rust-unic-langid-impl" ,rust-unic-langid-impl-0.9)
+                       ("rust-unic-langid-macros-impl" ,rust-unic-langid-macros-impl-0.9))))
+    (home-page "https://github.com/zbraniecki/unic-locale")
+    (synopsis "API for managing Unicode Language Identifiers")
+    (description
+     "This package provides API for managing Unicode Language Identifiers.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-unic-langid-macros-impl-0.9
+  (package
+    (name "rust-unic-langid-macros-impl")
+    (version "0.9.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unic-langid-macros-impl" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0nsm0hky2sawgkwz511br06mkm3ba70rfc05jm0l54x3gciz9mqy"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)
+                       ("rust-quote" ,rust-quote-1)
+                       ("rust-syn" ,rust-syn-2)
+                       ("rust-unic-langid-impl" ,rust-unic-langid-impl-0.9))))
+    (home-page "https://github.com/zbraniecki/unic-locale")
+    (synopsis "API for managing Unicode Language Identifiers")
+    (description
+     "This package provides API for managing Unicode Language Identifiers.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-unicode-bidi-mirroring-0.1
+  (package
+    (name "rust-unicode-bidi-mirroring")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unicode-bidi-mirroring" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "150navn2n6barkzchv96n877i17m1754nzmy1282zmcjzdh25lan"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/RazrFalcon/unicode-bidi-mirroring")
+    (synopsis "Unicode Bidi Mirroring property detection")
+    (description
+     "This package provides Unicode Bidi Mirroring property detection.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-unicode-ccc-0.1
+  (package
+    (name "rust-unicode-ccc")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unicode-ccc" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1wbwny92wzmck2cix5h3r97h9z57x9831kadrs6jdy24lvpj09fc"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/RazrFalcon/unicode-ccc")
+    (synopsis "Unicode Canonical Combining Class detection")
+    (description
+     "This package provides Unicode Canonical Combining Class detection.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-unicode-math-class-0.1
+  (package
+    (name "rust-unicode-math-class")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unicode-math-class" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0rbxcjirldpdrpxv1l7qiadbib8rnl7b413fsp4f7ynmk7snq93x"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/typst/unicode-math-class")
+    (synopsis "Determine the Unicode class of a mathematical character")
+    (description
+     "This package provides Determine the Unicode class of a mathematical character.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-unicode-properties-0.1
+  (package
+    (name "rust-unicode-properties")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unicode-properties" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "14cjbmfs64qw1m4qzpfa673a8rpyhp5h9f412mkg1n958jfrs9g4"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/unicode-rs/unicode-properties")
+    (synopsis "Query character Unicode properties according to
+UAX #44 and UTR #51.")
+    (description
+     "This package provides Query character Unicode properties according to UAX #44 and UTR #51.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-unicode-script-0.5
+  (package
+    (name "rust-unicode-script")
+    (version "0.5.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unicode-script" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1kf9v1yfxazxjx07g9g9nqg4kw2kzpnyi7syjdd2hpvffbsp33dd"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+                       ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
+                       ("rust-rustc-std-workspace-std" ,rust-rustc-std-workspace-std-1))))
+    (home-page "https://github.com/unicode-rs/unicode-script")
+    (synopsis
+     "This crate exposes the Unicode `Script` and `Script_Extension` properties from [UAX #24](http://www.unicode.org/reports/tr24/)")
+    (description
+     "This crate exposes the Unicode `Script` and `Script_Extension` properties from
+[UAX #24](http://www.unicode.org/reports/tr24/).")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-unicode-vo-0.1
+  (package
+    (name "rust-unicode-vo")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unicode-vo" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "151sha088v9jyfvbg5164xh4dk72g53b82xm4zzbf5dlagzqdlxi"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/RazrFalcon/unicode-vo")
+    (synopsis "Unicode vertical orientation detection")
+    (description
+     "This package provides Unicode vertical orientation detection.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-unidecode-0.3
   (package
     (name "rust-unidecode")
@@ -86452,6 +88308,23 @@ (define-public rust-unsafe-unwrap-0.1
      "This crate enables unchecked unwrapping on Option and Result types.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-unscanny-0.1
+  (package
+    (name "rust-unscanny")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unscanny" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ivbipc1rnq15fhzgna41p1h01ncq4shycii72f3x5d7czq2mpz9"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/typst/unscanny")
+    (synopsis "Painless string scanning")
+    (description "This package provides Painless string scanning.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-unsize-1
   (package
     (name "rust-unsize")
@@ -86715,6 +88588,108 @@ (define-public rust-users-0.11
 Unix users and groups.")
     (license license:expat)))
 
+(define-public rust-usvg-0.38
+  (package
+    (name "rust-usvg")
+    (version "0.38.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "usvg" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "098n1l980dz58fcrlxrsy7k584dc3nmq1an1aj3dwwy1lfs64zrp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-base64" ,rust-base64-0.21)
+                       ("rust-log" ,rust-log-0.4)
+                       ("rust-pico-args" ,rust-pico-args-0.5)
+                       ("rust-usvg-parser" ,rust-usvg-parser-0.38)
+                       ("rust-usvg-text-layout" ,rust-usvg-text-layout-0.38)
+                       ("rust-usvg-tree" ,rust-usvg-tree-0.38)
+                       ("rust-xmlwriter" ,rust-xmlwriter-0.1))
+       #:cargo-development-inputs (("rust-once-cell" ,rust-once-cell-1))))
+    (home-page "https://github.com/RazrFalcon/resvg")
+    (synopsis "An SVG simplification library")
+    (description "This package provides An SVG simplification library.")
+    (license license:mpl2.0)))
+
+(define-public rust-usvg-parser-0.38
+  (package
+    (name "rust-usvg-parser")
+    (version "0.38.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "usvg-parser" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1c0lk23aij52hwjx9mrhz7ffyyljld044wvgji76ng82ybk0a6im"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-data-url" ,rust-data-url-0.3)
+                       ("rust-flate2" ,rust-flate2-1)
+                       ("rust-imagesize" ,rust-imagesize-0.12)
+                       ("rust-kurbo" ,rust-kurbo-0.9)
+                       ("rust-log" ,rust-log-0.4)
+                       ("rust-roxmltree" ,rust-roxmltree-0.19)
+                       ("rust-simplecss" ,rust-simplecss-0.2)
+                       ("rust-siphasher" ,rust-siphasher-0.3)
+                       ("rust-svgtypes" ,rust-svgtypes-0.13)
+                       ("rust-usvg-tree" ,rust-usvg-tree-0.38))))
+    (home-page "https://github.com/RazrFalcon/resvg")
+    (synopsis "An SVG parser used by usvg")
+    (description "This package provides An SVG parser used by usvg.")
+    (license license:mpl2.0)))
+
+(define-public rust-usvg-text-layout-0.38
+  (package
+    (name "rust-usvg-text-layout")
+    (version "0.38.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "usvg-text-layout" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1qj6vgk7244by314j5wgp58k5s5xgc29vbrfhpz33x2wkn5qhhcc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-fontdb" ,rust-fontdb-0.16)
+                       ("rust-kurbo" ,rust-kurbo-0.9)
+                       ("rust-log" ,rust-log-0.4)
+                       ("rust-rustybuzz" ,rust-rustybuzz-0.12)
+                       ("rust-unicode-bidi" ,rust-unicode-bidi-0.3)
+                       ("rust-unicode-script" ,rust-unicode-script-0.5)
+                       ("rust-unicode-vo" ,rust-unicode-vo-0.1)
+                       ("rust-usvg-tree" ,rust-usvg-tree-0.38))))
+    (home-page "https://github.com/RazrFalcon/resvg")
+    (synopsis "An SVG text layout implementation")
+    (description "This package provides An SVG text layout implementation.")
+    (license license:mpl2.0)))
+
+(define-public rust-usvg-tree-0.38
+  (package
+    (name "rust-usvg-tree")
+    (version "0.38.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "usvg-tree" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "01czj22qlzdy5p7y6i1j58k4z7yv8q8mnb1narp3s5gd0h23x1hq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-strict-num" ,rust-strict-num-0.1)
+                       ("rust-svgtypes" ,rust-svgtypes-0.13)
+                       ("rust-tiny-skia-path" ,rust-tiny-skia-path-0.11))))
+    (home-page "https://github.com/RazrFalcon/resvg")
+    (synopsis "An SVG tree representation used by usvg")
+    (description
+     "This package provides An SVG tree representation used by usvg.")
+    (license license:mpl2.0)))
+
 (define-public rust-utf-8-0.7
   (package
     (name "rust-utf-8")
@@ -86737,6 +88712,24 @@ (define-public rust-utf-8-0.7
      "Incremental, zero-copy UTF-8 decoding with error handling.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-utf8-iter-1
+  (package
+    (name "rust-utf8-iter")
+    (version "1.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "utf8_iter" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1gmna9flnj8dbyd8ba17zigrp9c4c3zclngf5lnb5yvz1ri41hdn"))))
+    (build-system cargo-build-system)
+    (home-page "https://docs.rs/utf8_iter/")
+    (synopsis "Iterator by char over potentially-invalid UTF-8 in &[u8]")
+    (description
+     "This package provides Iterator by char over potentially-invalid UTF-8 in &[u8].")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-utf8-ranges-1
   (package
     (name "rust-utf8-ranges")
@@ -88683,6 +90676,55 @@ (define-public rust-wasm-bindgen-test-macro-0.2
        (("rust-proc-macro2" ,rust-proc-macro2-0.4)
         ("rust-quote" ,rust-quote-0.6))))))
 
+(define-public rust-wasm-encoder-0.215
+  (package
+    (name "rust-wasm-encoder")
+    (version "0.215.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wasm-encoder" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0iw886v4jzvbwxakiswsk81824m51fjnjabxwdvnp3kbw3rnvdag"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; unresolved import `wasmparser`
+       #:cargo-inputs (("rust-leb128" ,rust-leb128-0.2)
+                       ("rust-wasmparser" ,rust-wasmparser-0.215))
+       #:cargo-development-inputs (("rust-anyhow" ,rust-anyhow-1)
+                                   ("rust-tempfile" ,rust-tempfile-3))))
+    (home-page
+     "https://github.com/bytecodealliance/wasm-tools/tree/main/crates/wasm-encoder")
+    (synopsis "low-level WebAssembly encoder.")
+    (description
+     "This package provides a low-level @code{WebAssembly} encoder.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-wasm-encoder-0.31
+  (package
+    (name "rust-wasm-encoder")
+    (version "0.31.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wasm-encoder" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "05nyajlmqgvyq7ynqhs1hbsmkafkjrj4dyqszygkklgyx8h3yxj1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; unresolved import `wasmparser`
+       #:cargo-inputs (("rust-leb128" ,rust-leb128-0.2))
+       #:cargo-development-inputs (("rust-anyhow" ,rust-anyhow-1)
+                                   ("rust-tempfile" ,rust-tempfile-3))))
+    (home-page
+     "https://github.com/bytecodealliance/wasm-tools/tree/main/crates/wasm-encoder")
+    (synopsis "low-level WebAssembly encoder.")
+    (description
+     "This package provides a low-level @code{WebAssembly} encoder.")
+    (license (list license:asl2.0))))
+
 (define-public rust-wasm-encoder-0.38
   (package
     (name "rust-wasm-encoder")
@@ -88807,6 +90849,76 @@ (define-public rust-wasm-sync-0.1
 and native running processes.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-wasmi-0.31
+  (package
+    (name "rust-wasmi")
+    (version "0.31.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wasmi" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1isnchb3vd6cndfrjfiql6nhq9qcvnfzlgkaqxady3363lfjia3p"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-smallvec" ,rust-smallvec-1)
+                       ("rust-spin" ,rust-spin-0.9)
+                       ("rust-wasmi-arena" ,rust-wasmi-arena-0.4)
+                       ("rust-wasmi-core" ,rust-wasmi-core-0.13)
+                       ("rust-wasmparser-nostd" ,rust-wasmparser-nostd-0.100))
+       #:cargo-development-inputs (("rust-anyhow" ,rust-anyhow-1)
+                                   ("rust-assert-matches" ,rust-assert-matches-1)
+                                   ("rust-criterion" ,rust-criterion-0.5)
+                                   ("rust-wast" ,rust-wast-62)
+                                   ("rust-wat" ,rust-wat-1))))
+    (home-page "https://github.com/wasmi-labs/wasmi")
+    (synopsis "WebAssembly interpreter")
+    (description "This package provides @code{WebAssembly} interpreter.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-wasmi-arena-0.4
+  (package
+    (name "rust-wasmi-arena")
+    (version "0.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wasmi_arena" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0wvhfah2ccvhl4vwycbncfcnb78ndgbkac3v56n0qms4prrpyjhh"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/paritytech/wasmi")
+    (synopsis "Entity arena data structures for wasmi")
+    (description
+     "This package provides Entity arena data structures for wasmi.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-wasmi-core-0.13
+  (package
+    (name "rust-wasmi-core")
+    (version "0.13.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wasmi_core" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0sl5356hb8iz3l297jvd4ml62fhcq0h2f031qa2mpydz6kdsgwfw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-downcast-rs" ,rust-downcast-rs-1)
+                       ("rust-libm" ,rust-libm-0.2)
+                       ("rust-num-traits" ,rust-num-traits-0.2)
+                       ("rust-paste" ,rust-paste-1))
+       #:cargo-development-inputs (("rust-rand" ,rust-rand-0.8))))
+    (home-page "https://github.com/wasmi-labs/wasmi")
+    (synopsis "Core primitives for the wasmi WebAssembly interpreter")
+    (description
+     "This package provides Core primitives for the wasmi @code{WebAssembly} interpreter.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-wasmparser-0.118
   (package
     (name "rust-wasmparser")
@@ -88838,6 +90950,41 @@ (define-public rust-wasmparser-0.118
 @code{WebAssembly} binary files.")
     (license license:asl2.0)))
 
+(define-public rust-wasmparser-0.215
+  (package
+    (name "rust-wasmparser")
+    (version "0.215.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wasmparser" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "03nryws9f2awvfd47z5pn67aqif1z7w6z6zl3jw9jhgjh44dxysk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; use of undeclared crate or module `wat`
+       #:cargo-inputs (("rust-ahash" ,rust-ahash-0.8)
+                       ("rust-bitflags" ,rust-bitflags-2)
+                       ("rust-hashbrown" ,rust-hashbrown-0.14)
+                       ("rust-indexmap" ,rust-indexmap-2)
+                       ("rust-semver" ,rust-semver-1)
+                       ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs (("rust-anyhow" ,rust-anyhow-1)
+                                   ("rust-criterion" ,rust-criterion-0.5)
+                                   ("rust-env-logger" ,rust-env-logger-0.11)
+                                   ("rust-log" ,rust-log-0.4)
+                                   ("rust-once-cell" ,rust-once-cell-1)
+                                   ("rust-rayon" ,rust-rayon-1))))
+    (home-page
+     "https://github.com/bytecodealliance/wasm-tools/tree/main/crates/wasmparser")
+    (synopsis
+     "simple event-driven library for parsing WebAssembly binary files.")
+    (description
+     "This package provides a simple event-driven library for parsing
+@code{WebAssembly} binary files.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-wasmparser-0.57
   (package
     (inherit rust-wasmparser-0.118)
@@ -88852,6 +90999,114 @@ (define-public rust-wasmparser-0.57
         (base32 "19kslk9pv1bcyp85w63dn1adbp13kz7kjha80abnwz27bmbxvz9j"))))
     (arguments `(#:skip-build? #t))))
 
+(define-public rust-wasmparser-nostd-0.100
+  (package
+    (name "rust-wasmparser-nostd")
+    (version "0.100.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wasmparser-nostd" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ak4bi9k9jb223xw7mlxkgim6lp7m8bwfqhlpfa4ll7kjpz1b86m"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; use of undeclared crate or module `wat`
+       #:cargo-inputs (("rust-indexmap-nostd" ,rust-indexmap-nostd-0.4))
+       #:cargo-development-inputs (("rust-anyhow" ,rust-anyhow-1)
+                                   ("rust-criterion" ,rust-criterion-0.3)
+                                   ("rust-once-cell" ,rust-once-cell-1)
+                                   ("rust-rayon" ,rust-rayon-1))))
+    (home-page
+     "https://github.com/bytecodealliance/wasm-tools/tree/main/crates/wasmparser")
+    (synopsis
+     "simple event-driven library for parsing WebAssembly binary files.")
+    (description
+     "This package provides a simple event-driven library for parsing
+@code{WebAssembly} binary files.")
+    (license (list license:asl2.0))))
+
+(define-public rust-wast-215
+  (package
+    (name "rust-wast")
+    (version "215.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wast" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1jslxdhsnrjfky3a41iqvk2g2hhzgi5f02vjc2g294rmi46x1w8z"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; unresolved import `wasmparser`
+       #:cargo-inputs (("rust-bumpalo" ,rust-bumpalo-3)
+                       ("rust-gimli" ,rust-gimli-0.30)
+                       ("rust-leb128" ,rust-leb128-0.2)
+                       ("rust-memchr" ,rust-memchr-2)
+                       ("rust-unicode-width" ,rust-unicode-width-0.1)
+                       ("rust-wasm-encoder" ,rust-wasm-encoder-0.215))
+       #:cargo-development-inputs (("rust-anyhow" ,rust-anyhow-1)
+                                   ("rust-libtest-mimic" ,rust-libtest-mimic-0.7)
+                                   ("rust-rand" ,rust-rand-0.8))))
+    (home-page
+     "https://github.com/bytecodealliance/wasm-tools/tree/main/crates/wast")
+    (synopsis
+     "Customizable Rust parsers for the WebAssembly Text formats WAT and WAST")
+    (description
+     "This package provides Customizable Rust parsers for the @code{WebAssembly} Text formats WAT and WAST.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-wast-62
+  (package
+    (name "rust-wast")
+    (version "62.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wast" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "07wzrdq9igydq21ljdlx3nfx9q91zbw0yqmxky47ndxykpq0dbmq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; unresolved import `wasmparser`
+       #:cargo-inputs (("rust-leb128" ,rust-leb128-0.2)
+                       ("rust-memchr" ,rust-memchr-2)
+                       ("rust-unicode-width" ,rust-unicode-width-0.1)
+                       ("rust-wasm-encoder" ,rust-wasm-encoder-0.31))
+       #:cargo-development-inputs (("rust-anyhow" ,rust-anyhow-1)
+                                   ("rust-rayon" ,rust-rayon-1))))
+    (home-page
+     "https://github.com/bytecodealliance/wasm-tools/tree/main/crates/wast")
+    (synopsis
+     "Customizable Rust parsers for the WebAssembly Text formats WAT and WAST")
+    (description
+     "This package provides Customizable Rust parsers for the @code{WebAssembly} Text formats WAT and WAST.")
+    (license (list license:asl2.0))))
+
+(define-public rust-wat-1
+  (package
+    (name "rust-wat")
+    (version "1.215.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wat" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0gaf5fzl8lq6rfdiz1x6zbdbc9b5aiyd9pkh5ljawxngr3cz82v7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-wast" ,rust-wast-215))))
+    (home-page
+     "https://github.com/bytecodealliance/wasm-tools/tree/main/crates/wat")
+    (synopsis "Rust parser for the WebAssembly Text format, WAT")
+    (description
+     "This package provides Rust parser for the @code{WebAssembly} Text format, WAT.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-watchexec-2
   (package
     (name "rust-watchexec")
@@ -89973,6 +92228,29 @@ (define-public rust-winnow-0.4
                        ("rust-memchr" ,rust-memchr-2)
                        ("rust-terminal-size" ,rust-terminal-size-0.2))))))
 
+(define-public rust-writeable-0.5
+  (package
+    (name "rust-writeable")
+    (version "0.5.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "writeable" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0lawr6y0bwqfyayf3z8zmqlhpnzhdx0ahs54isacbhyjwa7g778y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; use of undeclared crate or module `icu_benchmark_macros`
+       #:cargo-inputs (("rust-either" ,rust-either-1))
+       #:cargo-development-inputs (("rust-criterion" ,rust-criterion-0.5)
+                                   ("rust-rand" ,rust-rand-0.8))))
+    (home-page "https://github.com/unicode-org/icu4x")
+    (synopsis "more efficient alternative to fmt::Display")
+    (description
+     "This package provides a more efficient alternative to fmt::Display.")
+    (license license:unicode)))
+
 (define-public rust-wycheproof-0.5
   (package
     (name "rust-wycheproof")
@@ -90422,24 +92700,44 @@ (define-public rust-xml5ever-0.16
        (("rust-criterion" ,rust-criterion-0.3)
         ("rust-rustc-test" ,rust-rustc-test-0.3))))))
 
+(define-public rust-xmlparser-0.10
+  (package
+    (name "rust-xmlparser")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "xmlparser" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1sr1d602ng26lx07h3mqn3p3k88sg5d8v8rd1dmrc3fcbdn4j441"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f))    ; cannot find value `stream` in this scope
+    (home-page "https://github.com/RazrFalcon/xmlparser")
+    (synopsis "Pull-based, zero-allocation XML parser")
+    (description
+     "This package provides Pull-based, zero-allocation XML parser.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-xmlparser-0.13
   (package
     (name "rust-xmlparser")
-    (version "0.13.3")
+    (version "0.13.6")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "xmlparser" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1n73ymdxpdq30fgz698095zvh8k5r264rl6pcxnyyrr19nra4jqi"))))
+        (base32 "1r796g21c70p983ax0j6rmhzmalg4rhx61mvd4farxdhfyvy1zk6"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
+    (arguments
+     `(#:tests? #f))    ; Test executable succeeded, but it's marked `should_panic`.
     (home-page "https://github.com/RazrFalcon/xmlparser")
     (synopsis "Pull-based, zero-allocation XML parser")
     (description
-     "@code{xmlparser} is a low-level, pull-based, zero-allocation XML 1.0
-parser.")
+     "This package provides Pull-based, zero-allocation XML parser.")
     (license (list license:expat license:asl2.0))))
 
 (define-public rust-xmltree-0.10
@@ -90489,6 +92787,40 @@ (define-public rust-xmltree-0.8
        (("rust-indexmap" ,rust-indexmap-1)
         ("rust-xml-rs" ,rust-xml-rs-0.7))))))
 
+(define-public rust-xmlwriter-0.1
+  (package
+    (name "rust-xmlwriter")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "xmlwriter" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1fg0ldmkgiis6hnxpi1c9gy7v23y0lpi824bp8yp12fi3r82lypc"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/RazrFalcon/xmlwriter")
+    (synopsis "simple, streaming XML writer.")
+    (description "This package provides a simple, streaming XML writer.")
+    (license license:expat)))
+
+(define-public rust-xmp-writer-0.2
+  (package
+    (name "rust-xmp-writer")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "xmp-writer" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "128r1sfrs9zafv5ndh71f3a06znabcb6rip9w4clpab4iw9vlhs5"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/typst/xmp-writer")
+    (synopsis "Write XMP metadata, step by step")
+    (description "This package provides Write XMP metadata, step by step.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-xxhash-rust-0.8
   (package
     (name "rust-xxhash-rust")
@@ -90795,6 +93127,58 @@ (define-public rust-yeslogic-fontconfig-sys-2
        (("rust-const-cstr" ,rust-const-cstr-0.3)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))))
 
+(define-public rust-yoke-0.7
+  (package
+    (name "rust-yoke")
+    (version "0.7.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "yoke" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "198c4jkh6i3hxijia7mfa4cpnxg1iqym9bz364697c3rn0a16nvc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; could not find `Yokeable` in `yoke`
+       #:cargo-inputs (("rust-serde" ,rust-serde-1)
+                       ("rust-stable-deref-trait" ,rust-stable-deref-trait-1)
+                       ("rust-yoke-derive" ,rust-yoke-derive-0.7)
+                       ("rust-zerofrom" ,rust-zerofrom-0.1))
+       #:cargo-development-inputs (("rust-bincode" ,rust-bincode-1)
+                                   ("rust-postcard" ,rust-postcard-1)
+                                   ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/unicode-org/icu4x")
+    (synopsis
+     "Abstraction allowing borrowed data to be carried along with the backing data it borrows from")
+    (description
+     "This package provides Abstraction allowing borrowed data to be carried along with the backing data it
+borrows from.")
+    (license license:unicode)))
+
+(define-public rust-yoke-derive-0.7
+  (package
+    (name "rust-yoke-derive")
+    (version "0.7.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "yoke-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "15cvhkci2mchfffx3fmva84fpmp34dsmnbzibwfnzjqq3ds33k18"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; use of undeclared crate or module `zerovec`
+       #:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
+                       ("rust-quote" ,rust-quote-1)
+                       ("rust-syn" ,rust-syn-2)
+                       ("rust-synstructure" ,rust-synstructure-0.13))))
+    (home-page "https://github.com/unicode-org/icu4x")
+    (synopsis "Custom derive for the yoke crate")
+    (description "This package provides Custom derive for the yoke crate.")
+    (license license:unicode)))
+
 (define-public rust-z-base-32-0.1
   (package
     (name "rust-z-base-32")
@@ -91197,6 +93581,49 @@ (define-public rust-zerocopy-derive-0.2
        #:cargo-development-inputs
        (("rust-compiletest-rs" ,rust-compiletest-rs-0.3))))))
 
+(define-public rust-zerofrom-0.1
+  (package
+    (name "rust-zerofrom")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "zerofrom" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0mdbjd7vmbix2ynxbrbrrli47a5yrpfx05hi99wf1l4pwwf13v4i"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-zerofrom-derive" ,rust-zerofrom-derive-0.1))))
+    (home-page "https://github.com/unicode-org/icu4x")
+    (synopsis "ZeroFrom trait for constructing")
+    (description
+     "This package provides @code{ZeroFrom} trait for constructing.")
+    (license license:unicode)))
+
+(define-public rust-zerofrom-derive-0.1
+  (package
+    (name "rust-zerofrom-derive")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "zerofrom-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "19b31rrs2ry1lrq5mpdqjzgg65va51fgvwghxnf6da3ycfiv99qf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; use of undeclared crate or module `zerovec`
+       #:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
+                       ("rust-quote" ,rust-quote-1)
+                       ("rust-syn" ,rust-syn-2)
+                       ("rust-synstructure" ,rust-synstructure-0.13))))
+    (home-page "https://github.com/unicode-org/icu4x")
+    (synopsis "Custom derive for the zerofrom crate")
+    (description "This package provides Custom derive for the zerofrom crate.")
+    (license license:unicode)))
+
 (define-public rust-zeroize-1
   (package
     (name "rust-zeroize")
@@ -91246,6 +93673,104 @@ (define-public rust-zeroize-derive-1
     (description "This crate provides custom derive support for Zeroize.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-zerotrie-0.1
+  (package
+    (name "rust-zerotrie")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "zerotrie" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "07qa5ljss8j706iy0rd023naamwly4jfwz0pc1gmqcw7bpalsngv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; use of undeclared crate or module `icu_benchmark_macros`
+       #:cargo-inputs (("rust-databake" ,rust-databake-0.1)
+                       ("rust-displaydoc" ,rust-displaydoc-0.2)
+                       ("rust-litemap" ,rust-litemap-0.7)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-yoke" ,rust-yoke-0.7)
+                       ("rust-zerofrom" ,rust-zerofrom-0.1)
+                       ("rust-zerovec" ,rust-zerovec-0.10))
+       #:cargo-development-inputs (("rust-bincode" ,rust-bincode-1)
+                                   ("rust-criterion" ,rust-criterion-0.5)
+                                   ("rust-postcard" ,rust-postcard-1)
+                                   ("rust-rand" ,rust-rand-0.8)
+                                   ("rust-rand-pcg" ,rust-rand-pcg-0.3)
+                                   ("rust-rmp-serde" ,rust-rmp-serde-1)
+                                   ("rust-serde" ,rust-serde-1)
+                                   ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://icu4x.unicode.org")
+    (synopsis "data structure that efficiently maps strings to integers")
+    (description
+     "This package provides a data structure that efficiently maps strings to
+integers.")
+    (license license:unicode)))
+
+(define-public rust-zerovec-0.10
+  (package
+    (name "rust-zerovec")
+    (version "0.10.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "zerovec" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0yghix7n3fjfdppwghknzvx9v8cf826h2qal5nqvy8yzg4yqjaxa"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f     ; use of undeclared crate or module `databake`
+       #:cargo-inputs (("rust-databake" ,rust-databake-0.1)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-twox-hash" ,rust-twox-hash-1)
+                       ("rust-yoke" ,rust-yoke-0.7)
+                       ("rust-zerofrom" ,rust-zerofrom-0.1)
+                       ("rust-zerovec-derive" ,rust-zerovec-derive-0.10))
+       #:cargo-development-inputs (("rust-bincode" ,rust-bincode-1)
+                                   ("rust-criterion" ,rust-criterion-0.5)
+                                   ("rust-getrandom" ,rust-getrandom-0.2)
+                                   ("rust-iai" ,rust-iai-0.1)
+                                   ("rust-postcard" ,rust-postcard-1)
+                                   ("rust-rand" ,rust-rand-0.8)
+                                   ("rust-rand-distr" ,rust-rand-distr-0.4)
+                                   ("rust-rand-pcg" ,rust-rand-pcg-0.3)
+                                   ("rust-rmp-serde" ,rust-rmp-serde-1)
+                                   ("rust-serde" ,rust-serde-1)
+                                   ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/unicode-org/icu4x")
+    (synopsis "Zero-copy vector backed by a byte array")
+    (description
+     "This package provides Zero-copy vector backed by a byte array.")
+    (license license:unicode)))
+
+(define-public rust-zerovec-derive-0.10
+  (package
+    (name "rust-zerovec-derive")
+    (version "0.10.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "zerovec-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ik322dys6wnap5d3gcsn09azmssq466xryn5czfm13mn7gsdbvf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f    ; unresolved import `zerovec`
+       #:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
+                       ("rust-quote" ,rust-quote-1)
+                       ("rust-syn" ,rust-syn-2))
+       #:cargo-development-inputs (("rust-bincode" ,rust-bincode-1)
+                                   ("rust-serde" ,rust-serde-1)
+                                   ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/unicode-org/icu4x")
+    (synopsis "Custom derive for the zerovec crate")
+    (description "This package provides Custom derive for the zerovec crate.")
+    (license license:unicode)))
+
 (define-public rust-zip-0.6
   (package
     (name "rust-zip")
diff --git a/gnu/packages/typst.scm b/gnu/packages/typst.scm
new file mode 100644
index 0000000000..37c2178e61
--- /dev/null
+++ b/gnu/packages/typst.scm
@@ -0,0 +1,90 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2024 Ethan Reece <guix@HIDDEN>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages typst)
+  #:use-module (guix build-system cargo)
+  #:use-module (guix download)
+  #:use-module ((guix licenses)
+                #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (gnu packages crates-io)
+  #:use-module (gnu packages crates-tls)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages tls))
+
+(define-public typst-0.11
+  (package
+    (name "typst")
+    (version "0.11.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "typst-cli" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0s4y5vl54m89w970bwx7033svl30868d0f6h0shr2zs9cghvjb5y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-chrono" ,rust-chrono-0.4)
+                       ("rust-clap" ,rust-clap-4)
+                       ("rust-clap" ,rust-clap-4)
+                       ("rust-clap-complete" ,rust-clap-complete-4)
+                       ("rust-clap-mangen" ,rust-clap-mangen-0.2)
+                       ("rust-codespan-reporting" ,rust-codespan-reporting-0.11)
+                       ("rust-comemo" ,rust-comemo-0.4)
+                       ("rust-dirs" ,rust-dirs-5)
+                       ("rust-ecow" ,rust-ecow-0.2)
+                       ("rust-env-proxy" ,rust-env-proxy-0.4)
+                       ("rust-flate2" ,rust-flate2-1)
+                       ("rust-fontdb" ,rust-fontdb-0.16)
+                       ("rust-fs-extra" ,rust-fs-extra-1)
+                       ("rust-native-tls" ,rust-native-tls-0.2)
+                       ("rust-notify" ,rust-notify-6)
+                       ("rust-once-cell" ,rust-once-cell-1)
+                       ("rust-open" ,rust-open-5)
+                       ("rust-openssl" ,rust-openssl-0.10)
+                       ("rust-parking-lot" ,rust-parking-lot-0.12)
+                       ("rust-pathdiff" ,rust-pathdiff-0.2)
+                       ("rust-rayon" ,rust-rayon-1)
+                       ("rust-same-file" ,rust-same-file-1)
+                       ("rust-self-replace" ,rust-self-replace-1)
+                       ("rust-semver" ,rust-semver-1)
+                       ("rust-semver" ,rust-semver-1)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-serde-json" ,rust-serde-json-1)
+                       ("rust-serde-yaml" ,rust-serde-yaml-0.9)
+                       ("rust-shell-escape" ,rust-shell-escape-0.1)
+                       ("rust-tar" ,rust-tar-0.4)
+                       ("rust-tempfile" ,rust-tempfile-3)
+                       ("rust-toml" ,rust-toml-0.8)
+                       ("rust-typst" ,rust-typst-0.11)
+                       ("rust-typst-assets" ,rust-typst-assets-0.11)
+                       ("rust-typst-macros" ,rust-typst-macros-0.11)
+                       ("rust-typst-pdf" ,rust-typst-pdf-0.11)
+                       ("rust-typst-render" ,rust-typst-render-0.11)
+                       ("rust-typst-svg" ,rust-typst-svg-0.11)
+                       ("rust-typst-timing" ,rust-typst-timing-0.11)
+                       ("rust-ureq" ,rust-ureq-2)
+                       ("rust-xz2" ,rust-xz2-0.1)
+                       ("rust-zip" ,rust-zip-0.6))))
+    (native-inputs `(("pkg-config" ,pkg-config)
+                     ("openssl" ,openssl)))
+    (home-page "https://typst.app")
+    (synopsis "The command line interface for Typst")
+    (description "This package provides The command line interface for Typst.")
+    (license license:asl2.0)))

base-commit: b20956651a53a8f23828fdeb6945e1a31e6997a8
-- 
2.45.2





Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Ethan Reece <git@HIDDEN>
Subject: bug#72506: Acknowledgement ([PATCH] gnu: typst: Add package and
 dependencies.)
Message-ID: <handler.72506.B.17230136207113.ack <at> debbugs.gnu.org>
References: <20240806230845.7790-1-git@HIDDEN>
X-Gnu-PR-Message: ack 72506
X-Gnu-PR-Package: guix-patches
X-Gnu-PR-Keywords: patch
Reply-To: 72506 <at> debbugs.gnu.org
Date: Wed, 07 Aug 2024 06:54:02 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 guix-patches@HIDDEN

If you wish to submit further information on this problem, please
send it to 72506 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
72506: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D72506
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems



Last modified: Sun, 12 Jan 2025 05:45:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.