├── .github ├── dependabot.yml └── workflows │ └── CI.yml ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── pyproject.toml ├── python └── typst │ ├── __init__.py │ ├── __init__.pyi │ └── py.typed └── src ├── compiler.rs ├── download.rs ├── lib.rs ├── query.rs └── world.rs /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file 5 | 6 | version: 2 7 | updates: 8 | - package-ecosystem: "cargo" # See documentation for possible values 9 | directory: "/" # Location of package manifests 10 | schedule: 11 | interval: "monthly" 12 | -------------------------------------------------------------------------------- /.github/workflows/CI.yml: -------------------------------------------------------------------------------- 1 | # This file is autogenerated by maturin v0.14.16 2 | # To update, run 3 | # 4 | # maturin generate-ci github 5 | # 6 | name: CI 7 | 8 | on: 9 | push: 10 | branches: 11 | - main 12 | - master 13 | tags: 14 | - "*" 15 | pull_request: 16 | workflow_dispatch: 17 | 18 | concurrency: 19 | group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.event.pull_request.number }} 20 | cancel-in-progress: true 21 | 22 | permissions: 23 | contents: read 24 | 25 | jobs: 26 | linux: 27 | runs-on: ${{ matrix.platform.runner || 'ubuntu-latest' }} 28 | strategy: 29 | matrix: 30 | platform: 31 | - target: x86_64 32 | - target: aarch64 33 | runner: ubuntu-24.04-arm 34 | - target: armv7 35 | - target: s390x 36 | - target: ppc64le 37 | steps: 38 | - uses: actions/checkout@v3 39 | - uses: actions/setup-python@v4 40 | with: 41 | python-version: "3.10" 42 | - name: Build wheels 43 | uses: PyO3/maturin-action@v1 44 | env: 45 | # Make psm compile, see https://github.com/rust-lang/stacker/issues/79 46 | CFLAGS_s390x_unknown_linux_gnu: "-march=z10" 47 | with: 48 | target: ${{ matrix.platform.target }} 49 | args: --release --out dist 50 | sccache: "true" 51 | manylinux: ${{ matrix.platform.manylinux || 'auto' }} 52 | before-script-linux: | 53 | which yum > /dev/null && yum install -y perl-IPC-Cmd 54 | - name: Build free-threaded wheels 55 | uses: PyO3/maturin-action@v1 56 | env: 57 | # Make psm compile, see https://github.com/rust-lang/stacker/issues/79 58 | CFLAGS_s390x_unknown_linux_gnu: "-march=z10" 59 | with: 60 | target: ${{ matrix.platform.target }} 61 | args: --release --out dist -i python3.13t 62 | sccache: "true" 63 | manylinux: ${{ matrix.platform.manylinux || 'auto' }} 64 | before-script-linux: | 65 | which yum > /dev/null && yum install -y perl-IPC-Cmd 66 | - name: Upload wheels 67 | uses: actions/upload-artifact@v4 68 | with: 69 | name: wheels-linux-${{ matrix.platform.target }} 70 | path: dist 71 | 72 | windows: 73 | runs-on: windows-latest 74 | strategy: 75 | matrix: 76 | target: [x64] 77 | steps: 78 | - uses: actions/checkout@v3 79 | - uses: actions/setup-python@v4 80 | with: 81 | python-version: "3.10" 82 | architecture: ${{ matrix.target }} 83 | - uses: dtolnay/rust-toolchain@stable 84 | - name: Build wheels 85 | uses: PyO3/maturin-action@v1 86 | with: 87 | target: ${{ matrix.target }} 88 | args: --release --out dist 89 | sccache: "true" 90 | - name: Build free-threaded wheels 91 | uses: PyO3/maturin-action@v1 92 | with: 93 | target: ${{ matrix.target }} 94 | args: --release --out dist -i python3.13t 95 | sccache: "true" 96 | - name: Upload wheels 97 | uses: actions/upload-artifact@v4 98 | with: 99 | name: wheels-windows-${{ matrix.target }} 100 | path: dist 101 | 102 | macos: 103 | runs-on: macos-latest 104 | strategy: 105 | matrix: 106 | target: [x86_64, aarch64] 107 | steps: 108 | - uses: actions/checkout@v3 109 | - uses: actions/setup-python@v4 110 | with: 111 | python-version: "3.10" 112 | - uses: dtolnay/rust-toolchain@stable 113 | - name: Build wheels 114 | uses: PyO3/maturin-action@v1 115 | with: 116 | target: ${{ matrix.target }} 117 | args: --release --out dist 118 | sccache: "true" 119 | - name: Build free-threaded wheels 120 | uses: PyO3/maturin-action@v1 121 | with: 122 | target: ${{ matrix.target }} 123 | args: --release --out dist -i python3.13t 124 | sccache: "true" 125 | - name: Upload wheels 126 | uses: actions/upload-artifact@v4 127 | with: 128 | name: wheels-macos-${{ matrix.target }} 129 | path: dist 130 | 131 | sdist: 132 | runs-on: ubuntu-latest 133 | steps: 134 | - uses: actions/checkout@v3 135 | - name: Build sdist 136 | uses: PyO3/maturin-action@v1 137 | with: 138 | command: sdist 139 | args: --out dist 140 | - name: Upload sdist 141 | uses: actions/upload-artifact@v4 142 | with: 143 | name: wheels-sdist 144 | path: dist 145 | 146 | release: 147 | permissions: 148 | # Used to upload to PyPI using trusted publisher. 149 | id-token: write 150 | name: Release 151 | runs-on: ubuntu-latest 152 | if: startsWith(github.ref, 'refs/tags/') 153 | needs: [linux, windows, macos, sdist] 154 | steps: 155 | - uses: actions/download-artifact@v4 156 | with: 157 | pattern: wheels-* 158 | merge-multiple: true 159 | - name: Publish to PyPI 160 | uses: PyO3/maturin-action@v1 161 | with: 162 | command: upload 163 | args: --skip-existing * 164 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | 3 | # Byte-compiled / optimized / DLL files 4 | __pycache__/ 5 | .pytest_cache/ 6 | *.py[cod] 7 | 8 | # C extensions 9 | *.so 10 | 11 | # Distribution / packaging 12 | .Python 13 | .venv/ 14 | env/ 15 | bin/ 16 | build/ 17 | develop-eggs/ 18 | dist/ 19 | eggs/ 20 | lib/ 21 | lib64/ 22 | parts/ 23 | sdist/ 24 | var/ 25 | include/ 26 | man/ 27 | venv/ 28 | *.egg-info/ 29 | .installed.cfg 30 | *.egg 31 | 32 | # Installer logs 33 | pip-log.txt 34 | pip-delete-this-directory.txt 35 | pip-selfcheck.json 36 | 37 | # Unit test / coverage reports 38 | htmlcov/ 39 | .tox/ 40 | .coverage 41 | .cache 42 | nosetests.xml 43 | coverage.xml 44 | 45 | # Translations 46 | *.mo 47 | 48 | # Mr Developer 49 | .mr.developer.cfg 50 | .project 51 | .pydevproject 52 | 53 | # Rope 54 | .ropeproject 55 | 56 | # Django stuff: 57 | *.log 58 | *.pot 59 | 60 | .DS_Store 61 | 62 | # Sphinx documentation 63 | docs/_build/ 64 | 65 | # PyCharm 66 | .idea/ 67 | 68 | # VSCode 69 | .vscode/ 70 | 71 | # Pyenv 72 | .python-version 73 | 74 | *.pdf -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 4 4 | 5 | [[package]] 6 | name = "adler2" 7 | version = "2.0.0" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" 10 | 11 | [[package]] 12 | name = "aho-corasick" 13 | version = "1.1.3" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 16 | dependencies = [ 17 | "memchr", 18 | ] 19 | 20 | [[package]] 21 | name = "android-tzdata" 22 | version = "0.1.1" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 25 | 26 | [[package]] 27 | name = "android_system_properties" 28 | version = "0.1.5" 29 | source = "registry+https://github.com/rust-lang/crates.io-index" 30 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 31 | dependencies = [ 32 | "libc", 33 | ] 34 | 35 | [[package]] 36 | name = "approx" 37 | version = "0.5.1" 38 | source = "registry+https://github.com/rust-lang/crates.io-index" 39 | checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" 40 | dependencies = [ 41 | "num-traits", 42 | ] 43 | 44 | [[package]] 45 | name = "arrayref" 46 | version = "0.3.9" 47 | source = "registry+https://github.com/rust-lang/crates.io-index" 48 | checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" 49 | 50 | [[package]] 51 | name = "arrayvec" 52 | version = "0.7.6" 53 | source = "registry+https://github.com/rust-lang/crates.io-index" 54 | checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" 55 | 56 | [[package]] 57 | name = "autocfg" 58 | version = "1.4.0" 59 | source = "registry+https://github.com/rust-lang/crates.io-index" 60 | checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" 61 | 62 | [[package]] 63 | name = "az" 64 | version = "1.2.1" 65 | source = "registry+https://github.com/rust-lang/crates.io-index" 66 | checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" 67 | 68 | [[package]] 69 | name = "base64" 70 | version = "0.22.1" 71 | source = "registry+https://github.com/rust-lang/crates.io-index" 72 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 73 | 74 | [[package]] 75 | name = "biblatex" 76 | version = "0.10.0" 77 | source = "registry+https://github.com/rust-lang/crates.io-index" 78 | checksum = "a35a7317fcbdbef94b60d0dd0a658711a936accfce4a631fea4bf8e527eff3c2" 79 | dependencies = [ 80 | "numerals", 81 | "paste", 82 | "strum", 83 | "unicode-normalization", 84 | "unscanny", 85 | ] 86 | 87 | [[package]] 88 | name = "bincode" 89 | version = "1.3.3" 90 | source = "registry+https://github.com/rust-lang/crates.io-index" 91 | checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" 92 | dependencies = [ 93 | "serde", 94 | ] 95 | 96 | [[package]] 97 | name = "bit-set" 98 | version = "0.5.3" 99 | source = "registry+https://github.com/rust-lang/crates.io-index" 100 | checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" 101 | dependencies = [ 102 | "bit-vec", 103 | ] 104 | 105 | [[package]] 106 | name = "bit-vec" 107 | version = "0.6.3" 108 | source = "registry+https://github.com/rust-lang/crates.io-index" 109 | checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" 110 | 111 | [[package]] 112 | name = "bitflags" 113 | version = "1.3.2" 114 | source = "registry+https://github.com/rust-lang/crates.io-index" 115 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 116 | 117 | [[package]] 118 | name = "bitflags" 119 | version = "2.9.0" 120 | source = "registry+https://github.com/rust-lang/crates.io-index" 121 | checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" 122 | dependencies = [ 123 | "serde", 124 | ] 125 | 126 | [[package]] 127 | name = "bumpalo" 128 | version = "3.17.0" 129 | source = "registry+https://github.com/rust-lang/crates.io-index" 130 | checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" 131 | 132 | [[package]] 133 | name = "by_address" 134 | version = "1.2.1" 135 | source = "registry+https://github.com/rust-lang/crates.io-index" 136 | checksum = "64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06" 137 | 138 | [[package]] 139 | name = "bytemuck" 140 | version = "1.22.0" 141 | source = "registry+https://github.com/rust-lang/crates.io-index" 142 | checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540" 143 | 144 | [[package]] 145 | name = "byteorder-lite" 146 | version = "0.1.0" 147 | source = "registry+https://github.com/rust-lang/crates.io-index" 148 | checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" 149 | 150 | [[package]] 151 | name = "cc" 152 | version = "1.2.16" 153 | source = "registry+https://github.com/rust-lang/crates.io-index" 154 | checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" 155 | dependencies = [ 156 | "shlex", 157 | ] 158 | 159 | [[package]] 160 | name = "cfg-if" 161 | version = "1.0.0" 162 | source = "registry+https://github.com/rust-lang/crates.io-index" 163 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 164 | 165 | [[package]] 166 | name = "chinese-number" 167 | version = "0.7.7" 168 | source = "registry+https://github.com/rust-lang/crates.io-index" 169 | checksum = "49fccaef6346f6d6a741908d3b79fe97c2debe2fbb5eb3a7d00ff5981b52bb6c" 170 | dependencies = [ 171 | "chinese-variant", 172 | "enum-ordinalize", 173 | "num-bigint", 174 | "num-traits", 175 | ] 176 | 177 | [[package]] 178 | name = "chinese-variant" 179 | version = "1.1.3" 180 | source = "registry+https://github.com/rust-lang/crates.io-index" 181 | checksum = "7588475145507237ded760e52bf2f1085495245502033756d28ea72ade0e498b" 182 | 183 | [[package]] 184 | name = "chrono" 185 | version = "0.4.41" 186 | source = "registry+https://github.com/rust-lang/crates.io-index" 187 | checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" 188 | dependencies = [ 189 | "android-tzdata", 190 | "iana-time-zone", 191 | "num-traits", 192 | "windows-link", 193 | ] 194 | 195 | [[package]] 196 | name = "ciborium" 197 | version = "0.2.2" 198 | source = "registry+https://github.com/rust-lang/crates.io-index" 199 | checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" 200 | dependencies = [ 201 | "ciborium-io", 202 | "ciborium-ll", 203 | "serde", 204 | ] 205 | 206 | [[package]] 207 | name = "ciborium-io" 208 | version = "0.2.2" 209 | source = "registry+https://github.com/rust-lang/crates.io-index" 210 | checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" 211 | 212 | [[package]] 213 | name = "ciborium-ll" 214 | version = "0.2.2" 215 | source = "registry+https://github.com/rust-lang/crates.io-index" 216 | checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" 217 | dependencies = [ 218 | "ciborium-io", 219 | "half", 220 | ] 221 | 222 | [[package]] 223 | name = "citationberg" 224 | version = "0.5.0" 225 | source = "registry+https://github.com/rust-lang/crates.io-index" 226 | checksum = "e4595e03beafb40235070080b5286d3662525efc622cca599585ff1d63f844fa" 227 | dependencies = [ 228 | "quick-xml 0.36.2", 229 | "serde", 230 | ] 231 | 232 | [[package]] 233 | name = "cobs" 234 | version = "0.2.3" 235 | source = "registry+https://github.com/rust-lang/crates.io-index" 236 | checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" 237 | 238 | [[package]] 239 | name = "codespan-reporting" 240 | version = "0.12.0" 241 | source = "registry+https://github.com/rust-lang/crates.io-index" 242 | checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81" 243 | dependencies = [ 244 | "serde", 245 | "termcolor", 246 | "unicode-width", 247 | ] 248 | 249 | [[package]] 250 | name = "codex" 251 | version = "0.1.1" 252 | source = "registry+https://github.com/rust-lang/crates.io-index" 253 | checksum = "724d27a0ee38b700e5e164350e79aba601a0db673ac47fce1cb74c3e38864036" 254 | 255 | [[package]] 256 | name = "color_quant" 257 | version = "1.1.0" 258 | source = "registry+https://github.com/rust-lang/crates.io-index" 259 | checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" 260 | 261 | [[package]] 262 | name = "comemo" 263 | version = "0.4.0" 264 | source = "registry+https://github.com/rust-lang/crates.io-index" 265 | checksum = "df6916408a724339aa77b18214233355f3eb04c42eb895e5f8909215bd8a7a91" 266 | dependencies = [ 267 | "comemo-macros", 268 | "once_cell", 269 | "parking_lot", 270 | "siphasher", 271 | ] 272 | 273 | [[package]] 274 | name = "comemo-macros" 275 | version = "0.4.0" 276 | source = "registry+https://github.com/rust-lang/crates.io-index" 277 | checksum = "c8936e42f9b4f5bdfaf23700609ac1f11cb03ad4c1ec128a4ee4fd0903e228db" 278 | dependencies = [ 279 | "proc-macro2", 280 | "quote", 281 | "syn", 282 | ] 283 | 284 | [[package]] 285 | name = "core-foundation" 286 | version = "0.9.4" 287 | source = "registry+https://github.com/rust-lang/crates.io-index" 288 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 289 | dependencies = [ 290 | "core-foundation-sys", 291 | "libc", 292 | ] 293 | 294 | [[package]] 295 | name = "core-foundation-sys" 296 | version = "0.8.7" 297 | source = "registry+https://github.com/rust-lang/crates.io-index" 298 | checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 299 | 300 | [[package]] 301 | name = "core_maths" 302 | version = "0.1.1" 303 | source = "registry+https://github.com/rust-lang/crates.io-index" 304 | checksum = "77745e017f5edba1a9c1d854f6f3a52dac8a12dd5af5d2f54aecf61e43d80d30" 305 | dependencies = [ 306 | "libm", 307 | ] 308 | 309 | [[package]] 310 | name = "crc32fast" 311 | version = "1.4.2" 312 | source = "registry+https://github.com/rust-lang/crates.io-index" 313 | checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" 314 | dependencies = [ 315 | "cfg-if", 316 | ] 317 | 318 | [[package]] 319 | name = "crossbeam-deque" 320 | version = "0.8.6" 321 | source = "registry+https://github.com/rust-lang/crates.io-index" 322 | checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" 323 | dependencies = [ 324 | "crossbeam-epoch", 325 | "crossbeam-utils", 326 | ] 327 | 328 | [[package]] 329 | name = "crossbeam-epoch" 330 | version = "0.9.18" 331 | source = "registry+https://github.com/rust-lang/crates.io-index" 332 | checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 333 | dependencies = [ 334 | "crossbeam-utils", 335 | ] 336 | 337 | [[package]] 338 | name = "crossbeam-utils" 339 | version = "0.8.21" 340 | source = "registry+https://github.com/rust-lang/crates.io-index" 341 | checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 342 | 343 | [[package]] 344 | name = "crunchy" 345 | version = "0.2.3" 346 | source = "registry+https://github.com/rust-lang/crates.io-index" 347 | checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" 348 | 349 | [[package]] 350 | name = "csv" 351 | version = "1.3.1" 352 | source = "registry+https://github.com/rust-lang/crates.io-index" 353 | checksum = "acdc4883a9c96732e4733212c01447ebd805833b7275a73ca3ee080fd77afdaf" 354 | dependencies = [ 355 | "csv-core", 356 | "itoa", 357 | "ryu", 358 | "serde", 359 | ] 360 | 361 | [[package]] 362 | name = "csv-core" 363 | version = "0.1.12" 364 | source = "registry+https://github.com/rust-lang/crates.io-index" 365 | checksum = "7d02f3b0da4c6504f86e9cd789d8dbafab48c2321be74e9987593de5a894d93d" 366 | dependencies = [ 367 | "memchr", 368 | ] 369 | 370 | [[package]] 371 | name = "data-url" 372 | version = "0.3.1" 373 | source = "registry+https://github.com/rust-lang/crates.io-index" 374 | checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a" 375 | 376 | [[package]] 377 | name = "deranged" 378 | version = "0.4.0" 379 | source = "registry+https://github.com/rust-lang/crates.io-index" 380 | checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" 381 | dependencies = [ 382 | "powerfmt", 383 | ] 384 | 385 | [[package]] 386 | name = "dirs" 387 | version = "6.0.0" 388 | source = "registry+https://github.com/rust-lang/crates.io-index" 389 | checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" 390 | dependencies = [ 391 | "dirs-sys", 392 | ] 393 | 394 | [[package]] 395 | name = "dirs-sys" 396 | version = "0.5.0" 397 | source = "registry+https://github.com/rust-lang/crates.io-index" 398 | checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" 399 | dependencies = [ 400 | "libc", 401 | "option-ext", 402 | "redox_users", 403 | "windows-sys", 404 | ] 405 | 406 | [[package]] 407 | name = "displaydoc" 408 | version = "0.2.5" 409 | source = "registry+https://github.com/rust-lang/crates.io-index" 410 | checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 411 | dependencies = [ 412 | "proc-macro2", 413 | "quote", 414 | "syn", 415 | ] 416 | 417 | [[package]] 418 | name = "downcast-rs" 419 | version = "1.2.1" 420 | source = "registry+https://github.com/rust-lang/crates.io-index" 421 | checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" 422 | 423 | [[package]] 424 | name = "ecow" 425 | version = "0.2.5" 426 | source = "registry+https://github.com/rust-lang/crates.io-index" 427 | checksum = "b92b481eb5d59fd8e80e92ff11d057d1ca8d144b2cd8c66cc8d5bd177a3c0dc5" 428 | dependencies = [ 429 | "serde", 430 | ] 431 | 432 | [[package]] 433 | name = "either" 434 | version = "1.15.0" 435 | source = "registry+https://github.com/rust-lang/crates.io-index" 436 | checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 437 | 438 | [[package]] 439 | name = "embedded-io" 440 | version = "0.4.0" 441 | source = "registry+https://github.com/rust-lang/crates.io-index" 442 | checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" 443 | 444 | [[package]] 445 | name = "embedded-io" 446 | version = "0.6.1" 447 | source = "registry+https://github.com/rust-lang/crates.io-index" 448 | checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" 449 | 450 | [[package]] 451 | name = "enum-ordinalize" 452 | version = "4.3.0" 453 | source = "registry+https://github.com/rust-lang/crates.io-index" 454 | checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5" 455 | dependencies = [ 456 | "enum-ordinalize-derive", 457 | ] 458 | 459 | [[package]] 460 | name = "enum-ordinalize-derive" 461 | version = "4.3.1" 462 | source = "registry+https://github.com/rust-lang/crates.io-index" 463 | checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" 464 | dependencies = [ 465 | "proc-macro2", 466 | "quote", 467 | "syn", 468 | ] 469 | 470 | [[package]] 471 | name = "env_proxy" 472 | version = "0.4.1" 473 | source = "registry+https://github.com/rust-lang/crates.io-index" 474 | checksum = "3a5019be18538406a43b5419a5501461f0c8b49ea7dfda0cfc32f4e51fc44be1" 475 | dependencies = [ 476 | "log", 477 | "url", 478 | ] 479 | 480 | [[package]] 481 | name = "equivalent" 482 | version = "1.0.2" 483 | source = "registry+https://github.com/rust-lang/crates.io-index" 484 | checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 485 | 486 | [[package]] 487 | name = "errno" 488 | version = "0.3.10" 489 | source = "registry+https://github.com/rust-lang/crates.io-index" 490 | checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" 491 | dependencies = [ 492 | "libc", 493 | "windows-sys", 494 | ] 495 | 496 | [[package]] 497 | name = "fancy-regex" 498 | version = "0.11.0" 499 | source = "registry+https://github.com/rust-lang/crates.io-index" 500 | checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2" 501 | dependencies = [ 502 | "bit-set", 503 | "regex", 504 | ] 505 | 506 | [[package]] 507 | name = "fast-srgb8" 508 | version = "1.0.0" 509 | source = "registry+https://github.com/rust-lang/crates.io-index" 510 | checksum = "dd2e7510819d6fbf51a5545c8f922716ecfb14df168a3242f7d33e0239efe6a1" 511 | 512 | [[package]] 513 | name = "fastrand" 514 | version = "2.3.0" 515 | source = "registry+https://github.com/rust-lang/crates.io-index" 516 | checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 517 | 518 | [[package]] 519 | name = "fdeflate" 520 | version = "0.3.7" 521 | source = "registry+https://github.com/rust-lang/crates.io-index" 522 | checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" 523 | dependencies = [ 524 | "simd-adler32", 525 | ] 526 | 527 | [[package]] 528 | name = "filetime" 529 | version = "0.2.25" 530 | source = "registry+https://github.com/rust-lang/crates.io-index" 531 | checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" 532 | dependencies = [ 533 | "cfg-if", 534 | "libc", 535 | "libredox", 536 | "windows-sys", 537 | ] 538 | 539 | [[package]] 540 | name = "flate2" 541 | version = "1.1.0" 542 | source = "registry+https://github.com/rust-lang/crates.io-index" 543 | checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" 544 | dependencies = [ 545 | "crc32fast", 546 | "miniz_oxide", 547 | ] 548 | 549 | [[package]] 550 | name = "float-cmp" 551 | version = "0.9.0" 552 | source = "registry+https://github.com/rust-lang/crates.io-index" 553 | checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" 554 | 555 | [[package]] 556 | name = "fnv" 557 | version = "1.0.7" 558 | source = "registry+https://github.com/rust-lang/crates.io-index" 559 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 560 | 561 | [[package]] 562 | name = "foldhash" 563 | version = "0.1.5" 564 | source = "registry+https://github.com/rust-lang/crates.io-index" 565 | checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 566 | 567 | [[package]] 568 | name = "fontconfig-parser" 569 | version = "0.5.7" 570 | source = "registry+https://github.com/rust-lang/crates.io-index" 571 | checksum = "c1fcfcd44ca6e90c921fee9fa665d530b21ef1327a4c1a6c5250ea44b776ada7" 572 | dependencies = [ 573 | "roxmltree", 574 | ] 575 | 576 | [[package]] 577 | name = "fontdb" 578 | version = "0.21.0" 579 | source = "registry+https://github.com/rust-lang/crates.io-index" 580 | checksum = "37be9fc20d966be438cd57a45767f73349477fb0f85ce86e000557f787298afb" 581 | dependencies = [ 582 | "fontconfig-parser", 583 | "log", 584 | "memmap2", 585 | "slotmap", 586 | "tinyvec", 587 | "ttf-parser", 588 | ] 589 | 590 | [[package]] 591 | name = "foreign-types" 592 | version = "0.3.2" 593 | source = "registry+https://github.com/rust-lang/crates.io-index" 594 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 595 | dependencies = [ 596 | "foreign-types-shared", 597 | ] 598 | 599 | [[package]] 600 | name = "foreign-types-shared" 601 | version = "0.1.1" 602 | source = "registry+https://github.com/rust-lang/crates.io-index" 603 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 604 | 605 | [[package]] 606 | name = "form_urlencoded" 607 | version = "1.2.1" 608 | source = "registry+https://github.com/rust-lang/crates.io-index" 609 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 610 | dependencies = [ 611 | "percent-encoding", 612 | ] 613 | 614 | [[package]] 615 | name = "getrandom" 616 | version = "0.2.15" 617 | source = "registry+https://github.com/rust-lang/crates.io-index" 618 | checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 619 | dependencies = [ 620 | "cfg-if", 621 | "libc", 622 | "wasi 0.11.0+wasi-snapshot-preview1", 623 | ] 624 | 625 | [[package]] 626 | name = "getrandom" 627 | version = "0.3.2" 628 | source = "registry+https://github.com/rust-lang/crates.io-index" 629 | checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" 630 | dependencies = [ 631 | "cfg-if", 632 | "libc", 633 | "r-efi", 634 | "wasi 0.14.2+wasi-0.2.4", 635 | ] 636 | 637 | [[package]] 638 | name = "gif" 639 | version = "0.13.1" 640 | source = "registry+https://github.com/rust-lang/crates.io-index" 641 | checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2" 642 | dependencies = [ 643 | "color_quant", 644 | "weezl", 645 | ] 646 | 647 | [[package]] 648 | name = "half" 649 | version = "2.5.0" 650 | source = "registry+https://github.com/rust-lang/crates.io-index" 651 | checksum = "7db2ff139bba50379da6aa0766b52fdcb62cb5b263009b09ed58ba604e14bbd1" 652 | dependencies = [ 653 | "cfg-if", 654 | "crunchy", 655 | ] 656 | 657 | [[package]] 658 | name = "hashbrown" 659 | version = "0.15.2" 660 | source = "registry+https://github.com/rust-lang/crates.io-index" 661 | checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" 662 | dependencies = [ 663 | "foldhash", 664 | ] 665 | 666 | [[package]] 667 | name = "hayagriva" 668 | version = "0.8.1" 669 | source = "registry+https://github.com/rust-lang/crates.io-index" 670 | checksum = "954907554bb7fcba29a4f917c2d43e289ec21b69d872ccf97db160eca6caeed8" 671 | dependencies = [ 672 | "biblatex", 673 | "ciborium", 674 | "citationberg", 675 | "indexmap", 676 | "numerals", 677 | "paste", 678 | "serde", 679 | "serde_yaml", 680 | "thiserror 1.0.69", 681 | "unic-langid", 682 | "unicode-segmentation", 683 | "unscanny", 684 | "url", 685 | ] 686 | 687 | [[package]] 688 | name = "heck" 689 | version = "0.5.0" 690 | source = "registry+https://github.com/rust-lang/crates.io-index" 691 | checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 692 | 693 | [[package]] 694 | name = "hypher" 695 | version = "0.1.5" 696 | source = "registry+https://github.com/rust-lang/crates.io-index" 697 | checksum = "3b24ad5637230df201ab1034d593f1d09bf7f2a9274f2e8897638078579f4265" 698 | 699 | [[package]] 700 | name = "iana-time-zone" 701 | version = "0.1.61" 702 | source = "registry+https://github.com/rust-lang/crates.io-index" 703 | checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" 704 | dependencies = [ 705 | "android_system_properties", 706 | "core-foundation-sys", 707 | "iana-time-zone-haiku", 708 | "js-sys", 709 | "wasm-bindgen", 710 | "windows-core", 711 | ] 712 | 713 | [[package]] 714 | name = "iana-time-zone-haiku" 715 | version = "0.1.2" 716 | source = "registry+https://github.com/rust-lang/crates.io-index" 717 | checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 718 | dependencies = [ 719 | "cc", 720 | ] 721 | 722 | [[package]] 723 | name = "icu_collections" 724 | version = "1.5.0" 725 | source = "registry+https://github.com/rust-lang/crates.io-index" 726 | checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" 727 | dependencies = [ 728 | "displaydoc", 729 | "serde", 730 | "yoke", 731 | "zerofrom", 732 | "zerovec", 733 | ] 734 | 735 | [[package]] 736 | name = "icu_locid" 737 | version = "1.5.0" 738 | source = "registry+https://github.com/rust-lang/crates.io-index" 739 | checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" 740 | dependencies = [ 741 | "displaydoc", 742 | "litemap", 743 | "tinystr", 744 | "writeable", 745 | "zerovec", 746 | ] 747 | 748 | [[package]] 749 | name = "icu_locid_transform" 750 | version = "1.5.0" 751 | source = "registry+https://github.com/rust-lang/crates.io-index" 752 | checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" 753 | dependencies = [ 754 | "displaydoc", 755 | "icu_locid", 756 | "icu_locid_transform_data", 757 | "icu_provider", 758 | "tinystr", 759 | "zerovec", 760 | ] 761 | 762 | [[package]] 763 | name = "icu_locid_transform_data" 764 | version = "1.5.0" 765 | source = "registry+https://github.com/rust-lang/crates.io-index" 766 | checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" 767 | 768 | [[package]] 769 | name = "icu_normalizer" 770 | version = "1.5.0" 771 | source = "registry+https://github.com/rust-lang/crates.io-index" 772 | checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" 773 | dependencies = [ 774 | "displaydoc", 775 | "icu_collections", 776 | "icu_normalizer_data", 777 | "icu_properties", 778 | "icu_provider", 779 | "smallvec", 780 | "utf16_iter", 781 | "utf8_iter", 782 | "write16", 783 | "zerovec", 784 | ] 785 | 786 | [[package]] 787 | name = "icu_normalizer_data" 788 | version = "1.5.0" 789 | source = "registry+https://github.com/rust-lang/crates.io-index" 790 | checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" 791 | 792 | [[package]] 793 | name = "icu_properties" 794 | version = "1.5.1" 795 | source = "registry+https://github.com/rust-lang/crates.io-index" 796 | checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" 797 | dependencies = [ 798 | "displaydoc", 799 | "icu_collections", 800 | "icu_locid_transform", 801 | "icu_properties_data", 802 | "icu_provider", 803 | "serde", 804 | "tinystr", 805 | "zerovec", 806 | ] 807 | 808 | [[package]] 809 | name = "icu_properties_data" 810 | version = "1.5.0" 811 | source = "registry+https://github.com/rust-lang/crates.io-index" 812 | checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" 813 | 814 | [[package]] 815 | name = "icu_provider" 816 | version = "1.5.0" 817 | source = "registry+https://github.com/rust-lang/crates.io-index" 818 | checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" 819 | dependencies = [ 820 | "displaydoc", 821 | "icu_locid", 822 | "icu_provider_macros", 823 | "postcard", 824 | "serde", 825 | "stable_deref_trait", 826 | "tinystr", 827 | "writeable", 828 | "yoke", 829 | "zerofrom", 830 | "zerovec", 831 | ] 832 | 833 | [[package]] 834 | name = "icu_provider_adapters" 835 | version = "1.5.0" 836 | source = "registry+https://github.com/rust-lang/crates.io-index" 837 | checksum = "d6324dfd08348a8e0374a447ebd334044d766b1839bb8d5ccf2482a99a77c0bc" 838 | dependencies = [ 839 | "icu_locid", 840 | "icu_locid_transform", 841 | "icu_provider", 842 | "tinystr", 843 | "zerovec", 844 | ] 845 | 846 | [[package]] 847 | name = "icu_provider_blob" 848 | version = "1.5.0" 849 | source = "registry+https://github.com/rust-lang/crates.io-index" 850 | checksum = "c24b98d1365f55d78186c205817631a4acf08d7a45bdf5dc9dcf9c5d54dccf51" 851 | dependencies = [ 852 | "icu_provider", 853 | "postcard", 854 | "serde", 855 | "writeable", 856 | "zerotrie", 857 | "zerovec", 858 | ] 859 | 860 | [[package]] 861 | name = "icu_provider_macros" 862 | version = "1.5.0" 863 | source = "registry+https://github.com/rust-lang/crates.io-index" 864 | checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" 865 | dependencies = [ 866 | "proc-macro2", 867 | "quote", 868 | "syn", 869 | ] 870 | 871 | [[package]] 872 | name = "icu_segmenter" 873 | version = "1.5.0" 874 | source = "registry+https://github.com/rust-lang/crates.io-index" 875 | checksum = "a717725612346ffc2d7b42c94b820db6908048f39434504cb130e8b46256b0de" 876 | dependencies = [ 877 | "core_maths", 878 | "displaydoc", 879 | "icu_collections", 880 | "icu_locid", 881 | "icu_provider", 882 | "icu_segmenter_data", 883 | "serde", 884 | "utf8_iter", 885 | "zerovec", 886 | ] 887 | 888 | [[package]] 889 | name = "icu_segmenter_data" 890 | version = "1.5.0" 891 | source = "registry+https://github.com/rust-lang/crates.io-index" 892 | checksum = "f739ee737260d955e330bc83fdeaaf1631f7fb7ed218761d3c04bb13bb7d79df" 893 | 894 | [[package]] 895 | name = "idna" 896 | version = "1.0.3" 897 | source = "registry+https://github.com/rust-lang/crates.io-index" 898 | checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" 899 | dependencies = [ 900 | "idna_adapter", 901 | "smallvec", 902 | "utf8_iter", 903 | ] 904 | 905 | [[package]] 906 | name = "idna_adapter" 907 | version = "1.2.0" 908 | source = "registry+https://github.com/rust-lang/crates.io-index" 909 | checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" 910 | dependencies = [ 911 | "icu_normalizer", 912 | "icu_properties", 913 | ] 914 | 915 | [[package]] 916 | name = "if_chain" 917 | version = "1.0.2" 918 | source = "registry+https://github.com/rust-lang/crates.io-index" 919 | checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" 920 | 921 | [[package]] 922 | name = "image" 923 | version = "0.25.5" 924 | source = "registry+https://github.com/rust-lang/crates.io-index" 925 | checksum = "cd6f44aed642f18953a158afeb30206f4d50da59fbc66ecb53c66488de73563b" 926 | dependencies = [ 927 | "bytemuck", 928 | "byteorder-lite", 929 | "color_quant", 930 | "gif", 931 | "num-traits", 932 | "png", 933 | "zune-core", 934 | "zune-jpeg", 935 | ] 936 | 937 | [[package]] 938 | name = "image-webp" 939 | version = "0.1.3" 940 | source = "registry+https://github.com/rust-lang/crates.io-index" 941 | checksum = "f79afb8cbee2ef20f59ccd477a218c12a93943d075b492015ecb1bb81f8ee904" 942 | dependencies = [ 943 | "byteorder-lite", 944 | "quick-error", 945 | ] 946 | 947 | [[package]] 948 | name = "imagesize" 949 | version = "0.13.0" 950 | source = "registry+https://github.com/rust-lang/crates.io-index" 951 | checksum = "edcd27d72f2f071c64249075f42e205ff93c9a4c5f6c6da53e79ed9f9832c285" 952 | 953 | [[package]] 954 | name = "indexmap" 955 | version = "2.8.0" 956 | source = "registry+https://github.com/rust-lang/crates.io-index" 957 | checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" 958 | dependencies = [ 959 | "equivalent", 960 | "hashbrown", 961 | "serde", 962 | ] 963 | 964 | [[package]] 965 | name = "indoc" 966 | version = "2.0.6" 967 | source = "registry+https://github.com/rust-lang/crates.io-index" 968 | checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" 969 | 970 | [[package]] 971 | name = "itoa" 972 | version = "1.0.15" 973 | source = "registry+https://github.com/rust-lang/crates.io-index" 974 | checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 975 | 976 | [[package]] 977 | name = "js-sys" 978 | version = "0.3.77" 979 | source = "registry+https://github.com/rust-lang/crates.io-index" 980 | checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" 981 | dependencies = [ 982 | "once_cell", 983 | "wasm-bindgen", 984 | ] 985 | 986 | [[package]] 987 | name = "kamadak-exif" 988 | version = "0.6.1" 989 | source = "registry+https://github.com/rust-lang/crates.io-index" 990 | checksum = "1130d80c7374efad55a117d715a3af9368f0fa7a2c54573afc15a188cd984837" 991 | dependencies = [ 992 | "mutate_once", 993 | ] 994 | 995 | [[package]] 996 | name = "kurbo" 997 | version = "0.11.1" 998 | source = "registry+https://github.com/rust-lang/crates.io-index" 999 | checksum = "89234b2cc610a7dd927ebde6b41dd1a5d4214cffaef4cf1fb2195d592f92518f" 1000 | dependencies = [ 1001 | "arrayvec", 1002 | "smallvec", 1003 | ] 1004 | 1005 | [[package]] 1006 | name = "libc" 1007 | version = "0.2.171" 1008 | source = "registry+https://github.com/rust-lang/crates.io-index" 1009 | checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" 1010 | 1011 | [[package]] 1012 | name = "libm" 1013 | version = "0.2.11" 1014 | source = "registry+https://github.com/rust-lang/crates.io-index" 1015 | checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" 1016 | 1017 | [[package]] 1018 | name = "libredox" 1019 | version = "0.1.3" 1020 | source = "registry+https://github.com/rust-lang/crates.io-index" 1021 | checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" 1022 | dependencies = [ 1023 | "bitflags 2.9.0", 1024 | "libc", 1025 | "redox_syscall", 1026 | ] 1027 | 1028 | [[package]] 1029 | name = "linked-hash-map" 1030 | version = "0.5.6" 1031 | source = "registry+https://github.com/rust-lang/crates.io-index" 1032 | checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" 1033 | 1034 | [[package]] 1035 | name = "linux-raw-sys" 1036 | version = "0.9.3" 1037 | source = "registry+https://github.com/rust-lang/crates.io-index" 1038 | checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" 1039 | 1040 | [[package]] 1041 | name = "lipsum" 1042 | version = "0.9.1" 1043 | source = "registry+https://github.com/rust-lang/crates.io-index" 1044 | checksum = "636860251af8963cc40f6b4baadee105f02e21b28131d76eba8e40ce84ab8064" 1045 | dependencies = [ 1046 | "rand", 1047 | "rand_chacha", 1048 | ] 1049 | 1050 | [[package]] 1051 | name = "litemap" 1052 | version = "0.7.5" 1053 | source = "registry+https://github.com/rust-lang/crates.io-index" 1054 | checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" 1055 | dependencies = [ 1056 | "serde", 1057 | ] 1058 | 1059 | [[package]] 1060 | name = "lock_api" 1061 | version = "0.4.12" 1062 | source = "registry+https://github.com/rust-lang/crates.io-index" 1063 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 1064 | dependencies = [ 1065 | "autocfg", 1066 | "scopeguard", 1067 | ] 1068 | 1069 | [[package]] 1070 | name = "log" 1071 | version = "0.4.26" 1072 | source = "registry+https://github.com/rust-lang/crates.io-index" 1073 | checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" 1074 | 1075 | [[package]] 1076 | name = "memchr" 1077 | version = "2.7.4" 1078 | source = "registry+https://github.com/rust-lang/crates.io-index" 1079 | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 1080 | 1081 | [[package]] 1082 | name = "memmap2" 1083 | version = "0.9.5" 1084 | source = "registry+https://github.com/rust-lang/crates.io-index" 1085 | checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" 1086 | dependencies = [ 1087 | "libc", 1088 | ] 1089 | 1090 | [[package]] 1091 | name = "memoffset" 1092 | version = "0.9.1" 1093 | source = "registry+https://github.com/rust-lang/crates.io-index" 1094 | checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" 1095 | dependencies = [ 1096 | "autocfg", 1097 | ] 1098 | 1099 | [[package]] 1100 | name = "miniz_oxide" 1101 | version = "0.8.5" 1102 | source = "registry+https://github.com/rust-lang/crates.io-index" 1103 | checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" 1104 | dependencies = [ 1105 | "adler2", 1106 | "simd-adler32", 1107 | ] 1108 | 1109 | [[package]] 1110 | name = "multi-stash" 1111 | version = "0.2.0" 1112 | source = "registry+https://github.com/rust-lang/crates.io-index" 1113 | checksum = "685a9ac4b61f4e728e1d2c6a7844609c16527aeb5e6c865915c08e619c16410f" 1114 | 1115 | [[package]] 1116 | name = "mutate_once" 1117 | version = "0.1.1" 1118 | source = "registry+https://github.com/rust-lang/crates.io-index" 1119 | checksum = "16cf681a23b4d0a43fc35024c176437f9dcd818db34e0f42ab456a0ee5ad497b" 1120 | 1121 | [[package]] 1122 | name = "native-tls" 1123 | version = "0.2.14" 1124 | source = "registry+https://github.com/rust-lang/crates.io-index" 1125 | checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" 1126 | dependencies = [ 1127 | "libc", 1128 | "log", 1129 | "openssl", 1130 | "openssl-probe", 1131 | "openssl-sys", 1132 | "schannel", 1133 | "security-framework", 1134 | "security-framework-sys", 1135 | "tempfile", 1136 | ] 1137 | 1138 | [[package]] 1139 | name = "num-bigint" 1140 | version = "0.4.6" 1141 | source = "registry+https://github.com/rust-lang/crates.io-index" 1142 | checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" 1143 | dependencies = [ 1144 | "num-integer", 1145 | "num-traits", 1146 | ] 1147 | 1148 | [[package]] 1149 | name = "num-conv" 1150 | version = "0.1.0" 1151 | source = "registry+https://github.com/rust-lang/crates.io-index" 1152 | checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 1153 | 1154 | [[package]] 1155 | name = "num-integer" 1156 | version = "0.1.46" 1157 | source = "registry+https://github.com/rust-lang/crates.io-index" 1158 | checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" 1159 | dependencies = [ 1160 | "num-traits", 1161 | ] 1162 | 1163 | [[package]] 1164 | name = "num-traits" 1165 | version = "0.2.19" 1166 | source = "registry+https://github.com/rust-lang/crates.io-index" 1167 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 1168 | dependencies = [ 1169 | "autocfg", 1170 | ] 1171 | 1172 | [[package]] 1173 | name = "numerals" 1174 | version = "0.1.4" 1175 | source = "registry+https://github.com/rust-lang/crates.io-index" 1176 | checksum = "e25be21376a772d15f97ae789845340a9651d3c4246ff5ebb6a2b35f9c37bd31" 1177 | 1178 | [[package]] 1179 | name = "once_cell" 1180 | version = "1.21.1" 1181 | source = "registry+https://github.com/rust-lang/crates.io-index" 1182 | checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" 1183 | 1184 | [[package]] 1185 | name = "openssl" 1186 | version = "0.10.71" 1187 | source = "registry+https://github.com/rust-lang/crates.io-index" 1188 | checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" 1189 | dependencies = [ 1190 | "bitflags 2.9.0", 1191 | "cfg-if", 1192 | "foreign-types", 1193 | "libc", 1194 | "once_cell", 1195 | "openssl-macros", 1196 | "openssl-sys", 1197 | ] 1198 | 1199 | [[package]] 1200 | name = "openssl-macros" 1201 | version = "0.1.1" 1202 | source = "registry+https://github.com/rust-lang/crates.io-index" 1203 | checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" 1204 | dependencies = [ 1205 | "proc-macro2", 1206 | "quote", 1207 | "syn", 1208 | ] 1209 | 1210 | [[package]] 1211 | name = "openssl-probe" 1212 | version = "0.1.6" 1213 | source = "registry+https://github.com/rust-lang/crates.io-index" 1214 | checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" 1215 | 1216 | [[package]] 1217 | name = "openssl-src" 1218 | version = "300.4.2+3.4.1" 1219 | source = "registry+https://github.com/rust-lang/crates.io-index" 1220 | checksum = "168ce4e058f975fe43e89d9ccf78ca668601887ae736090aacc23ae353c298e2" 1221 | dependencies = [ 1222 | "cc", 1223 | ] 1224 | 1225 | [[package]] 1226 | name = "openssl-sys" 1227 | version = "0.9.106" 1228 | source = "registry+https://github.com/rust-lang/crates.io-index" 1229 | checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" 1230 | dependencies = [ 1231 | "cc", 1232 | "libc", 1233 | "openssl-src", 1234 | "pkg-config", 1235 | "vcpkg", 1236 | ] 1237 | 1238 | [[package]] 1239 | name = "option-ext" 1240 | version = "0.2.0" 1241 | source = "registry+https://github.com/rust-lang/crates.io-index" 1242 | checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" 1243 | 1244 | [[package]] 1245 | name = "palette" 1246 | version = "0.7.6" 1247 | source = "registry+https://github.com/rust-lang/crates.io-index" 1248 | checksum = "4cbf71184cc5ecc2e4e1baccdb21026c20e5fc3dcf63028a086131b3ab00b6e6" 1249 | dependencies = [ 1250 | "approx", 1251 | "fast-srgb8", 1252 | "libm", 1253 | "palette_derive", 1254 | ] 1255 | 1256 | [[package]] 1257 | name = "palette_derive" 1258 | version = "0.7.6" 1259 | source = "registry+https://github.com/rust-lang/crates.io-index" 1260 | checksum = "f5030daf005bface118c096f510ffb781fc28f9ab6a32ab224d8631be6851d30" 1261 | dependencies = [ 1262 | "by_address", 1263 | "proc-macro2", 1264 | "quote", 1265 | "syn", 1266 | ] 1267 | 1268 | [[package]] 1269 | name = "parking_lot" 1270 | version = "0.12.3" 1271 | source = "registry+https://github.com/rust-lang/crates.io-index" 1272 | checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" 1273 | dependencies = [ 1274 | "lock_api", 1275 | "parking_lot_core", 1276 | ] 1277 | 1278 | [[package]] 1279 | name = "parking_lot_core" 1280 | version = "0.9.10" 1281 | source = "registry+https://github.com/rust-lang/crates.io-index" 1282 | checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 1283 | dependencies = [ 1284 | "cfg-if", 1285 | "libc", 1286 | "redox_syscall", 1287 | "smallvec", 1288 | "windows-targets", 1289 | ] 1290 | 1291 | [[package]] 1292 | name = "paste" 1293 | version = "1.0.15" 1294 | source = "registry+https://github.com/rust-lang/crates.io-index" 1295 | checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 1296 | 1297 | [[package]] 1298 | name = "pathdiff" 1299 | version = "0.2.3" 1300 | source = "registry+https://github.com/rust-lang/crates.io-index" 1301 | checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" 1302 | 1303 | [[package]] 1304 | name = "pdf-writer" 1305 | version = "0.12.1" 1306 | source = "registry+https://github.com/rust-lang/crates.io-index" 1307 | checksum = "5df03c7d216de06f93f398ef06f1385a60f2c597bb96f8195c8d98e08a26b1d5" 1308 | dependencies = [ 1309 | "bitflags 2.9.0", 1310 | "itoa", 1311 | "memchr", 1312 | "ryu", 1313 | ] 1314 | 1315 | [[package]] 1316 | name = "percent-encoding" 1317 | version = "2.3.1" 1318 | source = "registry+https://github.com/rust-lang/crates.io-index" 1319 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 1320 | 1321 | [[package]] 1322 | name = "phf" 1323 | version = "0.11.3" 1324 | source = "registry+https://github.com/rust-lang/crates.io-index" 1325 | checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" 1326 | dependencies = [ 1327 | "phf_macros", 1328 | "phf_shared", 1329 | ] 1330 | 1331 | [[package]] 1332 | name = "phf_generator" 1333 | version = "0.11.3" 1334 | source = "registry+https://github.com/rust-lang/crates.io-index" 1335 | checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" 1336 | dependencies = [ 1337 | "phf_shared", 1338 | "rand", 1339 | ] 1340 | 1341 | [[package]] 1342 | name = "phf_macros" 1343 | version = "0.11.3" 1344 | source = "registry+https://github.com/rust-lang/crates.io-index" 1345 | checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" 1346 | dependencies = [ 1347 | "phf_generator", 1348 | "phf_shared", 1349 | "proc-macro2", 1350 | "quote", 1351 | "syn", 1352 | ] 1353 | 1354 | [[package]] 1355 | name = "phf_shared" 1356 | version = "0.11.3" 1357 | source = "registry+https://github.com/rust-lang/crates.io-index" 1358 | checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" 1359 | dependencies = [ 1360 | "siphasher", 1361 | ] 1362 | 1363 | [[package]] 1364 | name = "pico-args" 1365 | version = "0.5.0" 1366 | source = "registry+https://github.com/rust-lang/crates.io-index" 1367 | checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" 1368 | 1369 | [[package]] 1370 | name = "pixglyph" 1371 | version = "0.5.1" 1372 | source = "registry+https://github.com/rust-lang/crates.io-index" 1373 | checksum = "d15afa937836bf3d876f5a04ce28810c06045857bf46c3d0d31073b8aada5494" 1374 | dependencies = [ 1375 | "ttf-parser", 1376 | ] 1377 | 1378 | [[package]] 1379 | name = "pkg-config" 1380 | version = "0.3.32" 1381 | source = "registry+https://github.com/rust-lang/crates.io-index" 1382 | checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" 1383 | 1384 | [[package]] 1385 | name = "plist" 1386 | version = "1.7.0" 1387 | source = "registry+https://github.com/rust-lang/crates.io-index" 1388 | checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" 1389 | dependencies = [ 1390 | "base64", 1391 | "indexmap", 1392 | "quick-xml 0.32.0", 1393 | "serde", 1394 | "time", 1395 | ] 1396 | 1397 | [[package]] 1398 | name = "png" 1399 | version = "0.17.16" 1400 | source = "registry+https://github.com/rust-lang/crates.io-index" 1401 | checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" 1402 | dependencies = [ 1403 | "bitflags 1.3.2", 1404 | "crc32fast", 1405 | "fdeflate", 1406 | "flate2", 1407 | "miniz_oxide", 1408 | ] 1409 | 1410 | [[package]] 1411 | name = "portable-atomic" 1412 | version = "1.11.0" 1413 | source = "registry+https://github.com/rust-lang/crates.io-index" 1414 | checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" 1415 | 1416 | [[package]] 1417 | name = "postcard" 1418 | version = "1.1.1" 1419 | source = "registry+https://github.com/rust-lang/crates.io-index" 1420 | checksum = "170a2601f67cc9dba8edd8c4870b15f71a6a2dc196daec8c83f72b59dff628a8" 1421 | dependencies = [ 1422 | "cobs", 1423 | "embedded-io 0.4.0", 1424 | "embedded-io 0.6.1", 1425 | "serde", 1426 | ] 1427 | 1428 | [[package]] 1429 | name = "powerfmt" 1430 | version = "0.2.0" 1431 | source = "registry+https://github.com/rust-lang/crates.io-index" 1432 | checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 1433 | 1434 | [[package]] 1435 | name = "ppv-lite86" 1436 | version = "0.2.21" 1437 | source = "registry+https://github.com/rust-lang/crates.io-index" 1438 | checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" 1439 | dependencies = [ 1440 | "zerocopy", 1441 | ] 1442 | 1443 | [[package]] 1444 | name = "proc-macro2" 1445 | version = "1.0.94" 1446 | source = "registry+https://github.com/rust-lang/crates.io-index" 1447 | checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" 1448 | dependencies = [ 1449 | "unicode-ident", 1450 | ] 1451 | 1452 | [[package]] 1453 | name = "psm" 1454 | version = "0.1.25" 1455 | source = "registry+https://github.com/rust-lang/crates.io-index" 1456 | checksum = "f58e5423e24c18cc840e1c98370b3993c6649cd1678b4d24318bcf0a083cbe88" 1457 | dependencies = [ 1458 | "cc", 1459 | ] 1460 | 1461 | [[package]] 1462 | name = "pyo3" 1463 | version = "0.24.2" 1464 | source = "registry+https://github.com/rust-lang/crates.io-index" 1465 | checksum = "e5203598f366b11a02b13aa20cab591229ff0a89fd121a308a5df751d5fc9219" 1466 | dependencies = [ 1467 | "cfg-if", 1468 | "indoc", 1469 | "libc", 1470 | "memoffset", 1471 | "once_cell", 1472 | "portable-atomic", 1473 | "pyo3-build-config", 1474 | "pyo3-ffi", 1475 | "pyo3-macros", 1476 | "unindent", 1477 | ] 1478 | 1479 | [[package]] 1480 | name = "pyo3-build-config" 1481 | version = "0.24.2" 1482 | source = "registry+https://github.com/rust-lang/crates.io-index" 1483 | checksum = "99636d423fa2ca130fa5acde3059308006d46f98caac629418e53f7ebb1e9999" 1484 | dependencies = [ 1485 | "once_cell", 1486 | "python3-dll-a", 1487 | "target-lexicon", 1488 | ] 1489 | 1490 | [[package]] 1491 | name = "pyo3-ffi" 1492 | version = "0.24.2" 1493 | source = "registry+https://github.com/rust-lang/crates.io-index" 1494 | checksum = "78f9cf92ba9c409279bc3305b5409d90db2d2c22392d443a87df3a1adad59e33" 1495 | dependencies = [ 1496 | "libc", 1497 | "pyo3-build-config", 1498 | ] 1499 | 1500 | [[package]] 1501 | name = "pyo3-macros" 1502 | version = "0.24.2" 1503 | source = "registry+https://github.com/rust-lang/crates.io-index" 1504 | checksum = "0b999cb1a6ce21f9a6b147dcf1be9ffedf02e0043aec74dc390f3007047cecd9" 1505 | dependencies = [ 1506 | "proc-macro2", 1507 | "pyo3-macros-backend", 1508 | "quote", 1509 | "syn", 1510 | ] 1511 | 1512 | [[package]] 1513 | name = "pyo3-macros-backend" 1514 | version = "0.24.2" 1515 | source = "registry+https://github.com/rust-lang/crates.io-index" 1516 | checksum = "822ece1c7e1012745607d5cf0bcb2874769f0f7cb34c4cde03b9358eb9ef911a" 1517 | dependencies = [ 1518 | "heck", 1519 | "proc-macro2", 1520 | "pyo3-build-config", 1521 | "quote", 1522 | "syn", 1523 | ] 1524 | 1525 | [[package]] 1526 | name = "python3-dll-a" 1527 | version = "0.2.13" 1528 | source = "registry+https://github.com/rust-lang/crates.io-index" 1529 | checksum = "49fe4227a288cf9493942ad0220ea3f185f4d1f2a14f197f7344d6d02f4ed4ed" 1530 | dependencies = [ 1531 | "cc", 1532 | ] 1533 | 1534 | [[package]] 1535 | name = "qcms" 1536 | version = "0.3.0" 1537 | source = "registry+https://github.com/rust-lang/crates.io-index" 1538 | checksum = "edecfcd5d755a5e5d98e24cf43113e7cdaec5a070edd0f6b250c03a573da30fa" 1539 | 1540 | [[package]] 1541 | name = "quick-error" 1542 | version = "2.0.1" 1543 | source = "registry+https://github.com/rust-lang/crates.io-index" 1544 | checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" 1545 | 1546 | [[package]] 1547 | name = "quick-xml" 1548 | version = "0.32.0" 1549 | source = "registry+https://github.com/rust-lang/crates.io-index" 1550 | checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2" 1551 | dependencies = [ 1552 | "memchr", 1553 | ] 1554 | 1555 | [[package]] 1556 | name = "quick-xml" 1557 | version = "0.36.2" 1558 | source = "registry+https://github.com/rust-lang/crates.io-index" 1559 | checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe" 1560 | dependencies = [ 1561 | "memchr", 1562 | "serde", 1563 | ] 1564 | 1565 | [[package]] 1566 | name = "quote" 1567 | version = "1.0.40" 1568 | source = "registry+https://github.com/rust-lang/crates.io-index" 1569 | checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" 1570 | dependencies = [ 1571 | "proc-macro2", 1572 | ] 1573 | 1574 | [[package]] 1575 | name = "r-efi" 1576 | version = "5.2.0" 1577 | source = "registry+https://github.com/rust-lang/crates.io-index" 1578 | checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" 1579 | 1580 | [[package]] 1581 | name = "rand" 1582 | version = "0.8.5" 1583 | source = "registry+https://github.com/rust-lang/crates.io-index" 1584 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 1585 | dependencies = [ 1586 | "rand_core", 1587 | ] 1588 | 1589 | [[package]] 1590 | name = "rand_chacha" 1591 | version = "0.3.1" 1592 | source = "registry+https://github.com/rust-lang/crates.io-index" 1593 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 1594 | dependencies = [ 1595 | "ppv-lite86", 1596 | "rand_core", 1597 | ] 1598 | 1599 | [[package]] 1600 | name = "rand_core" 1601 | version = "0.6.4" 1602 | source = "registry+https://github.com/rust-lang/crates.io-index" 1603 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1604 | 1605 | [[package]] 1606 | name = "rayon" 1607 | version = "1.10.0" 1608 | source = "registry+https://github.com/rust-lang/crates.io-index" 1609 | checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" 1610 | dependencies = [ 1611 | "either", 1612 | "rayon-core", 1613 | ] 1614 | 1615 | [[package]] 1616 | name = "rayon-core" 1617 | version = "1.12.1" 1618 | source = "registry+https://github.com/rust-lang/crates.io-index" 1619 | checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" 1620 | dependencies = [ 1621 | "crossbeam-deque", 1622 | "crossbeam-utils", 1623 | ] 1624 | 1625 | [[package]] 1626 | name = "redox_syscall" 1627 | version = "0.5.10" 1628 | source = "registry+https://github.com/rust-lang/crates.io-index" 1629 | checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" 1630 | dependencies = [ 1631 | "bitflags 2.9.0", 1632 | ] 1633 | 1634 | [[package]] 1635 | name = "redox_users" 1636 | version = "0.5.0" 1637 | source = "registry+https://github.com/rust-lang/crates.io-index" 1638 | checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" 1639 | dependencies = [ 1640 | "getrandom 0.2.15", 1641 | "libredox", 1642 | "thiserror 2.0.12", 1643 | ] 1644 | 1645 | [[package]] 1646 | name = "regex" 1647 | version = "1.11.1" 1648 | source = "registry+https://github.com/rust-lang/crates.io-index" 1649 | checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" 1650 | dependencies = [ 1651 | "aho-corasick", 1652 | "memchr", 1653 | "regex-automata", 1654 | "regex-syntax", 1655 | ] 1656 | 1657 | [[package]] 1658 | name = "regex-automata" 1659 | version = "0.4.9" 1660 | source = "registry+https://github.com/rust-lang/crates.io-index" 1661 | checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" 1662 | dependencies = [ 1663 | "aho-corasick", 1664 | "memchr", 1665 | "regex-syntax", 1666 | ] 1667 | 1668 | [[package]] 1669 | name = "regex-syntax" 1670 | version = "0.8.5" 1671 | source = "registry+https://github.com/rust-lang/crates.io-index" 1672 | checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" 1673 | 1674 | [[package]] 1675 | name = "resvg" 1676 | version = "0.43.0" 1677 | source = "registry+https://github.com/rust-lang/crates.io-index" 1678 | checksum = "c7314563c59c7ce31c18e23ad3dd092c37b928a0fa4e1c0a1a6504351ab411d1" 1679 | dependencies = [ 1680 | "gif", 1681 | "image-webp", 1682 | "log", 1683 | "pico-args", 1684 | "rgb", 1685 | "svgtypes", 1686 | "tiny-skia", 1687 | "usvg", 1688 | "zune-jpeg", 1689 | ] 1690 | 1691 | [[package]] 1692 | name = "rgb" 1693 | version = "0.8.50" 1694 | source = "registry+https://github.com/rust-lang/crates.io-index" 1695 | checksum = "57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a" 1696 | dependencies = [ 1697 | "bytemuck", 1698 | ] 1699 | 1700 | [[package]] 1701 | name = "roxmltree" 1702 | version = "0.20.0" 1703 | source = "registry+https://github.com/rust-lang/crates.io-index" 1704 | checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97" 1705 | 1706 | [[package]] 1707 | name = "rust_decimal" 1708 | version = "1.37.0" 1709 | source = "registry+https://github.com/rust-lang/crates.io-index" 1710 | checksum = "5c24af6e7ac43c88a8a458d1139d0246fdce2f6cd2f1ac6cb51eb88b29c978af" 1711 | dependencies = [ 1712 | "arrayvec", 1713 | "num-traits", 1714 | ] 1715 | 1716 | [[package]] 1717 | name = "rustix" 1718 | version = "1.0.2" 1719 | source = "registry+https://github.com/rust-lang/crates.io-index" 1720 | checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825" 1721 | dependencies = [ 1722 | "bitflags 2.9.0", 1723 | "errno", 1724 | "libc", 1725 | "linux-raw-sys", 1726 | "windows-sys", 1727 | ] 1728 | 1729 | [[package]] 1730 | name = "rustversion" 1731 | version = "1.0.20" 1732 | source = "registry+https://github.com/rust-lang/crates.io-index" 1733 | checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" 1734 | 1735 | [[package]] 1736 | name = "rustybuzz" 1737 | version = "0.18.0" 1738 | source = "registry+https://github.com/rust-lang/crates.io-index" 1739 | checksum = "c85d1ccd519e61834798eb52c4e886e8c2d7d698dd3d6ce0b1b47eb8557f1181" 1740 | dependencies = [ 1741 | "bitflags 2.9.0", 1742 | "bytemuck", 1743 | "core_maths", 1744 | "log", 1745 | "smallvec", 1746 | "ttf-parser", 1747 | "unicode-bidi-mirroring", 1748 | "unicode-ccc", 1749 | "unicode-properties", 1750 | "unicode-script", 1751 | ] 1752 | 1753 | [[package]] 1754 | name = "ryu" 1755 | version = "1.0.20" 1756 | source = "registry+https://github.com/rust-lang/crates.io-index" 1757 | checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 1758 | 1759 | [[package]] 1760 | name = "same-file" 1761 | version = "1.0.6" 1762 | source = "registry+https://github.com/rust-lang/crates.io-index" 1763 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 1764 | dependencies = [ 1765 | "winapi-util", 1766 | ] 1767 | 1768 | [[package]] 1769 | name = "schannel" 1770 | version = "0.1.27" 1771 | source = "registry+https://github.com/rust-lang/crates.io-index" 1772 | checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" 1773 | dependencies = [ 1774 | "windows-sys", 1775 | ] 1776 | 1777 | [[package]] 1778 | name = "scopeguard" 1779 | version = "1.2.0" 1780 | source = "registry+https://github.com/rust-lang/crates.io-index" 1781 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1782 | 1783 | [[package]] 1784 | name = "security-framework" 1785 | version = "2.11.1" 1786 | source = "registry+https://github.com/rust-lang/crates.io-index" 1787 | checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" 1788 | dependencies = [ 1789 | "bitflags 2.9.0", 1790 | "core-foundation", 1791 | "core-foundation-sys", 1792 | "libc", 1793 | "security-framework-sys", 1794 | ] 1795 | 1796 | [[package]] 1797 | name = "security-framework-sys" 1798 | version = "2.14.0" 1799 | source = "registry+https://github.com/rust-lang/crates.io-index" 1800 | checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" 1801 | dependencies = [ 1802 | "core-foundation-sys", 1803 | "libc", 1804 | ] 1805 | 1806 | [[package]] 1807 | name = "serde" 1808 | version = "1.0.219" 1809 | source = "registry+https://github.com/rust-lang/crates.io-index" 1810 | checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" 1811 | dependencies = [ 1812 | "serde_derive", 1813 | ] 1814 | 1815 | [[package]] 1816 | name = "serde_derive" 1817 | version = "1.0.219" 1818 | source = "registry+https://github.com/rust-lang/crates.io-index" 1819 | checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" 1820 | dependencies = [ 1821 | "proc-macro2", 1822 | "quote", 1823 | "syn", 1824 | ] 1825 | 1826 | [[package]] 1827 | name = "serde_json" 1828 | version = "1.0.140" 1829 | source = "registry+https://github.com/rust-lang/crates.io-index" 1830 | checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" 1831 | dependencies = [ 1832 | "itoa", 1833 | "memchr", 1834 | "ryu", 1835 | "serde", 1836 | ] 1837 | 1838 | [[package]] 1839 | name = "serde_spanned" 1840 | version = "0.6.8" 1841 | source = "registry+https://github.com/rust-lang/crates.io-index" 1842 | checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" 1843 | dependencies = [ 1844 | "serde", 1845 | ] 1846 | 1847 | [[package]] 1848 | name = "serde_yaml" 1849 | version = "0.9.34+deprecated" 1850 | source = "registry+https://github.com/rust-lang/crates.io-index" 1851 | checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" 1852 | dependencies = [ 1853 | "indexmap", 1854 | "itoa", 1855 | "ryu", 1856 | "serde", 1857 | "unsafe-libyaml", 1858 | ] 1859 | 1860 | [[package]] 1861 | name = "shlex" 1862 | version = "1.3.0" 1863 | source = "registry+https://github.com/rust-lang/crates.io-index" 1864 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1865 | 1866 | [[package]] 1867 | name = "simd-adler32" 1868 | version = "0.3.7" 1869 | source = "registry+https://github.com/rust-lang/crates.io-index" 1870 | checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" 1871 | 1872 | [[package]] 1873 | name = "simplecss" 1874 | version = "0.2.2" 1875 | source = "registry+https://github.com/rust-lang/crates.io-index" 1876 | checksum = "7a9c6883ca9c3c7c90e888de77b7a5c849c779d25d74a1269b0218b14e8b136c" 1877 | dependencies = [ 1878 | "log", 1879 | ] 1880 | 1881 | [[package]] 1882 | name = "siphasher" 1883 | version = "1.0.1" 1884 | source = "registry+https://github.com/rust-lang/crates.io-index" 1885 | checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" 1886 | 1887 | [[package]] 1888 | name = "slotmap" 1889 | version = "1.0.7" 1890 | source = "registry+https://github.com/rust-lang/crates.io-index" 1891 | checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" 1892 | dependencies = [ 1893 | "version_check", 1894 | ] 1895 | 1896 | [[package]] 1897 | name = "smallvec" 1898 | version = "1.14.0" 1899 | source = "registry+https://github.com/rust-lang/crates.io-index" 1900 | checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" 1901 | 1902 | [[package]] 1903 | name = "spin" 1904 | version = "0.9.8" 1905 | source = "registry+https://github.com/rust-lang/crates.io-index" 1906 | checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 1907 | 1908 | [[package]] 1909 | name = "stable_deref_trait" 1910 | version = "1.2.0" 1911 | source = "registry+https://github.com/rust-lang/crates.io-index" 1912 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 1913 | 1914 | [[package]] 1915 | name = "stacker" 1916 | version = "0.1.19" 1917 | source = "registry+https://github.com/rust-lang/crates.io-index" 1918 | checksum = "d9156ebd5870ef293bfb43f91c7a74528d363ec0d424afe24160ed5a4343d08a" 1919 | dependencies = [ 1920 | "cc", 1921 | "cfg-if", 1922 | "libc", 1923 | "psm", 1924 | "windows-sys", 1925 | ] 1926 | 1927 | [[package]] 1928 | name = "strict-num" 1929 | version = "0.1.1" 1930 | source = "registry+https://github.com/rust-lang/crates.io-index" 1931 | checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" 1932 | dependencies = [ 1933 | "float-cmp", 1934 | ] 1935 | 1936 | [[package]] 1937 | name = "string-interner" 1938 | version = "0.18.0" 1939 | source = "registry+https://github.com/rust-lang/crates.io-index" 1940 | checksum = "1a3275464d7a9f2d4cac57c89c2ef96a8524dba2864c8d6f82e3980baf136f9b" 1941 | dependencies = [ 1942 | "hashbrown", 1943 | "serde", 1944 | ] 1945 | 1946 | [[package]] 1947 | name = "strum" 1948 | version = "0.26.3" 1949 | source = "registry+https://github.com/rust-lang/crates.io-index" 1950 | checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" 1951 | dependencies = [ 1952 | "strum_macros", 1953 | ] 1954 | 1955 | [[package]] 1956 | name = "strum_macros" 1957 | version = "0.26.4" 1958 | source = "registry+https://github.com/rust-lang/crates.io-index" 1959 | checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" 1960 | dependencies = [ 1961 | "heck", 1962 | "proc-macro2", 1963 | "quote", 1964 | "rustversion", 1965 | "syn", 1966 | ] 1967 | 1968 | [[package]] 1969 | name = "subsetter" 1970 | version = "0.2.0" 1971 | source = "registry+https://github.com/rust-lang/crates.io-index" 1972 | checksum = "74f98178f34057d4d4de93d68104007c6dea4dfac930204a69ab4622daefa648" 1973 | 1974 | [[package]] 1975 | name = "svg2pdf" 1976 | version = "0.12.0" 1977 | source = "registry+https://github.com/rust-lang/crates.io-index" 1978 | checksum = "5014c9dadcf318fb7ef8c16438e95abcc9de1ae24d60d5bccc64c55100c50364" 1979 | dependencies = [ 1980 | "fontdb", 1981 | "image", 1982 | "log", 1983 | "miniz_oxide", 1984 | "once_cell", 1985 | "pdf-writer", 1986 | "resvg", 1987 | "siphasher", 1988 | "subsetter", 1989 | "tiny-skia", 1990 | "ttf-parser", 1991 | "usvg", 1992 | ] 1993 | 1994 | [[package]] 1995 | name = "svgtypes" 1996 | version = "0.15.3" 1997 | source = "registry+https://github.com/rust-lang/crates.io-index" 1998 | checksum = "68c7541fff44b35860c1a7a47a7cadf3e4a304c457b58f9870d9706ece028afc" 1999 | dependencies = [ 2000 | "kurbo", 2001 | "siphasher", 2002 | ] 2003 | 2004 | [[package]] 2005 | name = "syn" 2006 | version = "2.0.100" 2007 | source = "registry+https://github.com/rust-lang/crates.io-index" 2008 | checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" 2009 | dependencies = [ 2010 | "proc-macro2", 2011 | "quote", 2012 | "unicode-ident", 2013 | ] 2014 | 2015 | [[package]] 2016 | name = "synstructure" 2017 | version = "0.13.1" 2018 | source = "registry+https://github.com/rust-lang/crates.io-index" 2019 | checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" 2020 | dependencies = [ 2021 | "proc-macro2", 2022 | "quote", 2023 | "syn", 2024 | ] 2025 | 2026 | [[package]] 2027 | name = "syntect" 2028 | version = "5.2.0" 2029 | source = "registry+https://github.com/rust-lang/crates.io-index" 2030 | checksum = "874dcfa363995604333cf947ae9f751ca3af4522c60886774c4963943b4746b1" 2031 | dependencies = [ 2032 | "bincode", 2033 | "bitflags 1.3.2", 2034 | "fancy-regex", 2035 | "flate2", 2036 | "fnv", 2037 | "once_cell", 2038 | "plist", 2039 | "regex-syntax", 2040 | "serde", 2041 | "serde_derive", 2042 | "serde_json", 2043 | "thiserror 1.0.69", 2044 | "walkdir", 2045 | "yaml-rust", 2046 | ] 2047 | 2048 | [[package]] 2049 | name = "tar" 2050 | version = "0.4.44" 2051 | source = "registry+https://github.com/rust-lang/crates.io-index" 2052 | checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" 2053 | dependencies = [ 2054 | "filetime", 2055 | "libc", 2056 | "xattr", 2057 | ] 2058 | 2059 | [[package]] 2060 | name = "target-lexicon" 2061 | version = "0.13.2" 2062 | source = "registry+https://github.com/rust-lang/crates.io-index" 2063 | checksum = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a" 2064 | 2065 | [[package]] 2066 | name = "tempfile" 2067 | version = "3.19.0" 2068 | source = "registry+https://github.com/rust-lang/crates.io-index" 2069 | checksum = "488960f40a3fd53d72c2a29a58722561dee8afdd175bd88e3db4677d7b2ba600" 2070 | dependencies = [ 2071 | "fastrand", 2072 | "getrandom 0.3.2", 2073 | "once_cell", 2074 | "rustix", 2075 | "windows-sys", 2076 | ] 2077 | 2078 | [[package]] 2079 | name = "termcolor" 2080 | version = "1.4.1" 2081 | source = "registry+https://github.com/rust-lang/crates.io-index" 2082 | checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" 2083 | dependencies = [ 2084 | "winapi-util", 2085 | ] 2086 | 2087 | [[package]] 2088 | name = "thin-vec" 2089 | version = "0.2.13" 2090 | source = "registry+https://github.com/rust-lang/crates.io-index" 2091 | checksum = "a38c90d48152c236a3ab59271da4f4ae63d678c5d7ad6b7714d7cb9760be5e4b" 2092 | 2093 | [[package]] 2094 | name = "thiserror" 2095 | version = "1.0.69" 2096 | source = "registry+https://github.com/rust-lang/crates.io-index" 2097 | checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 2098 | dependencies = [ 2099 | "thiserror-impl 1.0.69", 2100 | ] 2101 | 2102 | [[package]] 2103 | name = "thiserror" 2104 | version = "2.0.12" 2105 | source = "registry+https://github.com/rust-lang/crates.io-index" 2106 | checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" 2107 | dependencies = [ 2108 | "thiserror-impl 2.0.12", 2109 | ] 2110 | 2111 | [[package]] 2112 | name = "thiserror-impl" 2113 | version = "1.0.69" 2114 | source = "registry+https://github.com/rust-lang/crates.io-index" 2115 | checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 2116 | dependencies = [ 2117 | "proc-macro2", 2118 | "quote", 2119 | "syn", 2120 | ] 2121 | 2122 | [[package]] 2123 | name = "thiserror-impl" 2124 | version = "2.0.12" 2125 | source = "registry+https://github.com/rust-lang/crates.io-index" 2126 | checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" 2127 | dependencies = [ 2128 | "proc-macro2", 2129 | "quote", 2130 | "syn", 2131 | ] 2132 | 2133 | [[package]] 2134 | name = "time" 2135 | version = "0.3.40" 2136 | source = "registry+https://github.com/rust-lang/crates.io-index" 2137 | checksum = "9d9c75b47bdff86fa3334a3db91356b8d7d86a9b839dab7d0bdc5c3d3a077618" 2138 | dependencies = [ 2139 | "deranged", 2140 | "itoa", 2141 | "num-conv", 2142 | "powerfmt", 2143 | "serde", 2144 | "time-core", 2145 | "time-macros", 2146 | ] 2147 | 2148 | [[package]] 2149 | name = "time-core" 2150 | version = "0.1.4" 2151 | source = "registry+https://github.com/rust-lang/crates.io-index" 2152 | checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" 2153 | 2154 | [[package]] 2155 | name = "time-macros" 2156 | version = "0.2.21" 2157 | source = "registry+https://github.com/rust-lang/crates.io-index" 2158 | checksum = "29aa485584182073ed57fd5004aa09c371f021325014694e432313345865fd04" 2159 | dependencies = [ 2160 | "num-conv", 2161 | "time-core", 2162 | ] 2163 | 2164 | [[package]] 2165 | name = "tiny-skia" 2166 | version = "0.11.4" 2167 | source = "registry+https://github.com/rust-lang/crates.io-index" 2168 | checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab" 2169 | dependencies = [ 2170 | "arrayref", 2171 | "arrayvec", 2172 | "bytemuck", 2173 | "cfg-if", 2174 | "log", 2175 | "png", 2176 | "tiny-skia-path", 2177 | ] 2178 | 2179 | [[package]] 2180 | name = "tiny-skia-path" 2181 | version = "0.11.4" 2182 | source = "registry+https://github.com/rust-lang/crates.io-index" 2183 | checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93" 2184 | dependencies = [ 2185 | "arrayref", 2186 | "bytemuck", 2187 | "strict-num", 2188 | ] 2189 | 2190 | [[package]] 2191 | name = "tinystr" 2192 | version = "0.7.6" 2193 | source = "registry+https://github.com/rust-lang/crates.io-index" 2194 | checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" 2195 | dependencies = [ 2196 | "displaydoc", 2197 | "serde", 2198 | "zerovec", 2199 | ] 2200 | 2201 | [[package]] 2202 | name = "tinyvec" 2203 | version = "1.9.0" 2204 | source = "registry+https://github.com/rust-lang/crates.io-index" 2205 | checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" 2206 | dependencies = [ 2207 | "tinyvec_macros", 2208 | ] 2209 | 2210 | [[package]] 2211 | name = "tinyvec_macros" 2212 | version = "0.1.1" 2213 | source = "registry+https://github.com/rust-lang/crates.io-index" 2214 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 2215 | 2216 | [[package]] 2217 | name = "toml" 2218 | version = "0.8.20" 2219 | source = "registry+https://github.com/rust-lang/crates.io-index" 2220 | checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" 2221 | dependencies = [ 2222 | "serde", 2223 | "serde_spanned", 2224 | "toml_datetime", 2225 | "toml_edit", 2226 | ] 2227 | 2228 | [[package]] 2229 | name = "toml_datetime" 2230 | version = "0.6.8" 2231 | source = "registry+https://github.com/rust-lang/crates.io-index" 2232 | checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" 2233 | dependencies = [ 2234 | "serde", 2235 | ] 2236 | 2237 | [[package]] 2238 | name = "toml_edit" 2239 | version = "0.22.24" 2240 | source = "registry+https://github.com/rust-lang/crates.io-index" 2241 | checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" 2242 | dependencies = [ 2243 | "indexmap", 2244 | "serde", 2245 | "serde_spanned", 2246 | "toml_datetime", 2247 | "winnow", 2248 | ] 2249 | 2250 | [[package]] 2251 | name = "ttf-parser" 2252 | version = "0.24.1" 2253 | source = "registry+https://github.com/rust-lang/crates.io-index" 2254 | checksum = "5be21190ff5d38e8b4a2d3b6a3ae57f612cc39c96e83cedeaf7abc338a8bac4a" 2255 | dependencies = [ 2256 | "core_maths", 2257 | ] 2258 | 2259 | [[package]] 2260 | name = "two-face" 2261 | version = "0.4.3" 2262 | source = "registry+https://github.com/rust-lang/crates.io-index" 2263 | checksum = "384eda438ddf62e2c6f39a174452d952d9d9df5a8ad5ade22198609f8dcaf852" 2264 | dependencies = [ 2265 | "once_cell", 2266 | "serde", 2267 | "syntect", 2268 | ] 2269 | 2270 | [[package]] 2271 | name = "typed-arena" 2272 | version = "2.0.2" 2273 | source = "registry+https://github.com/rust-lang/crates.io-index" 2274 | checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" 2275 | 2276 | [[package]] 2277 | name = "typst" 2278 | version = "0.13.1" 2279 | source = "registry+https://github.com/rust-lang/crates.io-index" 2280 | checksum = "140458bc8c72b014266f8ea5fad57165c8159845105eea8949c8954b2a8f49f4" 2281 | dependencies = [ 2282 | "comemo", 2283 | "ecow", 2284 | "typst-eval", 2285 | "typst-html", 2286 | "typst-layout", 2287 | "typst-library", 2288 | "typst-macros", 2289 | "typst-realize", 2290 | "typst-syntax", 2291 | "typst-timing", 2292 | "typst-utils", 2293 | ] 2294 | 2295 | [[package]] 2296 | name = "typst-assets" 2297 | version = "0.13.1" 2298 | source = "registry+https://github.com/rust-lang/crates.io-index" 2299 | checksum = "b5bf0cc3c2265502b51fcb73147cc7c951ceb694507195b93c2ab0b901abb902" 2300 | 2301 | [[package]] 2302 | name = "typst-eval" 2303 | version = "0.13.1" 2304 | source = "registry+https://github.com/rust-lang/crates.io-index" 2305 | checksum = "850733c95becdb1b0153fd50e979b06d1a3d42f2411f2a0206b3a793501205ac" 2306 | dependencies = [ 2307 | "comemo", 2308 | "ecow", 2309 | "if_chain", 2310 | "indexmap", 2311 | "stacker", 2312 | "toml", 2313 | "typst-library", 2314 | "typst-macros", 2315 | "typst-syntax", 2316 | "typst-timing", 2317 | "typst-utils", 2318 | "unicode-segmentation", 2319 | ] 2320 | 2321 | [[package]] 2322 | name = "typst-html" 2323 | version = "0.13.1" 2324 | source = "registry+https://github.com/rust-lang/crates.io-index" 2325 | checksum = "654de5a88b9104f9b19723166eb16b8aec6df72a060d91736b81dc72e905e7cc" 2326 | dependencies = [ 2327 | "comemo", 2328 | "ecow", 2329 | "typst-library", 2330 | "typst-macros", 2331 | "typst-svg", 2332 | "typst-syntax", 2333 | "typst-timing", 2334 | "typst-utils", 2335 | ] 2336 | 2337 | [[package]] 2338 | name = "typst-kit" 2339 | version = "0.13.1" 2340 | source = "registry+https://github.com/rust-lang/crates.io-index" 2341 | checksum = "818fa9d54e1663fe20d15f6359945616cc4026d68c4de6c4eb0add7556fe2a90" 2342 | dependencies = [ 2343 | "dirs", 2344 | "ecow", 2345 | "env_proxy", 2346 | "flate2", 2347 | "fontdb", 2348 | "native-tls", 2349 | "once_cell", 2350 | "openssl", 2351 | "serde", 2352 | "serde_json", 2353 | "tar", 2354 | "typst-assets", 2355 | "typst-library", 2356 | "typst-syntax", 2357 | "typst-timing", 2358 | "typst-utils", 2359 | "ureq", 2360 | ] 2361 | 2362 | [[package]] 2363 | name = "typst-layout" 2364 | version = "0.13.1" 2365 | source = "registry+https://github.com/rust-lang/crates.io-index" 2366 | checksum = "dc7f7129c44423e54e9943c8a87403a82e8a5a1bdfd3ef08c0aae1b66deec696" 2367 | dependencies = [ 2368 | "az", 2369 | "bumpalo", 2370 | "comemo", 2371 | "ecow", 2372 | "hypher", 2373 | "icu_properties", 2374 | "icu_provider", 2375 | "icu_provider_adapters", 2376 | "icu_provider_blob", 2377 | "icu_segmenter", 2378 | "kurbo", 2379 | "rustybuzz", 2380 | "smallvec", 2381 | "ttf-parser", 2382 | "typst-assets", 2383 | "typst-library", 2384 | "typst-macros", 2385 | "typst-syntax", 2386 | "typst-timing", 2387 | "typst-utils", 2388 | "unicode-bidi", 2389 | "unicode-math-class", 2390 | "unicode-script", 2391 | "unicode-segmentation", 2392 | ] 2393 | 2394 | [[package]] 2395 | name = "typst-library" 2396 | version = "0.13.1" 2397 | source = "registry+https://github.com/rust-lang/crates.io-index" 2398 | checksum = "722b0d6dfd05aa5bb7da7f282586f624f452e3f285cd3a10ac0d7e99f3bc3048" 2399 | dependencies = [ 2400 | "az", 2401 | "bitflags 2.9.0", 2402 | "bumpalo", 2403 | "chinese-number", 2404 | "ciborium", 2405 | "codex", 2406 | "comemo", 2407 | "csv", 2408 | "ecow", 2409 | "flate2", 2410 | "fontdb", 2411 | "hayagriva", 2412 | "icu_properties", 2413 | "icu_provider", 2414 | "icu_provider_blob", 2415 | "image", 2416 | "indexmap", 2417 | "kamadak-exif", 2418 | "kurbo", 2419 | "lipsum", 2420 | "memchr", 2421 | "palette", 2422 | "phf", 2423 | "png", 2424 | "qcms", 2425 | "rayon", 2426 | "regex", 2427 | "regex-syntax", 2428 | "roxmltree", 2429 | "rust_decimal", 2430 | "rustybuzz", 2431 | "serde", 2432 | "serde_json", 2433 | "serde_yaml", 2434 | "siphasher", 2435 | "smallvec", 2436 | "syntect", 2437 | "time", 2438 | "toml", 2439 | "ttf-parser", 2440 | "two-face", 2441 | "typed-arena", 2442 | "typst-assets", 2443 | "typst-macros", 2444 | "typst-syntax", 2445 | "typst-timing", 2446 | "typst-utils", 2447 | "unicode-math-class", 2448 | "unicode-segmentation", 2449 | "unscanny", 2450 | "usvg", 2451 | "wasmi", 2452 | "xmlwriter", 2453 | ] 2454 | 2455 | [[package]] 2456 | name = "typst-macros" 2457 | version = "0.13.1" 2458 | source = "registry+https://github.com/rust-lang/crates.io-index" 2459 | checksum = "c5a7667bf2ff3111e25744e72abfdbbed5fed9a37476043448e935697e55a6fb" 2460 | dependencies = [ 2461 | "heck", 2462 | "proc-macro2", 2463 | "quote", 2464 | "syn", 2465 | ] 2466 | 2467 | [[package]] 2468 | name = "typst-pdf" 2469 | version = "0.13.1" 2470 | source = "registry+https://github.com/rust-lang/crates.io-index" 2471 | checksum = "a78718a94c28b5ed5e9ee9826fa995004a81abbcc1c9d0e88a7e87656cbec5a4" 2472 | dependencies = [ 2473 | "arrayvec", 2474 | "base64", 2475 | "bytemuck", 2476 | "comemo", 2477 | "ecow", 2478 | "image", 2479 | "indexmap", 2480 | "miniz_oxide", 2481 | "pdf-writer", 2482 | "serde", 2483 | "subsetter", 2484 | "svg2pdf", 2485 | "ttf-parser", 2486 | "typst-assets", 2487 | "typst-library", 2488 | "typst-macros", 2489 | "typst-syntax", 2490 | "typst-timing", 2491 | "typst-utils", 2492 | "xmp-writer", 2493 | ] 2494 | 2495 | [[package]] 2496 | name = "typst-py" 2497 | version = "0.13.2" 2498 | dependencies = [ 2499 | "chrono", 2500 | "codespan-reporting", 2501 | "comemo", 2502 | "ecow", 2503 | "pathdiff", 2504 | "pyo3", 2505 | "serde", 2506 | "serde_json", 2507 | "serde_yaml", 2508 | "typst", 2509 | "typst-eval", 2510 | "typst-html", 2511 | "typst-kit", 2512 | "typst-pdf", 2513 | "typst-render", 2514 | "typst-svg", 2515 | ] 2516 | 2517 | [[package]] 2518 | name = "typst-realize" 2519 | version = "0.13.1" 2520 | source = "registry+https://github.com/rust-lang/crates.io-index" 2521 | checksum = "7bc724c3303b9864c01f25292d82c3aa8f0492512bd890836f1fb7242fa5b8af" 2522 | dependencies = [ 2523 | "arrayvec", 2524 | "bumpalo", 2525 | "comemo", 2526 | "ecow", 2527 | "regex", 2528 | "typst-library", 2529 | "typst-macros", 2530 | "typst-syntax", 2531 | "typst-timing", 2532 | "typst-utils", 2533 | ] 2534 | 2535 | [[package]] 2536 | name = "typst-render" 2537 | version = "0.13.1" 2538 | source = "registry+https://github.com/rust-lang/crates.io-index" 2539 | checksum = "2e76277edcc37998910fa4a2e403056cdadd25e0f85dfbef1e98ac0377d9f04e" 2540 | dependencies = [ 2541 | "bytemuck", 2542 | "comemo", 2543 | "image", 2544 | "pixglyph", 2545 | "resvg", 2546 | "tiny-skia", 2547 | "ttf-parser", 2548 | "typst-library", 2549 | "typst-macros", 2550 | "typst-timing", 2551 | ] 2552 | 2553 | [[package]] 2554 | name = "typst-svg" 2555 | version = "0.13.1" 2556 | source = "registry+https://github.com/rust-lang/crates.io-index" 2557 | checksum = "674c8e5cb94015c9f870c48bace6b64eb706075766643f3b1f67606c6b03feae" 2558 | dependencies = [ 2559 | "base64", 2560 | "comemo", 2561 | "ecow", 2562 | "flate2", 2563 | "image", 2564 | "ttf-parser", 2565 | "typst-library", 2566 | "typst-macros", 2567 | "typst-timing", 2568 | "typst-utils", 2569 | "xmlparser", 2570 | "xmlwriter", 2571 | ] 2572 | 2573 | [[package]] 2574 | name = "typst-syntax" 2575 | version = "0.13.1" 2576 | source = "registry+https://github.com/rust-lang/crates.io-index" 2577 | checksum = "5ba949ac75a374ea6b2f61d32e6c63acb818e6179d16f78b2cba988fbb5e23a8" 2578 | dependencies = [ 2579 | "ecow", 2580 | "serde", 2581 | "toml", 2582 | "typst-timing", 2583 | "typst-utils", 2584 | "unicode-ident", 2585 | "unicode-math-class", 2586 | "unicode-script", 2587 | "unicode-segmentation", 2588 | "unscanny", 2589 | ] 2590 | 2591 | [[package]] 2592 | name = "typst-timing" 2593 | version = "0.13.1" 2594 | source = "registry+https://github.com/rust-lang/crates.io-index" 2595 | checksum = "8ba4541664e98be2023db2267d92af206190eb903063a0229c668e1ab9dca976" 2596 | dependencies = [ 2597 | "parking_lot", 2598 | "serde", 2599 | "serde_json", 2600 | ] 2601 | 2602 | [[package]] 2603 | name = "typst-utils" 2604 | version = "0.13.1" 2605 | source = "registry+https://github.com/rust-lang/crates.io-index" 2606 | checksum = "0eb71d59967e0fb32341f8a94f41ced8da520c63705cca2686ae653c9408fd96" 2607 | dependencies = [ 2608 | "once_cell", 2609 | "portable-atomic", 2610 | "rayon", 2611 | "siphasher", 2612 | "thin-vec", 2613 | "unicode-math-class", 2614 | ] 2615 | 2616 | [[package]] 2617 | name = "unic-langid" 2618 | version = "0.9.5" 2619 | source = "registry+https://github.com/rust-lang/crates.io-index" 2620 | checksum = "23dd9d1e72a73b25e07123a80776aae3e7b0ec461ef94f9151eed6ec88005a44" 2621 | dependencies = [ 2622 | "unic-langid-impl", 2623 | ] 2624 | 2625 | [[package]] 2626 | name = "unic-langid-impl" 2627 | version = "0.9.5" 2628 | source = "registry+https://github.com/rust-lang/crates.io-index" 2629 | checksum = "0a5422c1f65949306c99240b81de9f3f15929f5a8bfe05bb44b034cc8bf593e5" 2630 | dependencies = [ 2631 | "serde", 2632 | "tinystr", 2633 | ] 2634 | 2635 | [[package]] 2636 | name = "unicode-bidi" 2637 | version = "0.3.18" 2638 | source = "registry+https://github.com/rust-lang/crates.io-index" 2639 | checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" 2640 | 2641 | [[package]] 2642 | name = "unicode-bidi-mirroring" 2643 | version = "0.3.0" 2644 | source = "registry+https://github.com/rust-lang/crates.io-index" 2645 | checksum = "64af057ad7466495ca113126be61838d8af947f41d93a949980b2389a118082f" 2646 | 2647 | [[package]] 2648 | name = "unicode-ccc" 2649 | version = "0.3.0" 2650 | source = "registry+https://github.com/rust-lang/crates.io-index" 2651 | checksum = "260bc6647b3893a9a90668360803a15f96b85a5257b1c3a0c3daf6ae2496de42" 2652 | 2653 | [[package]] 2654 | name = "unicode-ident" 2655 | version = "1.0.18" 2656 | source = "registry+https://github.com/rust-lang/crates.io-index" 2657 | checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" 2658 | 2659 | [[package]] 2660 | name = "unicode-math-class" 2661 | version = "0.1.0" 2662 | source = "registry+https://github.com/rust-lang/crates.io-index" 2663 | checksum = "7d246cf599d5fae3c8d56e04b20eb519adb89a8af8d0b0fbcded369aa3647d65" 2664 | 2665 | [[package]] 2666 | name = "unicode-normalization" 2667 | version = "0.1.24" 2668 | source = "registry+https://github.com/rust-lang/crates.io-index" 2669 | checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" 2670 | dependencies = [ 2671 | "tinyvec", 2672 | ] 2673 | 2674 | [[package]] 2675 | name = "unicode-properties" 2676 | version = "0.1.3" 2677 | source = "registry+https://github.com/rust-lang/crates.io-index" 2678 | checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" 2679 | 2680 | [[package]] 2681 | name = "unicode-script" 2682 | version = "0.5.7" 2683 | source = "registry+https://github.com/rust-lang/crates.io-index" 2684 | checksum = "9fb421b350c9aff471779e262955939f565ec18b86c15364e6bdf0d662ca7c1f" 2685 | 2686 | [[package]] 2687 | name = "unicode-segmentation" 2688 | version = "1.12.0" 2689 | source = "registry+https://github.com/rust-lang/crates.io-index" 2690 | checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 2691 | 2692 | [[package]] 2693 | name = "unicode-vo" 2694 | version = "0.1.0" 2695 | source = "registry+https://github.com/rust-lang/crates.io-index" 2696 | checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94" 2697 | 2698 | [[package]] 2699 | name = "unicode-width" 2700 | version = "0.1.14" 2701 | source = "registry+https://github.com/rust-lang/crates.io-index" 2702 | checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" 2703 | 2704 | [[package]] 2705 | name = "unindent" 2706 | version = "0.2.4" 2707 | source = "registry+https://github.com/rust-lang/crates.io-index" 2708 | checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3" 2709 | 2710 | [[package]] 2711 | name = "unsafe-libyaml" 2712 | version = "0.2.11" 2713 | source = "registry+https://github.com/rust-lang/crates.io-index" 2714 | checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" 2715 | 2716 | [[package]] 2717 | name = "unscanny" 2718 | version = "0.1.0" 2719 | source = "registry+https://github.com/rust-lang/crates.io-index" 2720 | checksum = "e9df2af067a7953e9c3831320f35c1cc0600c30d44d9f7a12b01db1cd88d6b47" 2721 | 2722 | [[package]] 2723 | name = "ureq" 2724 | version = "2.12.1" 2725 | source = "registry+https://github.com/rust-lang/crates.io-index" 2726 | checksum = "02d1a66277ed75f640d608235660df48c8e3c19f3b4edb6a263315626cc3c01d" 2727 | dependencies = [ 2728 | "base64", 2729 | "flate2", 2730 | "log", 2731 | "native-tls", 2732 | "once_cell", 2733 | "serde", 2734 | "serde_json", 2735 | "url", 2736 | ] 2737 | 2738 | [[package]] 2739 | name = "url" 2740 | version = "2.5.4" 2741 | source = "registry+https://github.com/rust-lang/crates.io-index" 2742 | checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" 2743 | dependencies = [ 2744 | "form_urlencoded", 2745 | "idna", 2746 | "percent-encoding", 2747 | "serde", 2748 | ] 2749 | 2750 | [[package]] 2751 | name = "usvg" 2752 | version = "0.43.0" 2753 | source = "registry+https://github.com/rust-lang/crates.io-index" 2754 | checksum = "6803057b5cbb426e9fb8ce2216f3a9b4ca1dd2c705ba3cbebc13006e437735fd" 2755 | dependencies = [ 2756 | "base64", 2757 | "data-url", 2758 | "flate2", 2759 | "fontdb", 2760 | "imagesize", 2761 | "kurbo", 2762 | "log", 2763 | "pico-args", 2764 | "roxmltree", 2765 | "rustybuzz", 2766 | "simplecss", 2767 | "siphasher", 2768 | "strict-num", 2769 | "svgtypes", 2770 | "tiny-skia-path", 2771 | "unicode-bidi", 2772 | "unicode-script", 2773 | "unicode-vo", 2774 | "xmlwriter", 2775 | ] 2776 | 2777 | [[package]] 2778 | name = "utf16_iter" 2779 | version = "1.0.5" 2780 | source = "registry+https://github.com/rust-lang/crates.io-index" 2781 | checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" 2782 | 2783 | [[package]] 2784 | name = "utf8_iter" 2785 | version = "1.0.4" 2786 | source = "registry+https://github.com/rust-lang/crates.io-index" 2787 | checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 2788 | 2789 | [[package]] 2790 | name = "vcpkg" 2791 | version = "0.2.15" 2792 | source = "registry+https://github.com/rust-lang/crates.io-index" 2793 | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 2794 | 2795 | [[package]] 2796 | name = "version_check" 2797 | version = "0.9.5" 2798 | source = "registry+https://github.com/rust-lang/crates.io-index" 2799 | checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 2800 | 2801 | [[package]] 2802 | name = "walkdir" 2803 | version = "2.5.0" 2804 | source = "registry+https://github.com/rust-lang/crates.io-index" 2805 | checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 2806 | dependencies = [ 2807 | "same-file", 2808 | "winapi-util", 2809 | ] 2810 | 2811 | [[package]] 2812 | name = "wasi" 2813 | version = "0.11.0+wasi-snapshot-preview1" 2814 | source = "registry+https://github.com/rust-lang/crates.io-index" 2815 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 2816 | 2817 | [[package]] 2818 | name = "wasi" 2819 | version = "0.14.2+wasi-0.2.4" 2820 | source = "registry+https://github.com/rust-lang/crates.io-index" 2821 | checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" 2822 | dependencies = [ 2823 | "wit-bindgen-rt", 2824 | ] 2825 | 2826 | [[package]] 2827 | name = "wasm-bindgen" 2828 | version = "0.2.100" 2829 | source = "registry+https://github.com/rust-lang/crates.io-index" 2830 | checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" 2831 | dependencies = [ 2832 | "cfg-if", 2833 | "once_cell", 2834 | "rustversion", 2835 | "wasm-bindgen-macro", 2836 | ] 2837 | 2838 | [[package]] 2839 | name = "wasm-bindgen-backend" 2840 | version = "0.2.100" 2841 | source = "registry+https://github.com/rust-lang/crates.io-index" 2842 | checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" 2843 | dependencies = [ 2844 | "bumpalo", 2845 | "log", 2846 | "proc-macro2", 2847 | "quote", 2848 | "syn", 2849 | "wasm-bindgen-shared", 2850 | ] 2851 | 2852 | [[package]] 2853 | name = "wasm-bindgen-macro" 2854 | version = "0.2.100" 2855 | source = "registry+https://github.com/rust-lang/crates.io-index" 2856 | checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" 2857 | dependencies = [ 2858 | "quote", 2859 | "wasm-bindgen-macro-support", 2860 | ] 2861 | 2862 | [[package]] 2863 | name = "wasm-bindgen-macro-support" 2864 | version = "0.2.100" 2865 | source = "registry+https://github.com/rust-lang/crates.io-index" 2866 | checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" 2867 | dependencies = [ 2868 | "proc-macro2", 2869 | "quote", 2870 | "syn", 2871 | "wasm-bindgen-backend", 2872 | "wasm-bindgen-shared", 2873 | ] 2874 | 2875 | [[package]] 2876 | name = "wasm-bindgen-shared" 2877 | version = "0.2.100" 2878 | source = "registry+https://github.com/rust-lang/crates.io-index" 2879 | checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" 2880 | dependencies = [ 2881 | "unicode-ident", 2882 | ] 2883 | 2884 | [[package]] 2885 | name = "wasmi" 2886 | version = "0.40.0" 2887 | source = "registry+https://github.com/rust-lang/crates.io-index" 2888 | checksum = "a19af97fcb96045dd1d6b4d23e2b4abdbbe81723dbc5c9f016eb52145b320063" 2889 | dependencies = [ 2890 | "arrayvec", 2891 | "multi-stash", 2892 | "smallvec", 2893 | "spin", 2894 | "wasmi_collections", 2895 | "wasmi_core", 2896 | "wasmi_ir", 2897 | "wasmparser", 2898 | ] 2899 | 2900 | [[package]] 2901 | name = "wasmi_collections" 2902 | version = "0.40.0" 2903 | source = "registry+https://github.com/rust-lang/crates.io-index" 2904 | checksum = "e80d6b275b1c922021939d561574bf376613493ae2b61c6963b15db0e8813562" 2905 | dependencies = [ 2906 | "string-interner", 2907 | ] 2908 | 2909 | [[package]] 2910 | name = "wasmi_core" 2911 | version = "0.40.0" 2912 | source = "registry+https://github.com/rust-lang/crates.io-index" 2913 | checksum = "3a8c51482cc32d31c2c7ff211cd2bedd73c5bd057ba16a2ed0110e7a96097c33" 2914 | dependencies = [ 2915 | "downcast-rs", 2916 | "libm", 2917 | ] 2918 | 2919 | [[package]] 2920 | name = "wasmi_ir" 2921 | version = "0.40.0" 2922 | source = "registry+https://github.com/rust-lang/crates.io-index" 2923 | checksum = "6e431a14c186db59212a88516788bd68ed51f87aa1e08d1df742522867b5289a" 2924 | dependencies = [ 2925 | "wasmi_core", 2926 | ] 2927 | 2928 | [[package]] 2929 | name = "wasmparser" 2930 | version = "0.221.3" 2931 | source = "registry+https://github.com/rust-lang/crates.io-index" 2932 | checksum = "d06bfa36ab3ac2be0dee563380147a5b81ba10dd8885d7fbbc9eb574be67d185" 2933 | dependencies = [ 2934 | "bitflags 2.9.0", 2935 | "indexmap", 2936 | ] 2937 | 2938 | [[package]] 2939 | name = "weezl" 2940 | version = "0.1.8" 2941 | source = "registry+https://github.com/rust-lang/crates.io-index" 2942 | checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" 2943 | 2944 | [[package]] 2945 | name = "winapi-util" 2946 | version = "0.1.9" 2947 | source = "registry+https://github.com/rust-lang/crates.io-index" 2948 | checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" 2949 | dependencies = [ 2950 | "windows-sys", 2951 | ] 2952 | 2953 | [[package]] 2954 | name = "windows-core" 2955 | version = "0.52.0" 2956 | source = "registry+https://github.com/rust-lang/crates.io-index" 2957 | checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" 2958 | dependencies = [ 2959 | "windows-targets", 2960 | ] 2961 | 2962 | [[package]] 2963 | name = "windows-link" 2964 | version = "0.1.0" 2965 | source = "registry+https://github.com/rust-lang/crates.io-index" 2966 | checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" 2967 | 2968 | [[package]] 2969 | name = "windows-sys" 2970 | version = "0.59.0" 2971 | source = "registry+https://github.com/rust-lang/crates.io-index" 2972 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 2973 | dependencies = [ 2974 | "windows-targets", 2975 | ] 2976 | 2977 | [[package]] 2978 | name = "windows-targets" 2979 | version = "0.52.6" 2980 | source = "registry+https://github.com/rust-lang/crates.io-index" 2981 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 2982 | dependencies = [ 2983 | "windows_aarch64_gnullvm", 2984 | "windows_aarch64_msvc", 2985 | "windows_i686_gnu", 2986 | "windows_i686_gnullvm", 2987 | "windows_i686_msvc", 2988 | "windows_x86_64_gnu", 2989 | "windows_x86_64_gnullvm", 2990 | "windows_x86_64_msvc", 2991 | ] 2992 | 2993 | [[package]] 2994 | name = "windows_aarch64_gnullvm" 2995 | version = "0.52.6" 2996 | source = "registry+https://github.com/rust-lang/crates.io-index" 2997 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 2998 | 2999 | [[package]] 3000 | name = "windows_aarch64_msvc" 3001 | version = "0.52.6" 3002 | source = "registry+https://github.com/rust-lang/crates.io-index" 3003 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 3004 | 3005 | [[package]] 3006 | name = "windows_i686_gnu" 3007 | version = "0.52.6" 3008 | source = "registry+https://github.com/rust-lang/crates.io-index" 3009 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 3010 | 3011 | [[package]] 3012 | name = "windows_i686_gnullvm" 3013 | version = "0.52.6" 3014 | source = "registry+https://github.com/rust-lang/crates.io-index" 3015 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 3016 | 3017 | [[package]] 3018 | name = "windows_i686_msvc" 3019 | version = "0.52.6" 3020 | source = "registry+https://github.com/rust-lang/crates.io-index" 3021 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 3022 | 3023 | [[package]] 3024 | name = "windows_x86_64_gnu" 3025 | version = "0.52.6" 3026 | source = "registry+https://github.com/rust-lang/crates.io-index" 3027 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 3028 | 3029 | [[package]] 3030 | name = "windows_x86_64_gnullvm" 3031 | version = "0.52.6" 3032 | source = "registry+https://github.com/rust-lang/crates.io-index" 3033 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 3034 | 3035 | [[package]] 3036 | name = "windows_x86_64_msvc" 3037 | version = "0.52.6" 3038 | source = "registry+https://github.com/rust-lang/crates.io-index" 3039 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 3040 | 3041 | [[package]] 3042 | name = "winnow" 3043 | version = "0.7.4" 3044 | source = "registry+https://github.com/rust-lang/crates.io-index" 3045 | checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" 3046 | dependencies = [ 3047 | "memchr", 3048 | ] 3049 | 3050 | [[package]] 3051 | name = "wit-bindgen-rt" 3052 | version = "0.39.0" 3053 | source = "registry+https://github.com/rust-lang/crates.io-index" 3054 | checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" 3055 | dependencies = [ 3056 | "bitflags 2.9.0", 3057 | ] 3058 | 3059 | [[package]] 3060 | name = "write16" 3061 | version = "1.0.0" 3062 | source = "registry+https://github.com/rust-lang/crates.io-index" 3063 | checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" 3064 | 3065 | [[package]] 3066 | name = "writeable" 3067 | version = "0.5.5" 3068 | source = "registry+https://github.com/rust-lang/crates.io-index" 3069 | checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" 3070 | 3071 | [[package]] 3072 | name = "xattr" 3073 | version = "1.5.0" 3074 | source = "registry+https://github.com/rust-lang/crates.io-index" 3075 | checksum = "0d65cbf2f12c15564212d48f4e3dfb87923d25d611f2aed18f4cb23f0413d89e" 3076 | dependencies = [ 3077 | "libc", 3078 | "rustix", 3079 | ] 3080 | 3081 | [[package]] 3082 | name = "xmlparser" 3083 | version = "0.13.6" 3084 | source = "registry+https://github.com/rust-lang/crates.io-index" 3085 | checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4" 3086 | 3087 | [[package]] 3088 | name = "xmlwriter" 3089 | version = "0.1.0" 3090 | source = "registry+https://github.com/rust-lang/crates.io-index" 3091 | checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9" 3092 | 3093 | [[package]] 3094 | name = "xmp-writer" 3095 | version = "0.3.1" 3096 | source = "registry+https://github.com/rust-lang/crates.io-index" 3097 | checksum = "7eb5954c9ca6dcc869e98d3e42760ed9dab08f3e70212b31d7ab8ae7f3b7a487" 3098 | 3099 | [[package]] 3100 | name = "yaml-rust" 3101 | version = "0.4.5" 3102 | source = "registry+https://github.com/rust-lang/crates.io-index" 3103 | checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" 3104 | dependencies = [ 3105 | "linked-hash-map", 3106 | ] 3107 | 3108 | [[package]] 3109 | name = "yoke" 3110 | version = "0.7.5" 3111 | source = "registry+https://github.com/rust-lang/crates.io-index" 3112 | checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" 3113 | dependencies = [ 3114 | "serde", 3115 | "stable_deref_trait", 3116 | "yoke-derive", 3117 | "zerofrom", 3118 | ] 3119 | 3120 | [[package]] 3121 | name = "yoke-derive" 3122 | version = "0.7.5" 3123 | source = "registry+https://github.com/rust-lang/crates.io-index" 3124 | checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" 3125 | dependencies = [ 3126 | "proc-macro2", 3127 | "quote", 3128 | "syn", 3129 | "synstructure", 3130 | ] 3131 | 3132 | [[package]] 3133 | name = "zerocopy" 3134 | version = "0.8.23" 3135 | source = "registry+https://github.com/rust-lang/crates.io-index" 3136 | checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" 3137 | dependencies = [ 3138 | "zerocopy-derive", 3139 | ] 3140 | 3141 | [[package]] 3142 | name = "zerocopy-derive" 3143 | version = "0.8.23" 3144 | source = "registry+https://github.com/rust-lang/crates.io-index" 3145 | checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" 3146 | dependencies = [ 3147 | "proc-macro2", 3148 | "quote", 3149 | "syn", 3150 | ] 3151 | 3152 | [[package]] 3153 | name = "zerofrom" 3154 | version = "0.1.6" 3155 | source = "registry+https://github.com/rust-lang/crates.io-index" 3156 | checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" 3157 | dependencies = [ 3158 | "zerofrom-derive", 3159 | ] 3160 | 3161 | [[package]] 3162 | name = "zerofrom-derive" 3163 | version = "0.1.6" 3164 | source = "registry+https://github.com/rust-lang/crates.io-index" 3165 | checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" 3166 | dependencies = [ 3167 | "proc-macro2", 3168 | "quote", 3169 | "syn", 3170 | "synstructure", 3171 | ] 3172 | 3173 | [[package]] 3174 | name = "zerotrie" 3175 | version = "0.1.3" 3176 | source = "registry+https://github.com/rust-lang/crates.io-index" 3177 | checksum = "fb594dd55d87335c5f60177cee24f19457a5ec10a065e0a3014722ad252d0a1f" 3178 | dependencies = [ 3179 | "displaydoc", 3180 | "litemap", 3181 | "serde", 3182 | "zerovec", 3183 | ] 3184 | 3185 | [[package]] 3186 | name = "zerovec" 3187 | version = "0.10.4" 3188 | source = "registry+https://github.com/rust-lang/crates.io-index" 3189 | checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" 3190 | dependencies = [ 3191 | "serde", 3192 | "yoke", 3193 | "zerofrom", 3194 | "zerovec-derive", 3195 | ] 3196 | 3197 | [[package]] 3198 | name = "zerovec-derive" 3199 | version = "0.10.3" 3200 | source = "registry+https://github.com/rust-lang/crates.io-index" 3201 | checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" 3202 | dependencies = [ 3203 | "proc-macro2", 3204 | "quote", 3205 | "syn", 3206 | ] 3207 | 3208 | [[package]] 3209 | name = "zune-core" 3210 | version = "0.4.12" 3211 | source = "registry+https://github.com/rust-lang/crates.io-index" 3212 | checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" 3213 | 3214 | [[package]] 3215 | name = "zune-jpeg" 3216 | version = "0.4.14" 3217 | source = "registry+https://github.com/rust-lang/crates.io-index" 3218 | checksum = "99a5bab8d7dedf81405c4bb1f2b83ea057643d9cb28778cea9eecddeedd2e028" 3219 | dependencies = [ 3220 | "zune-core", 3221 | ] 3222 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "typst-py" 3 | version = "0.13.2" 4 | edition = "2021" 5 | description = "Python binding to typst" 6 | license = "Apache-2.0" 7 | repository = "https://github.com/messense/typst-py" 8 | readme = "README.md" 9 | 10 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 11 | [lib] 12 | crate-type = ["cdylib"] 13 | 14 | [dependencies] 15 | chrono = { version = "0.4.41", default-features = false, features = [ 16 | "clock", 17 | "std", 18 | ] } 19 | codespan-reporting = "0.12" 20 | comemo = "0.4.0" 21 | ecow = "0.2" 22 | pathdiff = "0.2" 23 | pyo3 = { version = "0.24.2", features = ["abi3-py38", "generate-import-lib"] } 24 | serde = { version = "1.0.219", features = ["derive"] } 25 | serde_json = "1" 26 | serde_yaml = "0.9" 27 | typst = "0.13.1" 28 | typst-kit = { version = "0.13.1", features = [ 29 | "downloads", 30 | "embed-fonts", 31 | "vendor-openssl", 32 | ] } 33 | typst-pdf = "0.13.1" 34 | typst-svg = "0.13.0" 35 | typst-render = "0.13.1" 36 | typst-eval = "0.13.0" 37 | typst-html = "0.13.1" 38 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # typst-py 2 | 3 | ![CI](https://github.com/messense/typst-py/workflows/CI/badge.svg) 4 | [![PyPI](https://img.shields.io/pypi/v/typst.svg)](https://pypi.org/project/typst) 5 | 6 | Python binding to [typst](https://github.com/typst/typst), 7 | a new markup-based typesetting system that is powerful and easy to learn. 8 | 9 | ## Installation 10 | 11 | ```bash 12 | pip install typst 13 | ``` 14 | 15 | ## Usage 16 | 17 | ```python 18 | import typst 19 | 20 | 21 | # Compile `hello.typ` to PDF and save as `hello.pdf` 22 | typst.compile("hello.typ", output="hello.pdf") 23 | 24 | # Compile `hello.typ` to PNG and save as `hello.png` 25 | typst.compile("hello.typ", output="hello.png", format="png", ppi=144.0) 26 | 27 | # Or pass `hello.typ` content as bytes 28 | with open("hello.typ", "rb") as f: 29 | typst.compile(f.read(), output="hello.pdf") 30 | 31 | # Or return PDF content as bytes 32 | pdf_bytes = typst.compile("hello.typ") 33 | 34 | # Also for svg 35 | svg_bytes = typst.compile("hello.typ", format="svg") 36 | 37 | # For multi-page export (the template is the same as the typst cli) 38 | images = typst.compile("hello.typ", output="hello{n}.png", format="png") 39 | 40 | # Or use Compiler class to avoid reinitialization 41 | compiler = typst.Compiler("hello.typ") 42 | compiler.compile(format="png", ppi=144.0) 43 | 44 | # Query something 45 | import json 46 | 47 | values = json.loads(typst.query("hello.typ", "", field="value", one=True)) 48 | ``` 49 | 50 | ## Passing values 51 | 52 | You can pass values to the compiled Typst file with the `sys_inputs` argument. For example: 53 | 54 | ```python 55 | import json 56 | import typst 57 | 58 | persons = [{"name": "John", "age": 35}, {"name": "Xoliswa", "age": 45}] 59 | sys_inputs = {"persons": json.dumps(persons)} 60 | 61 | typst.compile(input="main.typ", output="ages.pdf", sys_inputs=sys_inputs) 62 | ``` 63 | 64 | The following example shows how the passed data can be used in a Typst file. 65 | 66 | ``` 67 | #let persons = json(bytes(sys.inputs.persons)) 68 | 69 | #for person in persons [ 70 | #person.name is #person.age years old. \ 71 | ] 72 | ``` 73 | 74 | ## License 75 | 76 | This work is released under the Apache-2.0 license. A copy of the license is provided in the [LICENSE](./LICENSE) file. 77 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["maturin>=1.0,<2.0"] 3 | build-backend = "maturin" 4 | 5 | [project] 6 | name = "typst" 7 | requires-python = ">=3.8" 8 | classifiers = [ 9 | "Programming Language :: Rust", 10 | "Programming Language :: Python :: Implementation :: CPython", 11 | "Programming Language :: Python :: Implementation :: PyPy", 12 | ] 13 | dynamic = ["version"] 14 | 15 | [tool.maturin] 16 | module-name = "typst._typst" 17 | python-source = "python" 18 | features = ["pyo3/extension-module"] 19 | -------------------------------------------------------------------------------- /python/typst/__init__.py: -------------------------------------------------------------------------------- 1 | from ._typst import * 2 | 3 | 4 | __doc__ = _typst.__doc__ 5 | __all__ = _typst.__all__ 6 | -------------------------------------------------------------------------------- /python/typst/__init__.pyi: -------------------------------------------------------------------------------- 1 | import pathlib 2 | from typing import List, Optional, TypeVar, overload, Dict, Union, Literal 3 | 4 | Input = TypeVar("Input", str, pathlib.Path, bytes) 5 | OutputFormat = Literal["pdf", "svg", "png", "html"] 6 | 7 | class Compiler: 8 | def __init__( 9 | self, 10 | input: Input, 11 | root: Optional[Input] = None, 12 | font_paths: List[Input] = [], 13 | ignore_system_fonts: bool = False, 14 | sys_inputs: Dict[str, str] = {}, 15 | pdf_standards: Optional[Union[Literal["1.7", "a-2b", "a-3b"], List[Literal["1.7", "a-2b", "a-3b"]]]] = [] 16 | ) -> None: 17 | """Initialize a Typst compiler. 18 | Args: 19 | input: .typ file bytes or path to project's main .typ file. 20 | root (Optional[PathLike], optional): Root path for the Typst project. 21 | font_paths (List[PathLike]): Folders with fonts. 22 | ignore_system_fonts (bool): Ignore system fonts. 23 | sys_inputs (Dict[str, str]): string key-value pairs to be passed to the document via sys.inputs 24 | """ 25 | 26 | def compile( 27 | self, 28 | output: Optional[Input] = None, 29 | format: Optional[OutputFormat] = None, 30 | ppi: Optional[float] = None, 31 | ) -> Optional[Union[bytes, List[bytes]]]: 32 | """Compile a Typst project. 33 | Args: 34 | output (Optional[PathLike], optional): Path to save the compiled file. 35 | Allowed extensions are `.pdf`, `.svg` and `.png` 36 | format (Optional[str]): Output format. 37 | Allowed values are `pdf`, `svg` and `png`. 38 | ppi (Optional[float]): Pixels per inch for PNG output, defaults to 144. 39 | Returns: 40 | Optional[Union[bytes, List[bytes]]]: Return the compiled file as `bytes` if output is `None`. 41 | """ 42 | 43 | def query( 44 | self, 45 | selector: str, 46 | field: Optional[str] = None, 47 | one: bool = False, 48 | format: Optional[Literal["json", "yaml"]] = None, 49 | ) -> str: 50 | """Query a Typst document. 51 | Args: 52 | selector (str): Typst selector like `