imprimatur 0.5.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +31 -0
  3. data/Cargo.lock +473 -5
  4. data/Cargo.toml +17 -1
  5. data/README.md +63 -7
  6. data/ext/imprimatur_native/cli/Cargo.toml +1 -1
  7. data/ext/imprimatur_native/cli/src/app.rs +3 -1
  8. data/ext/imprimatur_native/core/Cargo.toml +30 -13
  9. data/ext/imprimatur_native/core/README.md +18 -1
  10. data/ext/imprimatur_native/core/src/bin/imprimatur-render-worker.rs +10 -0
  11. data/ext/imprimatur_native/core/src/bytes.rs +16 -0
  12. data/ext/imprimatur_native/core/src/doc/picture.rs +3 -7
  13. data/ext/imprimatur_native/core/src/doc/size.rs +14 -0
  14. data/ext/imprimatur_native/core/src/doc/symbol.rs +3 -5
  15. data/ext/imprimatur_native/core/src/doc.rs +24 -0
  16. data/ext/imprimatur_native/core/src/docx.rs +6 -5
  17. data/ext/imprimatur_native/core/src/error.rs +6 -0
  18. data/ext/imprimatur_native/core/src/font.rs +12 -0
  19. data/ext/imprimatur_native/core/src/lib.rs +6 -0
  20. data/ext/imprimatur_native/core/src/pdf/layout.rs +13 -5
  21. data/ext/imprimatur_native/core/src/pdf/objects.rs +1 -1
  22. data/ext/imprimatur_native/core/src/pdf/truetype/descriptor.rs +1 -0
  23. data/ext/imprimatur_native/core/src/read/budget.rs +10 -5
  24. data/ext/imprimatur_native/core/src/read/content.rs +16 -0
  25. data/ext/imprimatur_native/core/src/read/image/dimensions.rs +2 -2
  26. data/ext/imprimatur_native/core/src/read/ole.rs +1 -8
  27. data/ext/imprimatur_native/core/src/read/pdf/bounded.rs +249 -0
  28. data/ext/imprimatur_native/core/src/read/pdf/content/state.rs +50 -0
  29. data/ext/imprimatur_native/core/src/read/pdf/content.rs +43 -54
  30. data/ext/imprimatur_native/core/src/read/pdf/document/pages.rs +140 -0
  31. data/ext/imprimatur_native/core/src/read/pdf/document.rs +20 -110
  32. data/ext/imprimatur_native/core/src/read/pdf/filter.rs +25 -13
  33. data/ext/imprimatur_native/core/src/read/pdf/font.rs +4 -3
  34. data/ext/imprimatur_native/core/src/read/pdf/isolation/protocol.rs +224 -0
  35. data/ext/imprimatur_native/core/src/read/pdf/isolation/stream.rs +113 -0
  36. data/ext/imprimatur_native/core/src/read/pdf/isolation/system.rs +98 -0
  37. data/ext/imprimatur_native/core/src/read/pdf/isolation/worker.rs +74 -0
  38. data/ext/imprimatur_native/core/src/read/pdf/isolation.rs +255 -0
  39. data/ext/imprimatur_native/core/src/read/pdf/render.rs +206 -0
  40. data/ext/imprimatur_native/core/src/read/pdf.rs +16 -8
  41. data/ext/imprimatur_native/core/src/read/xls/strings.rs +2 -1
  42. data/ext/imprimatur_native/core/src/read/xls.rs +1 -8
  43. data/ext/imprimatur_native/core/src/read.rs +6 -5
  44. data/ext/imprimatur_native/core/src/test_support/font.rs +37 -0
  45. data/ext/imprimatur_native/core/src/xlsx/validation.rs +28 -18
  46. data/ext/imprimatur_native/core/src/zip/reader.rs +1 -8
  47. data/ext/imprimatur_native/extconf.rb +18 -0
  48. data/ext/imprimatur_native/ffi/Cargo.toml +2 -2
  49. data/ext/imprimatur_native/ffi/src/document.rs +6 -0
  50. data/ext/imprimatur_native/ffi/src/lib.rs +7 -0
  51. data/ext/imprimatur_native/ffi/src/pdf.rs +88 -0
  52. data/ext/imprimatur_native/ffi/src/read.rs +18 -12
  53. data/lib/imprimatur/document.rb +4 -2
  54. data/lib/imprimatur/native.rb +7 -0
  55. data/lib/imprimatur/pdf_reader.rb +29 -0
  56. data/lib/imprimatur/version.rb +1 -1
  57. data/lib/imprimatur.rb +26 -2
  58. metadata +20 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4848e853143c78734ddc89bde21aa9f9073e0a34ba7149b5a1d57053d6332e6b
