imprimatur 0.4.0 → 0.6.0

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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +28 -0
  3. data/Cargo.lock +472 -5
  4. data/Cargo.toml +16 -1
  5. data/README.md +59 -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 +29 -13
  9. data/ext/imprimatur_native/core/README.md +13 -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 +190 -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 +155 -0
  35. data/ext/imprimatur_native/core/src/read/pdf/isolation/system.rs +71 -0
  36. data/ext/imprimatur_native/core/src/read/pdf/isolation/worker.rs +43 -0
  37. data/ext/imprimatur_native/core/src/read/pdf/isolation.rs +166 -0
  38. data/ext/imprimatur_native/core/src/read/pdf/render.rs +206 -0
  39. data/ext/imprimatur_native/core/src/read/pdf.rs +16 -8
  40. data/ext/imprimatur_native/core/src/read/xls/strings.rs +2 -1
  41. data/ext/imprimatur_native/core/src/read/xls.rs +1 -8
  42. data/ext/imprimatur_native/core/src/read.rs +6 -5
  43. data/ext/imprimatur_native/core/src/test_support/font.rs +37 -0
  44. data/ext/imprimatur_native/core/src/xlsx/validation.rs +28 -18
  45. data/ext/imprimatur_native/core/src/zip/reader.rs +1 -8
  46. data/ext/imprimatur_native/extconf.rb +18 -0
  47. data/ext/imprimatur_native/ffi/Cargo.toml +2 -2
  48. data/ext/imprimatur_native/ffi/src/document.rs +6 -0
  49. data/ext/imprimatur_native/ffi/src/lib.rs +7 -0
  50. data/ext/imprimatur_native/ffi/src/pdf.rs +73 -0
  51. data/ext/imprimatur_native/ffi/src/read.rs +18 -12
  52. data/lib/imprimatur/document.rb +4 -2
  53. data/lib/imprimatur/native.rb +7 -0
  54. data/lib/imprimatur/pdf_reader.rb +27 -0
  55. data/lib/imprimatur/reader.rb +48 -11
  56. data/lib/imprimatur/spreadsheet.rb +1 -1
  57. data/lib/imprimatur/version.rb +1 -1
  58. data/lib/imprimatur.rb +28 -3
  59. metadata +19 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4b0c00d27618298889f1419aec02a69a9de179fb9f3caaa5f33e57db05a68a9b
4
- data.tar.gz: f8c77e28a3f3ada14611260a7f1ffffc830ba3f6e0ec6d0675b4c8177b391f72
3
+ metadata.gz: d4b065ca85ce09dca629c5a4ca92fbd0c361a8855b7226fce30e6a6e93f587cb
4
+ data.tar.gz: 63bbf24b4c97feb96676db2c59a2d137220799a993ea51d707977d37d3e90cf2
5
5
  SHA512:
6
- metadata.gz: 4780e0a1754d6b1df1562910bf63f1cf70b2d7c5750c1d04e6518898408eded1d13ced430564a966f3980fa1b5db0af131aba34db66de50ca0ec19cd4db1c827
7
- data.tar.gz: a4a2dde579ad49d425a2e22e39907cf35041061d245b41c8cde6f1abd3c2abdcda1c0e3c28bafcbdfe6a2bf55eab5a5adc7e30750af5fcbb1739216d5c2708d6
6
+ metadata.gz: 3f58a00ab92228d0cb3c1403c1111909ebda037e776e78b05a0d3830b92f46501a34a3d069303ad6092dfe0f30b5544b2638ce4b708631f60706ef04c21d09ae
7
+ data.tar.gz: 32f985236d5804b10812fe87d5f2e74488085d35dd1a66d648474c47f07537e1ff62a7c04f8b06c51847ac0d3d557d35804b308f7972e2b2df24a020e562630c
data/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # Changelog
2
2
 