4
- data.tar.gz: 87d66564536d236273bca3f45390943114e3959574e83d811f095785898aa89b
3
+ metadata.gz: b79ecca5f76986eb4049090056dcee55fe7b8d2aafa1115de48ea2f45b0e12ef
4
+ data.tar.gz: 925d5c93f99da882db19b562c749ba41c1ae17a5fd01d17b66bd9be93a9dc15a
5
5
  SHA512:
6
- metadata.gz: 0f0a715f540846ea8c7cd4704ad825ae5656ec0a4155c367c71961f78fc44755420260cd013b53e382a657e637a67bef1bd7dc9faa039012584bd7cf31b3d9b4
7
- data.tar.gz: f9d43fe1f73db0215a889ed2f1db72c75385cb8fcf5e82e795df8bb09034d3f1f5415cf1f9354e9af2ccd321162671a7bfcd0d3bd349b5dd4fd8e71f581318c1
6
+ metadata.gz: e28f3c9640d20df215ed94a94195fcea8a28336f1ddc1d5a923355e09fdc68142517b92147c3b76dc089b68294c8aa4b4edde1a832fc613fb44612d92e4773ba
7
+ data.tar.gz: c7f0d6f08c5f9349574e03c3ec025c82f737afdeb5e4e8c6994bf7afe0c5a7fa7091e418495691346f43b987a7abd7451d6eeca207b87dd911a523508039ac3a
data/CHANGELOG.md CHANGED
@@ -1,5 +1,36 @@
1
1
  # Changelog
2
2
 
3
+ ## Unreleased
4
+
5
+ - Isolate PDF metadata and text reads in the bundled resource-limited Rust
6
+ worker, as rendering already is; all three accept `memory_bytes:`.
7
+ - On Linux/FreeBSD, re-exec the worker under its address-space limit before
8
+ reading the PDF, including tiny metadata-only reads.
9
+ - Preserve completed pages on worker termination and recover healthy neighbors
10
+ after page-local stream limits without renewing the overall deadline.
11
+ - Allow a bounded exit grace when macOS cannot inspect an exiting worker;
12
+ persistent monitor failures still terminate and reap a live worker.
13
+
14
+ ## [0.6.1](https://github.com/seuros/imprimatur/compare/v0.6.0...v0.6.1) (2026-10-25)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * **pdf:** isolate bounded reads and preserve page recovery ([fbfbbc5](https://github.com/seuros/imprimatur/commit/fbfbbc5e7e44768efae293b37be255b8b797f831))
20
+
21
+ ## [0.6.0](https://github.com/seuros/imprimatur/compare/v0.5.0...v0.6.0) (2026-10-25)
22
+
23
+
24
+ ### Features
25
+
26
+ * bound PDF reads and rendering; deduplicate Rust ([420e096](https://github.com/seuros/imprimatur/commit/420e096591ef08190427c7b090840dcd761010b4))
27
+ * **doc:** set the body font size ([44f7617](https://github.com/seuros/imprimatur/commit/44f76170fd1ad29f143c1ef22c355fd1c1cbf8e1))
28
+
29
+
30
+ ### Bug Fixes
31
+
32
+ * enforce render limits across Unix platforms ([5c7f0ba](https://github.com/seuros/imprimatur/commit/5c7f0bab2076681782c6bfa2de6062ad53c0e7f9))
33
+
3
34
  ## [0.5.0](https://github.com/seuros/imprimatur/compare/v0.4.0...v0.5.0) (2026-10-18)
4
35
 
5
36
 
data/Cargo.lock CHANGED
@@ -28,6 +28,21 @@ dependencies = [
28
28
  "memchr",
29
29
  ]
30
30
 
31
+ [[package]]
32
+ name = "alloc-no-stdlib"
33
+ version = "2.0.4"
34
+ source = "registry+https://github.com/rust-lang/crates.io-index"
35
+ checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
36
+
37
+ [[package]]
38
+ name = "alloc-stdlib"
39
+ version = "0.2.4"
40
+ source = "registry+https://github.com/rust-lang/crates.io-index"
41
+ checksum = "0e76a019e91224d279006ff972f1e984179a6e9feb050adba6ce8274aef23195"
42
+ dependencies = [
43
+ "alloc-no-stdlib",
44
+ ]
45
+
31
46
  [[package]]
32
47
  name = "arrayvec"
33
48
  version = "0.7.8"
@@ -73,6 +88,27 @@ dependencies = [
73
88
  "hybrid-array",
74
89
  ]
75
90
 
91
+ [[package]]
92
+ name = "brotli"
93
+ version = "8.0.4"
94
+ source = "registry+https://github.com/rust-lang/crates.io-index"
95
+ checksum = "5cc91aac060a7a1e25823bdccbfb6af1875b88f17c6daac97894eed8207166b3"
96
+ dependencies = [
97
+ "alloc-no-stdlib",
98
+ "alloc-stdlib",
99
+ "brotli-decompressor",
100
+ ]
101
+
102
+ [[package]]
103
+ name = "brotli-decompressor"
104
+ version = "5.0.3"
105
+ source = "registry+https://github.com/rust-lang/crates.io-index"
106
+ checksum = "3a32acac15fe1967bc3986b2a6347dffc965602354ea6f450ad07e8bfd253583"
107
+ dependencies = [
108
+ "alloc-no-stdlib",
109
+ "alloc-stdlib",
110
+ ]
111
+
76
112
  [[package]]
77
113
  name = "bytemuck"
78
114
  version = "1.25.2"
@@ -93,6 +129,12 @@ dependencies = [
93
129
  "syn 3.0.9",
94
130
  ]
95
131
 
132
+ [[package]]
133
+ name = "byteorder-lite"
134
+ version = "0.1.0"
135
+ source = "registry+https://github.com/rust-lang/crates.io-index"
136
+ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495"
137
+
96
138
  [[package]]
97
139
  name = "cexpr"
98
140
  version = "0.6.0"
@@ -135,6 +177,15 @@ dependencies = [
135
177
  "libloading",
136
178
  ]
137
179
 
180
+ [[package]]
181
+ name = "color"
182
+ version = "0.3.3"
183
+ source = "registry+https://github.com/rust-lang/crates.io-index"
184
+ checksum = "2ec7c5eb7a16992b1904d76c517d170ab353b0e0b3d5a0c81a8a0cd1037893cf"
185
+ dependencies = [
186
+ "bytemuck",
187
+ ]
188
+
138
189
  [[package]]
139
190
  name = "const-oid"
140
191
  version = "0.10.2"
@@ -217,12 +268,42 @@ dependencies = [
217
268
  "windows-sys",
218
269
  ]
219
270
 
271
+ [[package]]
272
+ name = "euclid"
273
+ version = "0.22.14"
274
+ source = "registry+https://github.com/rust-lang/crates.io-index"
275
+ checksum = "f1a05365e3b1c6d1650318537c7460c6923f1abdd272ad6842baa2b509957a06"
276
+ dependencies = [
277
+ "num-traits",
278
+ ]
279
+
220
280
  [[package]]
221
281
  name = "fastrand"
222
282
  version = "2.5.0"
223
283
  source = "registry+https://github.com/rust-lang/crates.io-index"
224
284
  checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223"
225
285
 
286
+ [[package]]
287
+ name = "fdeflate"
288
+ version = "0.3.7"
289
+ source = "registry+https://github.com/rust-lang/crates.io-index"
290
+ checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c"
291
+ dependencies = [
292
+ "simd-adler32",
293
+ ]
294
+
295
+ [[package]]
296
+ name = "fearless_simd"
297
+ version = "0.7.0"
298
+ source = "registry+https://github.com/rust-lang/crates.io-index"
299
+ checksum = "f4beca3cb2444e3304ac30843cc091f44ed58932353cd492ce740067bfce6b12"
300
+
301
+ [[package]]
302
+ name = "fearless_simd"
303
+ version = "1.1.0"
304
+ source = "registry+https://github.com/rust-lang/crates.io-index"
305
+ checksum = "3296eb97d869113eaf148a6bdf01884e90b3828ad7ae2340b0f93362fc158611"
306
+
226
307
  [[package]]
227
308
  name = "flagset"
228
309
  version = "0.4.7"
@@ -235,6 +316,8 @@ version = "1.1.10"
235
316
  source = "registry+https://github.com/rust-lang/crates.io-index"
236
317
  checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb"
237
318
  dependencies = [
319
+ "crc32fast",
320
+ "miniz_oxide 0.9.1",
238
321
  "zlib-rs",
239
322
  ]
240
323
 
@@ -273,17 +356,138 @@ dependencies = [
273
356
  "r-efi",
274
357
  ]
275
358
 
359
+ [[package]]
360
+ name = "glifo"
361
+ version = "0.4.0"
362
+ source = "registry+https://github.com/rust-lang/crates.io-index"
363
+ checksum = "9f1218dedd5348c1b166ec3b8b3cbca49d2f527bd43b3fa072ea5123c523ed3f"
364
+ dependencies = [
365
+ "bytemuck",
366
+ "foldhash",
367
+ "hashbrown",
368
+ "log",
369
+ "peniko",
370
+ "png",
371
+ "skrifa 0.44.0",
372
+ "smallvec",
373
+ "vello_common",
374
+ ]
375
+
276
376
  [[package]]
277
377
  name = "glob"
278
378
  version = "0.3.4"
279
379
  source = "registry+https://github.com/rust-lang/crates.io-index"
280
380
  checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b"
281
381
 
382
+ [[package]]
383
+ name = "guillotiere"
384
+ version = "0.7.0"
385
+ source = "registry+https://github.com/rust-lang/crates.io-index"
386
+ checksum = "6b17e70c989c36bad147b27a58d148c0741c51448aa5653436547323e524d0ab"
387
+ dependencies = [
388
+ "euclid",
389
+ ]
390
+
282
391
  [[package]]
283
392
  name = "hashbrown"
284
393
  version = "0.17.1"
285
394
  source = "registry+https://github.com/rust-lang/crates.io-index"
286
395
  checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
396
+ dependencies = [
397
+ "foldhash",
398
+ ]
399
+
400
+ [[package]]
401
+ name = "hayro"
402
+ version = "0.8.0"
403
+ source = "registry+https://github.com/rust-lang/crates.io-index"
404
+ checksum = "4675ff5acd7ca41c0c34ccd2a3a154f5c86d8b5ec92bef0a114bfb194969e2af"
405
+ dependencies = [
406
+ "bytemuck",
407
+ "fearless_simd 1.1.0",
408
+ "hayro-interpret",
409
+ "image",
410
+ "kurbo",
411
+ "pic-scale",
412
+ "rustc-hash",
413
+ "vello_cpu",
414
+ ]
415
+
416
+ [[package]]
417
+ name = "hayro-ccitt"
418
+ version = "0.4.0"
419
+ source = "registry+https://github.com/rust-lang/crates.io-index"
420
+ checksum = "2866f0d976e76497480b853d5e258dab6e4b89ecfe991124e08f15dfa8fd03ad"
421
+
422
+ [[package]]
423
+ name = "hayro-cmap"
424
+ version = "0.1.0"
425
+ source = "registry+https://github.com/rust-lang/crates.io-index"
426
+ checksum = "24d285dc30731c8485de5fa732fbdf2b3affdf01e4da7c2135022ca6fa664bf6"
427
+ dependencies = [
428
+ "brotli",
429
+ "hayro-postscript",
430
+ ]
431
+
432
+ [[package]]
433
+ name = "hayro-interpret"
434
+ version = "0.8.0"
435
+ source = "registry+https://github.com/rust-lang/crates.io-index"
436
+ checksum = "ac9df074ff163a63864cec9b0bf640ccbff8abf4e44481df7369ce0ac172ffbe"
437
+ dependencies = [
438
+ "bitflags",
439
+ "hayro-cmap",
440
+ "hayro-syntax",
441
+ "kurbo",
442
+ "moxcms",
443
+ "phf",
444
+ "rustc-hash",
445
+ "siphasher",
446
+ "skrifa 0.46.2",
447
+ "smallvec",
448
+ "yoke",
449
+ ]
450
+
451
+ [[package]]
452
+ name = "hayro-jbig2"
453
+ version = "0.3.1"
454
+ source = "registry+https://github.com/rust-lang/crates.io-index"
455
+ checksum = "000e025850f4592ddcaee85640db70704151f2bafd43b6f431aa5b6a2c6a35a9"
456
+ dependencies = [
457
+ "fearless_simd 1.1.0",
458
+ "hayro-ccitt",
459
+ ]
460
+
461
+ [[package]]
462
+ name = "hayro-jpeg2000"
463
+ version = "0.4.1"
464
+ source = "registry+https://github.com/rust-lang/crates.io-index"
465
+ checksum = "122c5f834c37a2260b9c851bb8be685cf539b2a8b94b704a931ef7d2525d5835"
466
+ dependencies = [
467
+ "fearless_simd 1.1.0",
468
+ ]
469
+
470
+ [[package]]
471
+ name = "hayro-postscript"
472
+ version = "0.1.0"
473
+ source = "registry+https://github.com/rust-lang/crates.io-index"
474
+ checksum = "885c5ef0654933139a9b9546fc2c69e18d37f38aa2520f079092b1be18f1fcaa"
475
+
476
+ [[package]]
477
+ name = "hayro-syntax"
478
+ version = "0.8.0"
479
+ source = "registry+https://github.com/rust-lang/crates.io-index"
480
+ checksum = "6cdc818d8d265dcb42081d488f7599df4f73fb79e9d347ecedcd3c23809d2026"
481
+ dependencies = [
482
+ "flate2",
483
+ "hayro-ccitt",
484
+ "hayro-jbig2",
485
+ "hayro-jpeg2000",
486
+ "memchr",
487
+ "rustc-hash",
488
+ "smallvec",
489
+ "zune-jpeg",
490
+ ]
287
491
 
288
492
  [[package]]
289
493
  name = "hybrid-array"
@@ -294,18 +498,35 @@ dependencies = [
294
498
  "typenum",
295
499
  ]
296
500
 
501
+ [[package]]
502
+ name = "image"
503
+ version = "0.25.10"
504
+ source = "registry+https://github.com/rust-lang/crates.io-index"
505
+ checksum = "85ab80394333c02fe689eaf900ab500fbd0c2213da414687ebf995a65d5a6104"
506
+ dependencies = [
507
+ "bytemuck",
508
+ "byteorder-lite",
509
+ "moxcms",
510
+ "num-traits",
511
+ "png",
512
+ ]
513
+
297
514
  [[package]]
298
515
  name = "imprimatur"
299
- version = "0.5.0"
516
+ version = "0.6.1"
300
517
  dependencies = [
301
518
  "aes",
302
519
  "crc32fast",
303
520
  "datamatrix",
304
521
  "font-test-data",
522
+ "hayro",
523
+ "libproc",
305
524
  "md-5",
306
- "miniz_oxide",
525
+ "miniz_oxide 0.9.1",
526
+ "nix",
307
527
  "qrcode",
308
- "read-fonts",
528
+ "read-fonts 0.45.1",
529
+ "serde",
309
530
  "serde_json",
310
531
  "sha2",
311
532
  "tempfile",
@@ -315,7 +536,7 @@ dependencies = [
315
536
 
316
537
  [[package]]
317
538
  name = "imprimatur-cli"
318
- version = "0.5.0"
539
+ version = "0.6.1"
319
540
  dependencies = [
320
541
  "imprimatur",
321
542
  "regex",
@@ -327,7 +548,7 @@ dependencies = [
327
548
 
328
549
  [[package]]
329
550
  name = "imprimatur_native"
330
- version = "0.5.0"
551
+ version = "0.6.1"
331
552
  dependencies = [
332
553
  "imprimatur",
333
554
  "magnus",
@@ -380,6 +601,18 @@ version = "1.0.18"
380
601
  source = "registry+https://github.com/rust-lang/crates.io-index"
381
602
  checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
382
603
 
604
+ [[package]]
605
+ name = "kurbo"
606
+ version = "0.13.1"
607
+ source = "registry+https://github.com/rust-lang/crates.io-index"
608
+ checksum = "4b60dfc32f652b926df6192e55525b16d186c69d47876c3ead4da5cc9f8450e2"
609
+ dependencies = [
610
+ "arrayvec",
611
+ "euclid",
612
+ "polycool",
613
+ "smallvec",
614
+ ]
615
+
383
616
  [[package]]
384
617
  name = "lazy_static"
385
618
  version = "1.5.1"
@@ -402,6 +635,23 @@ dependencies = [
402
635
  "windows-link",
403
636
  ]
404
637
 
638
+ [[package]]
639
+ name = "libproc"
640
+ version = "0.14.11"
641
+ source = "registry+https://github.com/rust-lang/crates.io-index"
642
+ checksum = "a54ad7278b8bc5301d5ffd2a94251c004feb971feba96c971ea4063645990757"
643
+ dependencies = [
644
+ "bindgen",
645
+ "errno",
646
+ "libc",
647
+ ]
648
+
649
+ [[package]]
650
+ name = "linebender_resource_handle"
651
+ version = "0.1.1"
652
+ source = "registry+https://github.com/rust-lang/crates.io-index"
653
+ checksum = "d4a5ff6bcca6c4867b1c4fd4ef63e4db7436ef363e0ad7531d1558856bae64f4"
654
+
405
655
  [[package]]
406
656
  name = "linux-raw-sys"
407
657
  version = "0.12.1"
@@ -459,6 +709,16 @@ version = "0.2.1"
459
709
  source = "registry+https://github.com/rust-lang/crates.io-index"
460
710
  checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
461
711
 
712
+ [[package]]
713
+ name = "miniz_oxide"
714
+ version = "0.8.9"
715
+ source = "registry+https://github.com/rust-lang/crates.io-index"
716
+ checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
717
+ dependencies = [
718
+ "adler2",
719
+ "simd-adler32",
720
+ ]
721
+
462
722
  [[package]]
463
723
  name = "miniz_oxide"
464
724
  version = "0.9.1"
@@ -466,6 +726,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
466
726
  checksum = "b63fbc4a50860e98e7b2aa7804ded1db5cbc3aff9193adaff57a6931bf7c4b4c"
467
727
  dependencies = [
468
728
  "adler2",
729
+ "simd-adler32",
730
+ ]
731
+
732
+ [[package]]
733
+ name = "moxcms"
734
+ version = "0.8.1"
735
+ source = "registry+https://github.com/rust-lang/crates.io-index"
736
+ checksum = "bb85c154ba489f01b25c0d36ae69a87e4a1c73a72631fc6c0eb6dde34a73e44b"
737
+ dependencies = [
738
+ "num-traits",
739
+ "pxfm",
469
740
  ]
470
741
 
471
742
  [[package]]
@@ -505,6 +776,93 @@ version = "1.21.4"
505
776
  source = "registry+https://github.com/rust-lang/crates.io-index"
506
777
  checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
507
778
 
779
+ [[package]]
780
+ name = "peniko"
781
+ version = "0.6.1"
782
+ source = "registry+https://github.com/rust-lang/crates.io-index"
783
+ checksum = "839c8299360d2e998bdb106dc0a6cd71dcc5f4df51df1b620361bf50e283cca6"
784
+ dependencies = [
785
+ "bytemuck",
786
+ "color",
787
+ "kurbo",
788
+ "linebender_resource_handle",
789
+ "smallvec",
790
+ ]
791
+
792
+ [[package]]
793
+ name = "phf"
794
+ version = "0.13.1"
795
+ source = "registry+https://github.com/rust-lang/crates.io-index"
796
+ checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf"
797
+ dependencies = [
798
+ "phf_macros",
799
+ "phf_shared",
800
+ ]
801
+
802
+ [[package]]
803
+ name = "phf_generator"
804
+ version = "0.13.1"
805
+ source = "registry+https://github.com/rust-lang/crates.io-index"
806
+ checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737"
807
+ dependencies = [
808
+ "fastrand",
809
+ "phf_shared",
810
+ ]
811
+
812
+ [[package]]
813
+ name = "phf_macros"
814
+ version = "0.13.1"
815
+ source = "registry+https://github.com/rust-lang/crates.io-index"
816
+ checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef"
817
+ dependencies = [
818
+ "phf_generator",
819
+ "phf_shared",
820
+ "proc-macro2",
821
+ "quote",
822
+ "syn 2.0.119",
823
+ ]
824
+
825
+ [[package]]
826
+ name = "phf_shared"
827
+ version = "0.13.1"
828
+ source = "registry+https://github.com/rust-lang/crates.io-index"
829
+ checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266"
830
+ dependencies = [
831
+ "siphasher",
832
+ ]
833
+
834
+ [[package]]
835
+ name = "pic-scale"
836
+ version = "0.7.12"
837
+ source = "registry+https://github.com/rust-lang/crates.io-index"
838
+ checksum = "6edb0ff645d35accaec252de081d55984a0d6c952cb1e5dc2b9afa7c78f07288"
839
+ dependencies = [
840
+ "num-traits",
841
+ "pxfm",
842
+ ]
843
+
844
+ [[package]]
845
+ name = "png"
846
+ version = "0.18.1"
847
+ source = "registry+https://github.com/rust-lang/crates.io-index"
848
+ checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61"
849
+ dependencies = [
850
+ "bitflags",
851
+ "crc32fast",
852
+ "fdeflate",
853
+ "flate2",
854
+ "miniz_oxide 0.8.9",
855
+ ]
856
+
857
+ [[package]]
858
+ name = "polycool"
859
+ version = "0.4.0"
860
+ source = "registry+https://github.com/rust-lang/crates.io-index"
861
+ checksum = "50596ddc09eb5ad5f75cacd40209568e66df71baf86e1499a0e99c4cff12a5a6"
862
+ dependencies = [
863
+ "arrayvec",
864
+ ]
865
+
508
866
  [[package]]
509
867
  name = "proc-macro2"
510
868
  version = "1.0.107"
@@ -525,6 +883,12 @@ dependencies = [
525
883
  "unicase",
526
884
  ]
527
885
 
886
+ [[package]]
887
+ name = "pxfm"
888
+ version = "0.1.30"
889
+ source = "registry+https://github.com/rust-lang/crates.io-index"
890
+ checksum = "d55d956fa96f5ec02be2e13af0e20391a5aa83d6a074e3ad368959d0fab299ea"
891
+
528
892
  [[package]]
529
893
  name = "qrcode"
530
894
  version = "0.14.1"
@@ -576,6 +940,28 @@ version = "0.2.3"
576
940
  source = "registry+https://github.com/rust-lang/crates.io-index"
577
941
  checksum = "cca7ad6a7e21e72151d56fe2495a259b5670e204c3adac41ee7ef676ea08117a"
578
942
 
943
+ [[package]]
944
+ name = "read-fonts"
945
+ version = "0.41.0"
946
+ source = "registry+https://github.com/rust-lang/crates.io-index"
947
+ checksum = "046a7d674daf459825b32f5062056d6882db0d2f5a479fbd76ccfc870ac18709"
948
+ dependencies = [
949
+ "bytemuck",
950
+ "font-types",
951
+ "once_cell",
952
+ ]
953
+
954
+ [[package]]
955
+ name = "read-fonts"
956
+ version = "0.43.3"
957
+ source = "registry+https://github.com/rust-lang/crates.io-index"
958
+ checksum = "005c8acf251756c478b0bf402885bfd88a1476020c4c7e6060edc1aa68da38ea"
959
+ dependencies = [
960
+ "bytemuck",
961
+ "font-types",
962
+ "once_cell",
963
+ ]
964
+
579
965
  [[package]]
580
966
  name = "read-fonts"
581
967
  version = "0.45.1"
@@ -721,6 +1107,44 @@ version = "1.3.0"
721
1107
  source = "registry+https://github.com/rust-lang/crates.io-index"
722
1108
  checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
723
1109
 
1110
+ [[package]]
1111
+ name = "simd-adler32"
1112
+ version = "0.3.10"
1113
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1114
+ checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea"
1115
+
1116
+ [[package]]
1117
+ name = "siphasher"
1118
+ version = "1.0.4"
1119
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1120
+ checksum = "33f4fe9184a62d842c9ef383018f3306d8ba224fd9d836f56d7288308847c256"
1121
+
1122
+ [[package]]
1123
+ name = "skrifa"
1124
+ version = "0.44.0"
1125
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1126
+ checksum = "819ab7d62b1d3e72d9d9dea5650bac30424f9111364bb94928dbf5ecad1baa68"
1127
+ dependencies = [
1128
+ "bytemuck",
1129
+ "read-fonts 0.41.0",
1130
+ ]
1131
+
1132
+ [[package]]
1133
+ name = "skrifa"
1134
+ version = "0.46.2"
1135
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1136
+ checksum = "d4febebda507fb889c545a37a135517769d1391941013561292897961d1887d6"
1137
+ dependencies = [
1138
+ "bytemuck",
1139
+ "read-fonts 0.43.3",
1140
+ ]
1141
+
1142
+ [[package]]
1143
+ name = "smallvec"
1144
+ version = "1.16.4"
1145
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1146
+ checksum = "d0d5d4b1981b8bbbb7aed204cae5726d683d5d6ac7e74ec54122ea28f315e7c8"
1147
+
724
1148
  [[package]]
725
1149
  name = "stable_deref_trait"
726
1150
  version = "1.2.1"
@@ -891,6 +1315,35 @@ dependencies = [
891
1315
  "usage-argv",
892
1316
  ]
893
1317
 
1318
+ [[package]]
1319
+ name = "vello_common"
1320
+ version = "0.3.0"
1321
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1322
+ checksum = "73c2fbe53548bcd25c8ff42f75a93770a8611a16b37bee56d7ef7b44e36027f1"
1323
+ dependencies = [
1324
+ "bytemuck",
1325
+ "fearless_simd 0.7.0",
1326
+ "guillotiere",
1327
+ "log",
1328
+ "peniko",
1329
+ "png",
1330
+ "smallvec",
1331
+ "thiserror",
1332
+ ]
1333
+
1334
+ [[package]]
1335
+ name = "vello_cpu"
1336
+ version = "0.3.0"
1337
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1338
+ checksum = "ed1fec424fbba6acf6cbc78bb526447eb77590d95f40419d598870fe37535212"
1339
+ dependencies = [
1340
+ "bytemuck",
1341
+ "glifo",
1342
+ "hashbrown",
1343
+ "png",
1344
+ "vello_common",
1345
+ ]
1346
+
894
1347
  [[package]]
895
1348
  name = "windows-link"
896
1349
  version = "0.2.1"
@@ -984,3 +1437,18 @@ name = "zmij"
984
1437
  version = "1.0.23"
985
1438
  source = "registry+https://github.com/rust-lang/crates.io-index"
986
1439
  checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
1440
+
1441
+ [[package]]
1442
+ name = "zune-core"
1443
+ version = "0.5.3"
1444
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1445
+ checksum = "d56377fd46368984a170bc5aac5567e52ca5da874caa60bea39fcbca78fb658b"
1446
+
1447
+ [[package]]
1448
+ name = "zune-jpeg"
1449
+ version = "0.5.15"
1450
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1451
+ checksum = "27bc9d5b815bc103f142aa054f561d9187d191692ec7c2d1e2b4737f8dbd7296"
1452
+ dependencies = [
1453
+ "zune-core",
1454
+ ]