3
+ ## Unreleased
4
+
5
+ - Add native PDF metadata, bounded page reads with explicit failure states,
6
+ and optional pure-Rust full-page PNG rendering.
7
+ - Keep scanned and blank page structure available without a text layer.
8
+ - Render PDFs through a bundled Rust worker with time, memory and output limits;
9
+ cancellation kills and reaps it. macOS uses an RSS watchdog, not a hard cap.
10
+
11
+ ## [0.6.0](https://github.com/seuros/imprimatur/compare/v0.5.0...v0.6.0) (2026-10-25)
12
+
13
+
14
+ ### Features
15
+
16
+ * bound PDF reads and rendering; deduplicate Rust ([420e096](https://github.com/seuros/imprimatur/commit/420e096591ef08190427c7b090840dcd761010b4))
17
+ * **doc:** set the body font size ([44f7617](https://github.com/seuros/imprimatur/commit/44f76170fd1ad29f143c1ef22c355fd1c1cbf8e1))
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * enforce render limits across Unix platforms ([5c7f0ba](https://github.com/seuros/imprimatur/commit/5c7f0bab2076681782c6bfa2de6062ad53c0e7f9))
23
+
24
+ ## [0.5.0](https://github.com/seuros/imprimatur/compare/v0.4.0...v0.5.0) (2026-10-18)
25
+
26
+
27
+ ### Features
28
+
29
+ * a binary String is always a document's bytes, a path must name a regular file, and reads stop at max_bytes ([3484a64](https://github.com/seuros/imprimatur/commit/3484a64b791beb2e9f90cd485441fae255e223f0))
30
+
3
31
  ## [0.4.0](https://github.com/seuros/imprimatur/compare/v0.3.0...v0.4.0) (2026-10-18)
4
32
 
5
33
 
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,34 @@ 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.4.0"
516
+ version = "0.6.0"
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",
309
529
  "serde_json",
310
530
  "sha2",
311
531
  "tempfile",
@@ -315,7 +535,7 @@ dependencies = [
315
535
 
316
536
  [[package]]
317
537
  name = "imprimatur-cli"
318
- version = "0.4.0"
538
+ version = "0.6.0"
319
539
  dependencies = [
320
540
  "imprimatur",
321
541
  "regex",
@@ -327,7 +547,7 @@ dependencies = [
327
547
 
328
548
  [[package]]
329
549
  name = "imprimatur_native"
330
- version = "0.4.0"
550
+ version = "0.6.0"
331
551
  dependencies = [
332
552
  "imprimatur",
333
553
  "magnus",
@@ -380,6 +600,18 @@ version = "1.0.18"
380
600
  source = "registry+https://github.com/rust-lang/crates.io-index"
381
601
  checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
382
602
 
603
+ [[package]]
604
+ name = "kurbo"
605
+ version = "0.13.1"
606
+ source = "registry+https://github.com/rust-lang/crates.io-index"
607
+ checksum = "4b60dfc32f652b926df6192e55525b16d186c69d47876c3ead4da5cc9f8450e2"
608
+ dependencies = [
609
+ "arrayvec",
610
+ "euclid",
611
+ "polycool",
612
+ "smallvec",
613
+ ]
614
+
383
615
  [[package]]
384
616
  name = "lazy_static"
385
617
  version = "1.5.1"
@@ -402,6 +634,23 @@ dependencies = [
402
634
  "windows-link",
403
635
  ]
404
636
 
637
+ [[package]]
638
+ name = "libproc"
639
+ version = "0.14.11"
640
+ source = "registry+https://github.com/rust-lang/crates.io-index"
641
+ checksum = "a54ad7278b8bc5301d5ffd2a94251c004feb971feba96c971ea4063645990757"
642
+ dependencies = [
643
+ "bindgen",
644
+ "errno",
645
+ "libc",
646
+ ]
647
+
648
+ [[package]]
649
+ name = "linebender_resource_handle"
650
+ version = "0.1.1"
651
+ source = "registry+https://github.com/rust-lang/crates.io-index"
652
+ checksum = "d4a5ff6bcca6c4867b1c4fd4ef63e4db7436ef363e0ad7531d1558856bae64f4"
653
+
405
654
  [[package]]
406
655
  name = "linux-raw-sys"
407
656
  version = "0.12.1"
@@ -459,6 +708,16 @@ version = "0.2.1"
459
708
  source = "registry+https://github.com/rust-lang/crates.io-index"
460
709
  checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
461
710
 
711
+ [[package]]
712
+ name = "miniz_oxide"
713
+ version = "0.8.9"
714
+ source = "registry+https://github.com/rust-lang/crates.io-index"
715
+ checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
716
+ dependencies = [
717
+ "adler2",
718
+ "simd-adler32",
719
+ ]
720
+
462
721
  [[package]]
463
722
  name = "miniz_oxide"
464
723
  version = "0.9.1"
@@ -466,6 +725,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
466
725
  checksum = "b63fbc4a50860e98e7b2aa7804ded1db5cbc3aff9193adaff57a6931bf7c4b4c"
467
726
  dependencies = [
468
727
  "adler2",
728
+ "simd-adler32",
729
+ ]
730
+
731
+ [[package]]
732
+ name = "moxcms"
733
+ version = "0.8.1"
734
+ source = "registry+https://github.com/rust-lang/crates.io-index"
735
+ checksum = "bb85c154ba489f01b25c0d36ae69a87e4a1c73a72631fc6c0eb6dde34a73e44b"
736
+ dependencies = [
737
+ "num-traits",
738
+ "pxfm",
469
739
  ]
470
740
 
471
741
  [[package]]
@@ -505,6 +775,93 @@ version = "1.21.4"
505
775
  source = "registry+https://github.com/rust-lang/crates.io-index"
506
776
  checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
507
777
 
778
+ [[package]]
779
+ name = "peniko"
780
+ version = "0.6.1"
781
+ source = "registry+https://github.com/rust-lang/crates.io-index"
782
+ checksum = "839c8299360d2e998bdb106dc0a6cd71dcc5f4df51df1b620361bf50e283cca6"
783
+ dependencies = [
784
+ "bytemuck",
785
+ "color",
786
+ "kurbo",
787
+ "linebender_resource_handle",
788
+ "smallvec",
789
+ ]
790
+
791
+ [[package]]
792
+ name = "phf"
793
+ version = "0.13.1"
794
+ source = "registry+https://github.com/rust-lang/crates.io-index"
795
+ checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf"
796
+ dependencies = [
797
+ "phf_macros",
798
+ "phf_shared",
799
+ ]
800
+
801
+ [[package]]
802
+ name = "phf_generator"
803
+ version = "0.13.1"
804
+ source = "registry+https://github.com/rust-lang/crates.io-index"
805
+ checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737"
806
+ dependencies = [
807
+ "fastrand",
808
+ "phf_shared",
809
+ ]
810
+
811
+ [[package]]
812
+ name = "phf_macros"
813
+ version = "0.13.1"
814
+ source = "registry+https://github.com/rust-lang/crates.io-index"
815
+ checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef"
816
+ dependencies = [
817
+ "phf_generator",
818
+ "phf_shared",
819
+ "proc-macro2",
820
+ "quote",
821
+ "syn 2.0.119",
822
+ ]
823
+
824
+ [[package]]
825
+ name = "phf_shared"
826
+ version = "0.13.1"
827
+ source = "registry+https://github.com/rust-lang/crates.io-index"
828
+ checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266"
829
+ dependencies = [
830
+ "siphasher",
831
+ ]
832
+
833
+ [[package]]
834
+ name = "pic-scale"
835
+ version = "0.7.12"
836
+ source = "registry+https://github.com/rust-lang/crates.io-index"
837
+ checksum = "6edb0ff645d35accaec252de081d55984a0d6c952cb1e5dc2b9afa7c78f07288"
838
+ dependencies = [
839
+ "num-traits",
840
+ "pxfm",
841
+ ]
842
+
843
+ [[package]]
844
+ name = "png"
845
+ version = "0.18.1"
846
+ source = "registry+https://github.com/rust-lang/crates.io-index"
847
+ checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61"
848
+ dependencies = [
849
+ "bitflags",
850
+ "crc32fast",
851
+ "fdeflate",
852
+ "flate2",
853
+ "miniz_oxide 0.8.9",
854
+ ]
855
+
856
+ [[package]]
857
+ name = "polycool"
858
+ version = "0.4.0"
859
+ source = "registry+https://github.com/rust-lang/crates.io-index"
860
+ checksum = "50596ddc09eb5ad5f75cacd40209568e66df71baf86e1499a0e99c4cff12a5a6"
861
+ dependencies = [
862
+ "arrayvec",
863
+ ]
864
+
508
865
  [[package]]
509
866
  name = "proc-macro2"
510
867
  version = "1.0.107"
@@ -525,6 +882,12 @@ dependencies = [
525
882
  "unicase",
526
883
  ]
527
884
 
885
+ [[package]]
886
+ name = "pxfm"
887
+ version = "0.1.30"
888
+ source = "registry+https://github.com/rust-lang/crates.io-index"
889
+ checksum = "d55d956fa96f5ec02be2e13af0e20391a5aa83d6a074e3ad368959d0fab299ea"
890
+
528
891
  [[package]]
529
892
  name = "qrcode"
530
893
  version = "0.14.1"
@@ -576,6 +939,28 @@ version = "0.2.3"
576
939
  source = "registry+https://github.com/rust-lang/crates.io-index"
577
940
  checksum = "cca7ad6a7e21e72151d56fe2495a259b5670e204c3adac41ee7ef676ea08117a"
578
941
 
942
+ [[package]]
943
+ name = "read-fonts"
944
+ version = "0.41.0"
945
+ source = "registry+https://github.com/rust-lang/crates.io-index"
946
+ checksum = "046a7d674daf459825b32f5062056d6882db0d2f5a479fbd76ccfc870ac18709"
947
+ dependencies = [
948
+ "bytemuck",
949
+ "font-types",
950
+ "once_cell",
951
+ ]
952
+
953
+ [[package]]
954
+ name = "read-fonts"
955
+ version = "0.43.3"
956
+ source = "registry+https://github.com/rust-lang/crates.io-index"
957
+ checksum = "005c8acf251756c478b0bf402885bfd88a1476020c4c7e6060edc1aa68da38ea"
958
+ dependencies = [
959
+ "bytemuck",
960
+ "font-types",
961
+ "once_cell",
962
+ ]
963
+
579
964
  [[package]]
580
965
  name = "read-fonts"
581
966
  version = "0.45.1"
@@ -721,6 +1106,44 @@ version = "1.3.0"
721
1106
  source = "registry+https://github.com/rust-lang/crates.io-index"
722
1107
  checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
723
1108
 
1109
+ [[package]]
1110
+ name = "simd-adler32"
1111
+ version = "0.3.10"
1112
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1113
+ checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea"
1114
+
1115
+ [[package]]
1116
+ name = "siphasher"
1117
+ version = "1.0.4"
1118
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1119
+ checksum = "33f4fe9184a62d842c9ef383018f3306d8ba224fd9d836f56d7288308847c256"
1120
+
1121
+ [[package]]
1122
+ name = "skrifa"
1123
+ version = "0.44.0"
1124
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1125
+ checksum = "819ab7d62b1d3e72d9d9dea5650bac30424f9111364bb94928dbf5ecad1baa68"
1126
+ dependencies = [
1127
+ "bytemuck",
1128
+ "read-fonts 0.41.0",
1129
+ ]
1130
+
1131
+ [[package]]
1132
+ name = "skrifa"
1133
+ version = "0.46.2"
1134
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1135
+ checksum = "d4febebda507fb889c545a37a135517769d1391941013561292897961d1887d6"
1136
+ dependencies = [
1137
+ "bytemuck",
1138
+ "read-fonts 0.43.3",
1139
+ ]
1140
+
1141
+ [[package]]
1142
+ name = "smallvec"
1143
+ version = "1.16.4"
1144
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1145
+ checksum = "d0d5d4b1981b8bbbb7aed204cae5726d683d5d6ac7e74ec54122ea28f315e7c8"
1146
+
724
1147
  [[package]]
725
1148
  name = "stable_deref_trait"
726
1149
  version = "1.2.1"
@@ -891,6 +1314,35 @@ dependencies = [
891
1314
  "usage-argv",
892
1315
  ]
893
1316
 
1317
+ [[package]]
1318
+ name = "vello_common"
1319
+ version = "0.3.0"
1320
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1321
+ checksum = "73c2fbe53548bcd25c8ff42f75a93770a8611a16b37bee56d7ef7b44e36027f1"
1322
+ dependencies = [
1323
+ "bytemuck",
1324
+ "fearless_simd 0.7.0",
1325
+ "guillotiere",
1326
+ "log",
1327
+ "peniko",
1328
+ "png",
1329
+ "smallvec",
1330
+ "thiserror",
1331
+ ]
1332
+
1333
+ [[package]]
1334
+ name = "vello_cpu"
1335
+ version = "0.3.0"
1336
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1337
+ checksum = "ed1fec424fbba6acf6cbc78bb526447eb77590d95f40419d598870fe37535212"
1338
+ dependencies = [
1339
+ "bytemuck",
1340
+ "glifo",
1341
+ "hashbrown",
1342
+ "png",
1343
+ "vello_common",
1344
+ ]
1345
+
894
1346
  [[package]]
895
1347
  name = "windows-link"
896
1348
  version = "0.2.1"
@@ -984,3 +1436,18 @@ name = "zmij"
984
1436
  version = "1.0.23"
985
1437
  source = "registry+https://github.com/rust-lang/crates.io-index"
986
1438
  checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
1439
+
1440
+ [[package]]
1441
+ name = "zune-core"
1442
+ version = "0.5.3"
1443
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1444
+ checksum = "d56377fd46368984a170bc5aac5567e52ca5da874caa60bea39fcbca78fb658b"
1445
+
1446
+ [[package]]
1447
+ name = "zune-jpeg"
1448
+ version = "0.5.15"
1449
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1450
+ checksum = "27bc9d5b815bc103f142aa054f561d9187d191692ec7c2d1e2b4737f8dbd7296"
1451
+ dependencies = [
1452
+ "zune-core",
1453
+ ]