dynimg 0.1.13__tar.gz → 0.1.14__tar.gz

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 (55) hide show
  1. {dynimg-0.1.13 → dynimg-0.1.14}/.claude/settings.local.json +3 -1
  2. {dynimg-0.1.13 → dynimg-0.1.14}/Cargo.lock +57 -85
  3. {dynimg-0.1.13 → dynimg-0.1.14}/Cargo.toml +7 -7
  4. {dynimg-0.1.13 → dynimg-0.1.14}/Makefile +1 -0
  5. {dynimg-0.1.13 → dynimg-0.1.14}/PKG-INFO +1 -1
  6. {dynimg-0.1.13 → dynimg-0.1.14}/pyproject.toml +1 -1
  7. dynimg-0.1.14/scripts/snapshot-tests.sh +130 -0
  8. dynimg-0.1.14/tests/snapshots/inline-custom-size.png +0 -0
  9. dynimg-0.1.14/tests/snapshots/inline-only-jpg.jpg +0 -0
  10. dynimg-0.1.14/tests/snapshots/inline-only-webp.webp +0 -0
  11. dynimg-0.1.14/tests/snapshots/inline-only.png +0 -0
  12. dynimg-0.1.14/tests/snapshots/og-image.png +0 -0
  13. dynimg-0.1.14/tests/snapshots/quote.png +0 -0
  14. dynimg-0.1.14/tests/snapshots/social-card.png +0 -0
  15. {dynimg-0.1.13 → dynimg-0.1.14}/.github/workflows/build-wheels.yml +0 -0
  16. {dynimg-0.1.13 → dynimg-0.1.14}/.github/workflows/ci.yml +0 -0
  17. {dynimg-0.1.13 → dynimg-0.1.14}/.github/workflows/release.yml +0 -0
  18. {dynimg-0.1.13 → dynimg-0.1.14}/.gitignore +0 -0
  19. {dynimg-0.1.13 → dynimg-0.1.14}/.pearls/CLAUDE.md +0 -0
  20. {dynimg-0.1.13 → dynimg-0.1.14}/.pearls/issues.jsonl +0 -0
  21. {dynimg-0.1.13 → dynimg-0.1.14}/CLAUDE.md +0 -0
  22. {dynimg-0.1.13 → dynimg-0.1.14}/LICENSE +0 -0
  23. {dynimg-0.1.13 → dynimg-0.1.14}/README.md +0 -0
  24. {dynimg-0.1.13 → dynimg-0.1.14}/codebook.toml +0 -0
  25. {dynimg-0.1.13 → dynimg-0.1.14}/examples/assets/PlaywriteINGuides-Regular.ttf +0 -0
  26. {dynimg-0.1.13 → dynimg-0.1.14}/examples/assets/RobotoMono-Bold.ttf +0 -0
  27. {dynimg-0.1.13 → dynimg-0.1.14}/examples/assets/RobotoMono-Bold.woff2 +0 -0
  28. {dynimg-0.1.13 → dynimg-0.1.14}/examples/assets/logo.svg +0 -0
  29. {dynimg-0.1.13 → dynimg-0.1.14}/examples/assets/servo.css +0 -0
  30. {dynimg-0.1.13 → dynimg-0.1.14}/examples/assets/style.css +0 -0
  31. {dynimg-0.1.13 → dynimg-0.1.14}/examples/google-fonts.html +0 -0
  32. {dynimg-0.1.13 → dynimg-0.1.14}/examples/inline-only.html +0 -0
  33. {dynimg-0.1.13 → dynimg-0.1.14}/examples/local-assets.html +0 -0
  34. {dynimg-0.1.13 → dynimg-0.1.14}/examples/local-font-woff2.html +0 -0
  35. {dynimg-0.1.13 → dynimg-0.1.14}/examples/local-font.html +0 -0
  36. {dynimg-0.1.13 → dynimg-0.1.14}/examples/mixed-assets.html +0 -0
  37. {dynimg-0.1.13 → dynimg-0.1.14}/examples/og-image.html +0 -0
  38. {dynimg-0.1.13 → dynimg-0.1.14}/examples/quote.html +0 -0
  39. {dynimg-0.1.13 → dynimg-0.1.14}/examples/remote-image.html +0 -0
  40. {dynimg-0.1.13 → dynimg-0.1.14}/examples/servo.html +0 -0
  41. {dynimg-0.1.13 → dynimg-0.1.14}/examples/social-card.html +0 -0
  42. {dynimg-0.1.13 → dynimg-0.1.14}/python/dynimg/__init__.py +0 -0
  43. {dynimg-0.1.13 → dynimg-0.1.14}/python/dynimg/__init__.pyi +0 -0
  44. {dynimg-0.1.13 → dynimg-0.1.14}/python/dynimg/py.typed +0 -0
  45. {dynimg-0.1.13 → dynimg-0.1.14}/scripts/release.sh +0 -0
  46. {dynimg-0.1.13 → dynimg-0.1.14}/scripts/render-examples.sh +0 -0
  47. {dynimg-0.1.13 → dynimg-0.1.14}/src/lib.rs +0 -0
  48. {dynimg-0.1.13 → dynimg-0.1.14}/src/main.rs +0 -0
  49. {dynimg-0.1.13 → dynimg-0.1.14}/src/python.rs +0 -0
  50. {dynimg-0.1.13 → dynimg-0.1.14}/test_wheels/.gitignore +0 -0
  51. {dynimg-0.1.13 → dynimg-0.1.14}/test_wheels/README.md +0 -0
  52. {dynimg-0.1.13 → dynimg-0.1.14}/test_wheels/debug_parser.py +0 -0
  53. {dynimg-0.1.13 → dynimg-0.1.14}/test_wheels/debug_verbose.py +0 -0
  54. {dynimg-0.1.13 → dynimg-0.1.14}/test_wheels/test_dynimg.py +0 -0
  55. {dynimg-0.1.13 → dynimg-0.1.14}/test_wheels/test_from_ci.sh +0 -0
@@ -31,7 +31,9 @@
31
31
  "Bash(python:*)",
32
32
  "Bash(maturin build:*)",
33
33
  "WebSearch",
34
- "Bash(.venv/bin/python:*)"
34
+ "Bash(.venv/bin/python:*)",
35
+ "Bash(./scripts/snapshot-tests.sh:*)",
36
+ "Bash(bash -x scripts/snapshot-tests.sh:*)"
35
37
  ]
36
38
  }
37
39
  }
@@ -231,7 +231,7 @@ dependencies = [
231
231
  [[package]]
232
232
  name = "blitz-dom"
233
233
  version = "0.2.2"
234
- source = "git+https://github.com/DioxusLabs/blitz.git?rev=15fe8ccfbc99cf7254ccfaa6c46e5a1c3a2c1cb8#15fe8ccfbc99cf7254ccfaa6c46e5a1c3a2c1cb8"
234
+ source = "git+https://github.com/DioxusLabs/blitz.git?rev=5889435#58894358f0e67703d9baf4b17134466905ea4d9c"
235
235
  dependencies = [
236
236
  "accesskit",
237
237
  "app_units",
@@ -241,7 +241,7 @@ dependencies = [
241
241
  "color",
242
242
  "cssparser",
243
243
  "cursor-icon",
244
- "debug_timer 0.1.3 (git+https://github.com/DioxusLabs/blitz.git?rev=15fe8ccfbc99cf7254ccfaa6c46e5a1c3a2c1cb8)",
244
+ "debug_timer 0.1.3 (git+https://github.com/DioxusLabs/blitz.git?rev=5889435)",
245
245
  "euclid",
246
246
  "fastrand",
247
247
  "html-escape",
@@ -273,7 +273,7 @@ dependencies = [
273
273
  [[package]]
274
274
  name = "blitz-html"
275
275
  version = "0.2.0"
276
- source = "git+https://github.com/DioxusLabs/blitz.git?rev=15fe8ccfbc99cf7254ccfaa6c46e5a1c3a2c1cb8#15fe8ccfbc99cf7254ccfaa6c46e5a1c3a2c1cb8"
276
+ source = "git+https://github.com/DioxusLabs/blitz.git?rev=5889435#58894358f0e67703d9baf4b17134466905ea4d9c"
277
277
  dependencies = [
278
278
  "blitz-dom",
279
279
  "blitz-traits",
@@ -284,7 +284,7 @@ dependencies = [
284
284
  [[package]]
285
285
  name = "blitz-net"
286
286
  version = "0.2.1"
287
- source = "git+https://github.com/DioxusLabs/blitz.git?rev=15fe8ccfbc99cf7254ccfaa6c46e5a1c3a2c1cb8#15fe8ccfbc99cf7254ccfaa6c46e5a1c3a2c1cb8"
287
+ source = "git+https://github.com/DioxusLabs/blitz.git?rev=5889435#58894358f0e67703d9baf4b17134466905ea4d9c"
288
288
  dependencies = [
289
289
  "blitz-traits",
290
290
  "data-url",
@@ -298,7 +298,7 @@ dependencies = [
298
298
  [[package]]
299
299
  name = "blitz-paint"
300
300
  version = "0.2.1"
301
- source = "git+https://github.com/DioxusLabs/blitz.git?rev=15fe8ccfbc99cf7254ccfaa6c46e5a1c3a2c1cb8#15fe8ccfbc99cf7254ccfaa6c46e5a1c3a2c1cb8"
301
+ source = "git+https://github.com/DioxusLabs/blitz.git?rev=5889435#58894358f0e67703d9baf4b17134466905ea4d9c"
302
302
  dependencies = [
303
303
  "anyrender",
304
304
  "anyrender_svg",
@@ -317,7 +317,7 @@ dependencies = [
317
317
  [[package]]
318
318
  name = "blitz-traits"
319
319
  version = "0.2.0"
320
- source = "git+https://github.com/DioxusLabs/blitz.git?rev=15fe8ccfbc99cf7254ccfaa6c46e5a1c3a2c1cb8#15fe8ccfbc99cf7254ccfaa6c46e5a1c3a2c1cb8"
320
+ source = "git+https://github.com/DioxusLabs/blitz.git?rev=5889435#58894358f0e67703d9baf4b17134466905ea4d9c"
321
321
  dependencies = [
322
322
  "bitflags 2.10.0",
323
323
  "bytes",
@@ -365,9 +365,9 @@ checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
365
365
 
366
366
  [[package]]
367
367
  name = "bytemuck"
368
- version = "1.24.0"
368
+ version = "1.25.0"
369
369
  source = "registry+https://github.com/rust-lang/crates.io-index"
370
- checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4"
370
+ checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec"
371
371
  dependencies = [
372
372
  "bytemuck_derive",
373
373
  ]
@@ -397,9 +397,9 @@ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495"
397
397
 
398
398
  [[package]]
399
399
  name = "bytes"
400
- version = "1.11.0"
400
+ version = "1.11.1"
401
401
  source = "registry+https://github.com/rust-lang/crates.io-index"
402
- checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3"
402
+ checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
403
403
 
404
404
  [[package]]
405
405
  name = "cacache"
@@ -430,9 +430,9 @@ dependencies = [
430
430
 
431
431
  [[package]]
432
432
  name = "cc"
433
- version = "1.2.54"
433
+ version = "1.2.55"
434
434
  source = "registry+https://github.com/rust-lang/crates.io-index"
435
- checksum = "6354c81bbfd62d9cfa9cb3c773c2b7b2a3a482d569de977fd0e961f6e7c00583"
435
+ checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29"
436
436
  dependencies = [
437
437
  "find-msvc-tools",
438
438
  "jobserver",
@@ -454,9 +454,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
454
454
 
455
455
  [[package]]
456
456
  name = "clap"
457
- version = "4.5.55"
457
+ version = "4.5.57"
458
458
  source = "registry+https://github.com/rust-lang/crates.io-index"
459
- checksum = "3e34525d5bbbd55da2bb745d34b36121baac88d07619a9a09cfcf4a6c0832785"
459
+ checksum = "6899ea499e3fb9305a65d5ebf6e3d2248c5fab291f300ad0a704fbe142eae31a"
460
460
  dependencies = [
461
461
  "clap_builder",
462
462
  "clap_derive",
@@ -464,9 +464,9 @@ dependencies = [
464
464
 
465
465
  [[package]]
466
466
  name = "clap_builder"
467
- version = "4.5.55"
467
+ version = "4.5.57"
468
468
  source = "registry+https://github.com/rust-lang/crates.io-index"
469
- checksum = "59a20016a20a3da95bef50ec7238dbd09baeef4311dcdd38ec15aba69812fb61"
469
+ checksum = "7b12c8b680195a62a8364d16b8447b01b6c2c8f9aaf68bee653be34d4245e238"
470
470
  dependencies = [
471
471
  "anstream",
472
472
  "anstyle",
@@ -654,7 +654,7 @@ checksum = "da220af51a1a335e9a930beaaef53d261e41ea9eecfb3d973a3ddae1a7284b9c"
654
654
  [[package]]
655
655
  name = "debug_timer"
656
656
  version = "0.1.3"
657
- source = "git+https://github.com/DioxusLabs/blitz.git?rev=15fe8ccfbc99cf7254ccfaa6c46e5a1c3a2c1cb8#15fe8ccfbc99cf7254ccfaa6c46e5a1c3a2c1cb8"
657
+ source = "git+https://github.com/DioxusLabs/blitz.git?rev=5889435#58894358f0e67703d9baf4b17134466905ea4d9c"
658
658
 
659
659
  [[package]]
660
660
  name = "deranged"
@@ -714,7 +714,7 @@ dependencies = [
714
714
  "libc",
715
715
  "option-ext",
716
716
  "redox_users",
717
- "windows-sys 0.60.2",
717
+ "windows-sys 0.61.2",
718
718
  ]
719
719
 
720
720
  [[package]]
@@ -754,7 +754,7 @@ dependencies = [
754
754
 
755
755
  [[package]]
756
756
  name = "dynimg"
757
- version = "0.1.13"
757
+ version = "0.1.14"
758
758
  dependencies = [
759
759
  "anyhow",
760
760
  "anyrender",
@@ -806,7 +806,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
806
806
  checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
807
807
  dependencies = [
808
808
  "libc",
809
- "windows-sys 0.52.0",
809
+ "windows-sys 0.61.2",
810
810
  ]
811
811
 
812
812
  [[package]]
@@ -845,15 +845,15 @@ dependencies = [
845
845
 
846
846
  [[package]]
847
847
  name = "find-msvc-tools"
848
- version = "0.1.8"
848
+ version = "0.1.9"
849
849
  source = "registry+https://github.com/rust-lang/crates.io-index"
850
- checksum = "8591b0bcc8a98a64310a2fae1bb3e9b8564dd10e381e6e28010fde8e8e8568db"
850
+ checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
851
851
 
852
852
  [[package]]
853
853
  name = "flate2"
854
- version = "1.1.8"
854
+ version = "1.1.9"
855
855
  source = "registry+https://github.com/rust-lang/crates.io-index"
856
- checksum = "b375d6465b98090a5f25b1c7703f3859783755aa9a80433b36e0379a3ec2f369"
856
+ checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c"
857
857
  dependencies = [
858
858
  "crc32fast",
859
859
  "miniz_oxide",
@@ -1242,9 +1242,9 @@ dependencies = [
1242
1242
 
1243
1243
  [[package]]
1244
1244
  name = "http-cache-semantics"
1245
- version = "2.1.0"
1245
+ version = "2.1.1"
1246
1246
  source = "registry+https://github.com/rust-lang/crates.io-index"
1247
- checksum = "92baf25cf0b8c9246baecf3a444546360a97b569168fdf92563ee6a47829920c"
1247
+ checksum = "4311240f94cb6fe622337dc580b09ddd6ae4a891eb121dba20cf4f77ca4e7129"
1248
1248
  dependencies = [
1249
1249
  "http",
1250
1250
  "http-serde",
@@ -1314,14 +1314,13 @@ dependencies = [
1314
1314
 
1315
1315
  [[package]]
1316
1316
  name = "hyper-util"
1317
- version = "0.1.19"
1317
+ version = "0.1.20"
1318
1318
  source = "registry+https://github.com/rust-lang/crates.io-index"
1319
- checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f"
1319
+ checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0"
1320
1320
  dependencies = [
1321
1321
  "base64 0.22.1",
1322
1322
  "bytes",
1323
1323
  "futures-channel",
1324
- "futures-core",
1325
1324
  "futures-util",
1326
1325
  "http",
1327
1326
  "http-body",
@@ -1533,15 +1532,6 @@ dependencies = [
1533
1532
  "hashbrown",
1534
1533
  ]
1535
1534
 
1536
- [[package]]
1537
- name = "indoc"
1538
- version = "2.0.7"
1539
- source = "registry+https://github.com/rust-lang/crates.io-index"
1540
- checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
1541
- dependencies = [
1542
- "rustversion",
1543
- ]
1544
-
1545
1535
  [[package]]
1546
1536
  name = "ipnet"
1547
1537
  version = "2.11.0"
@@ -1763,15 +1753,6 @@ dependencies = [
1763
1753
  "libc",
1764
1754
  ]
1765
1755
 
1766
- [[package]]
1767
- name = "memoffset"
1768
- version = "0.9.1"
1769
- source = "registry+https://github.com/rust-lang/crates.io-index"
1770
- checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
1771
- dependencies = [
1772
- "autocfg",
1773
- ]
1774
-
1775
1756
  [[package]]
1776
1757
  name = "miette"
1777
1758
  version = "5.10.0"
@@ -2104,9 +2085,9 @@ dependencies = [
2104
2085
 
2105
2086
  [[package]]
2106
2087
  name = "portable-atomic"
2107
- version = "1.13.0"
2088
+ version = "1.13.1"
2108
2089
  source = "registry+https://github.com/rust-lang/crates.io-index"
2109
- checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950"
2090
+ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
2110
2091
 
2111
2092
  [[package]]
2112
2093
  name = "potential_utf"
@@ -2151,35 +2132,32 @@ dependencies = [
2151
2132
 
2152
2133
  [[package]]
2153
2134
  name = "pyo3"
2154
- version = "0.27.2"
2135
+ version = "0.28.0"
2155
2136
  source = "registry+https://github.com/rust-lang/crates.io-index"
2156
- checksum = "ab53c047fcd1a1d2a8820fe84f05d6be69e9526be40cb03b73f86b6b03e6d87d"
2137
+ checksum = "fcf3ccafdf54c050be48a3a086d372f77ba6615f5057211607cd30e5ac5cec6d"
2157
2138
  dependencies = [
2158
- "indoc",
2159
2139
  "libc",
2160
- "memoffset",
2161
2140
  "once_cell",
2162
2141
  "portable-atomic",
2163
2142
  "pyo3-build-config",
2164
2143
  "pyo3-ffi",
2165
2144
  "pyo3-macros",
2166
- "unindent",
2167
2145
  ]
2168
2146
 
2169
2147
  [[package]]
2170
2148
  name = "pyo3-build-config"
2171
- version = "0.27.2"
2149
+ version = "0.28.0"
2172
2150
  source = "registry+https://github.com/rust-lang/crates.io-index"
2173
- checksum = "b455933107de8642b4487ed26d912c2d899dec6114884214a0b3bb3be9261ea6"
2151
+ checksum = "972720a441c91fd9c49f212a1d2d74c6e3803b231ebc8d66c51efbd7ccab11c8"
2174
2152
  dependencies = [
2175
2153
  "target-lexicon",
2176
2154
  ]
2177
2155
 
2178
2156
  [[package]]
2179
2157
  name = "pyo3-ffi"
2180
- version = "0.27.2"
2158
+ version = "0.28.0"
2181
2159
  source = "registry+https://github.com/rust-lang/crates.io-index"
2182
- checksum = "1c85c9cbfaddf651b1221594209aed57e9e5cff63c4d11d1feead529b872a089"
2160
+ checksum = "5994456d9dab8934d600d3867571b6410f24fbd6002570ad56356733eb54859b"
2183
2161
  dependencies = [
2184
2162
  "libc",
2185
2163
  "pyo3-build-config",
@@ -2187,9 +2165,9 @@ dependencies = [
2187
2165
 
2188
2166
  [[package]]
2189
2167
  name = "pyo3-macros"
2190
- version = "0.27.2"
2168
+ version = "0.28.0"
2191
2169
  source = "registry+https://github.com/rust-lang/crates.io-index"
2192
- checksum = "0a5b10c9bf9888125d917fb4d2ca2d25c8df94c7ab5a52e13313a07e050a3b02"
2170
+ checksum = "11ce9cc8d81b3c4969748807604d92b4eef363c5bb82b1a1bdb34ec6f1093a18"
2193
2171
  dependencies = [
2194
2172
  "proc-macro2",
2195
2173
  "pyo3-macros-backend",
@@ -2199,9 +2177,9 @@ dependencies = [
2199
2177
 
2200
2178
  [[package]]
2201
2179
  name = "pyo3-macros-backend"
2202
- version = "0.27.2"
2180
+ version = "0.28.0"
2203
2181
  source = "registry+https://github.com/rust-lang/crates.io-index"
2204
- checksum = "03b51720d314836e53327f5871d4c0cfb4fb37cc2c4a11cc71907a86342c40f9"
2182
+ checksum = "eaf4b60036a154d23282679b658e3cc7d88d3b8c9a40b43824785f232d2e1b98"
2205
2183
  dependencies = [
2206
2184
  "heck",
2207
2185
  "proc-macro2",
@@ -2396,9 +2374,9 @@ dependencies = [
2396
2374
 
2397
2375
  [[package]]
2398
2376
  name = "regex-automata"
2399
- version = "0.4.13"
2377
+ version = "0.4.14"
2400
2378
  source = "registry+https://github.com/rust-lang/crates.io-index"
2401
- checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c"
2379
+ checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f"
2402
2380
  dependencies = [
2403
2381
  "aho-corasick",
2404
2382
  "memchr",
@@ -2407,9 +2385,9 @@ dependencies = [
2407
2385
 
2408
2386
  [[package]]
2409
2387
  name = "regex-syntax"
2410
- version = "0.8.8"
2388
+ version = "0.8.9"
2411
2389
  source = "registry+https://github.com/rust-lang/crates.io-index"
2412
- checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58"
2390
+ checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c"
2413
2391
 
2414
2392
  [[package]]
2415
2393
  name = "reqwest"
@@ -2520,7 +2498,7 @@ dependencies = [
2520
2498
  "errno",
2521
2499
  "libc",
2522
2500
  "linux-raw-sys",
2523
- "windows-sys 0.52.0",
2501
+ "windows-sys 0.61.2",
2524
2502
  ]
2525
2503
 
2526
2504
  [[package]]
@@ -2786,9 +2764,9 @@ dependencies = [
2786
2764
 
2787
2765
  [[package]]
2788
2766
  name = "slab"
2789
- version = "0.4.11"
2767
+ version = "0.4.12"
2790
2768
  source = "registry+https://github.com/rust-lang/crates.io-index"
2791
- checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589"
2769
+ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
2792
2770
 
2793
2771
  [[package]]
2794
2772
  name = "slotmap"
@@ -3022,7 +3000,7 @@ checksum = "fd15301b4756455af51fda9835655e48812dd4175e80947fd5d6a4b57ee30e89"
3022
3000
  [[package]]
3023
3001
  name = "stylo_taffy"
3024
3002
  version = "0.2.0"
3025
- source = "git+https://github.com/DioxusLabs/blitz.git?rev=15fe8ccfbc99cf7254ccfaa6c46e5a1c3a2c1cb8#15fe8ccfbc99cf7254ccfaa6c46e5a1c3a2c1cb8"
3003
+ source = "git+https://github.com/DioxusLabs/blitz.git?rev=5889435#58894358f0e67703d9baf4b17134466905ea4d9c"
3026
3004
  dependencies = [
3027
3005
  "stylo",
3028
3006
  "stylo_atoms",
@@ -3136,7 +3114,7 @@ dependencies = [
3136
3114
  "getrandom 0.3.4",
3137
3115
  "once_cell",
3138
3116
  "rustix",
3139
- "windows-sys 0.52.0",
3117
+ "windows-sys 0.61.2",
3140
3118
  ]
3141
3119
 
3142
3120
  [[package]]
@@ -3536,12 +3514,6 @@ version = "0.1.14"
3536
3514
  source = "registry+https://github.com/rust-lang/crates.io-index"
3537
3515
  checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
3538
3516
 
3539
- [[package]]
3540
- name = "unindent"
3541
- version = "0.2.4"
3542
- source = "registry+https://github.com/rust-lang/crates.io-index"
3543
- checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
3544
-
3545
3517
  [[package]]
3546
3518
  name = "untrusted"
3547
3519
  version = "0.9.0"
@@ -3799,9 +3771,9 @@ dependencies = [
3799
3771
 
3800
3772
  [[package]]
3801
3773
  name = "webpki-roots"
3802
- version = "1.0.5"
3774
+ version = "1.0.6"
3803
3775
  source = "registry+https://github.com/rust-lang/crates.io-index"
3804
- checksum = "12bed680863276c63889429bfd6cab3b99943659923822de1c8a39c49e4d722c"
3776
+ checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed"
3805
3777
  dependencies = [
3806
3778
  "rustls-pki-types",
3807
3779
  ]
@@ -4246,18 +4218,18 @@ checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524"
4246
4218
 
4247
4219
  [[package]]
4248
4220
  name = "zerocopy"
4249
- version = "0.8.35"
4221
+ version = "0.8.38"
4250
4222
  source = "registry+https://github.com/rust-lang/crates.io-index"
4251
- checksum = "fdea86ddd5568519879b8187e1cf04e24fce28f7fe046ceecbce472ff19a2572"
4223
+ checksum = "57cf3aa6855b23711ee9852dfc97dfaa51c45feaba5b645d0c777414d494a961"
4252
4224
  dependencies = [
4253
4225
  "zerocopy-derive",
4254
4226
  ]
4255
4227
 
4256
4228
  [[package]]
4257
4229
  name = "zerocopy-derive"
4258
- version = "0.8.35"
4230
+ version = "0.8.38"
4259
4231
  source = "registry+https://github.com/rust-lang/crates.io-index"
4260
- checksum = "0c15e1b46eff7c6c91195752e0eeed8ef040e391cdece7c25376957d5f15df22"
4232
+ checksum = "8a616990af1a287837c4fe6596ad77ef57948f787e46ce28e166facc0cc1cb75"
4261
4233
  dependencies = [
4262
4234
  "proc-macro2",
4263
4235
  "quote",
@@ -4327,9 +4299,9 @@ dependencies = [
4327
4299
 
4328
4300
  [[package]]
4329
4301
  name = "zmij"
4330
- version = "1.0.17"
4302
+ version = "1.0.19"
4331
4303
  source = "registry+https://github.com/rust-lang/crates.io-index"
4332
- checksum = "02aae0f83f69aafc94776e879363e9771d7ecbffe2c7fbb6c14c5e00dfe88439"
4304
+ checksum = "3ff05f8caa9038894637571ae6b9e29466c1f4f829d26c9b28f869a29cbe3445"
4333
4305
 
4334
4306
  [[package]]
4335
4307
  name = "zune-core"
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "dynimg"
3
- version = "0.1.13"
3
+ version = "0.1.14"
4
4
  edition = "2024"
5
5
  description = "A fast library and CLI for rendering HTML/CSS to images"
6
6
  license = "MIT"
@@ -24,16 +24,16 @@ python = ["pyo3", "libc"]
24
24
 
25
25
  [dependencies]
26
26
  # Python bindings (optional)
27
- pyo3 = { version = "0.27", features = ["extension-module", "abi3-py311"], optional = true }
27
+ pyo3 = { version = "0.28", features = ["extension-module", "abi3-py311"], optional = true }
28
28
  libc = { version = "0.2", optional = true }
29
29
 
30
30
 
31
31
  # Blitz rendering engine (from git - matches example.rs)
32
- blitz-dom = { git = "https://github.com/DioxusLabs/blitz.git", rev = "15fe8ccfbc99cf7254ccfaa6c46e5a1c3a2c1cb8", features = ["tracing"] }
33
- blitz-html = { git = "https://github.com/DioxusLabs/blitz.git", rev = "15fe8ccfbc99cf7254ccfaa6c46e5a1c3a2c1cb8" }
34
- blitz-net = { git = "https://github.com/DioxusLabs/blitz.git", rev = "15fe8ccfbc99cf7254ccfaa6c46e5a1c3a2c1cb8", features = ["cache"] }
35
- blitz-paint = { git = "https://github.com/DioxusLabs/blitz.git", rev = "15fe8ccfbc99cf7254ccfaa6c46e5a1c3a2c1cb8" }
36
- blitz-traits = { git = "https://github.com/DioxusLabs/blitz.git", rev = "15fe8ccfbc99cf7254ccfaa6c46e5a1c3a2c1cb8" }
32
+ blitz-dom = { git = "https://github.com/DioxusLabs/blitz.git", rev = "5889435", features = ["tracing"] }
33
+ blitz-html = { git = "https://github.com/DioxusLabs/blitz.git", rev = "5889435" }
34
+ blitz-net = { git = "https://github.com/DioxusLabs/blitz.git", rev = "5889435", features = ["cache"] }
35
+ blitz-paint = { git = "https://github.com/DioxusLabs/blitz.git", rev = "5889435" }
36
+ blitz-traits = { git = "https://github.com/DioxusLabs/blitz.git", rev = "5889435" }
37
37
 
38
38
  # Anyrender - use the same version blitz uses (from crates.io)
39
39
  anyrender = "0.7"
@@ -12,6 +12,7 @@ dev:
12
12
  test: install
13
13
  cargo test
14
14
  python test_wheels/test_dynimg.py
15
+ ./scripts/snapshot-tests.sh
15
16
 
16
17
  # Run lints
17
18
  lint:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dynimg
3
- Version: 0.1.13
3
+ Version: 0.1.14
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: License :: OSI Approved :: MIT License
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "dynimg"
7
- version = "0.1.13"
7
+ version = "0.1.14"
8
8
  description = "A fast library for rendering HTML/CSS to images"
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
@@ -0,0 +1,130 @@
1
+ #!/bin/bash
2
+ # Snapshot tests: compare rendered output against known good images
3
+ # Run from project root: ./scripts/snapshot-tests.sh
4
+ # Update snapshots: ./scripts/snapshot-tests.sh --update
5
+
6
+ set -e
7
+
8
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
+ PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
10
+ SNAPSHOTS_DIR="$PROJECT_ROOT/tests/snapshots"
11
+ EXAMPLES_DIR="$PROJECT_ROOT/examples"
12
+ TMP_DIR=$(mktemp -d)
13
+
14
+ # Colors
15
+ RED='\033[0;31m'
16
+ GREEN='\033[0;32m'
17
+ YELLOW='\033[1;33m'
18
+ NC='\033[0m'
19
+
20
+ # Parse args
21
+ UPDATE_MODE=false
22
+ if [ "$1" = "--update" ] || [ "$1" = "-u" ]; then
23
+ UPDATE_MODE=true
24
+ fi
25
+
26
+ # Cleanup on exit
27
+ cleanup() {
28
+ rm -rf "$TMP_DIR"
29
+ }
30
+ trap cleanup EXIT
31
+
32
+ # Build release version
33
+ echo "Building dynimg..."
34
+ cargo build --release --manifest-path "$PROJECT_ROOT/Cargo.toml" --quiet || exit 1
35
+ DYNIMG="$PROJECT_ROOT/target/release/dynimg"
36
+
37
+ echo ""
38
+ echo "=== Snapshot Tests ==="
39
+
40
+ if [ "$UPDATE_MODE" = true ]; then
41
+ echo -e "${YELLOW}Running in UPDATE mode - snapshots will be regenerated${NC}"
42
+ fi
43
+ echo ""
44
+
45
+ # Track results
46
+ PASSED=0
47
+ FAILED=0
48
+
49
+ # Run a snapshot test
50
+ # Args: name, extension, input_html, [extra_args...]
51
+ snapshot_test() {
52
+ local name="$1"
53
+ local ext="$2"
54
+ local input="$3"
55
+ shift 3
56
+ local extra_args=("$@")
57
+
58
+ local output_file="$TMP_DIR/${name}.${ext}"
59
+ local snapshot_file="$SNAPSHOTS_DIR/${name}.${ext}"
60
+
61
+ printf " %-40s " "$name"
62
+
63
+ # Capture timing
64
+ local start_time=$(perl -MTime::HiRes=time -e 'printf "%.3f", time')
65
+
66
+ # Render the image
67
+ if ! "$DYNIMG" "$input" -o "$output_file" "${extra_args[@]}" > /dev/null 2>&1; then
68
+ local end_time=$(perl -MTime::HiRes=time -e 'printf "%.3f", time')
69
+ local elapsed=$(echo "$end_time - $start_time" | bc)
70
+ printf "${RED}RENDER FAILED${NC} (%5.2fs)\n" "$elapsed"
71
+ : $((FAILED++))
72
+ return
73
+ fi
74
+
75
+ local end_time=$(perl -MTime::HiRes=time -e 'printf "%.3f", time')
76
+ local elapsed=$(echo "$end_time - $start_time" | bc)
77
+
78
+ if [ "$UPDATE_MODE" = true ]; then
79
+ cp "$output_file" "$snapshot_file"
80
+ printf "${YELLOW}UPDATED${NC} (%5.2fs)\n" "$elapsed"
81
+ : $((PASSED++))
82
+ return
83
+ fi
84
+
85
+ # Check if snapshot exists
86
+ if [ ! -f "$snapshot_file" ]; then
87
+ printf "${RED}NO SNAPSHOT${NC} (%5.2fs)\n" "$elapsed"
88
+ echo " Run with --update to create snapshot"
89
+ : $((FAILED++))
90
+ return
91
+ fi
92
+
93
+ # Compare using sha256
94
+ local output_hash=$(shasum -a 256 "$output_file" | cut -d' ' -f1)
95
+ local snapshot_hash=$(shasum -a 256 "$snapshot_file" | cut -d' ' -f1)
96
+
97
+ if [ "$output_hash" = "$snapshot_hash" ]; then
98
+ printf "${GREEN}OK${NC} (%5.2fs)\n" "$elapsed"
99
+ : $((PASSED++))
100
+ else
101
+ printf "${RED}MISMATCH${NC} (%5.2fs)\n" "$elapsed"
102
+ echo " Output: $TMP_DIR/${name}.png"
103
+ echo " Expected: $snapshot_file"
104
+ : $((FAILED++))
105
+ fi
106
+ }
107
+
108
+ echo "--- Inline HTML (no external deps) ---"
109
+ snapshot_test "inline-only" png "$EXAMPLES_DIR/inline-only.html"
110
+ snapshot_test "inline-only-jpg" jpg "$EXAMPLES_DIR/inline-only.html" --quality 90
111
+ snapshot_test "inline-only-webp" webp "$EXAMPLES_DIR/inline-only.html"
112
+ snapshot_test "inline-custom-size" png "$EXAMPLES_DIR/inline-only.html" -w 400 -H 300
113
+
114
+ echo ""
115
+ echo "--- OG Image Templates ---"
116
+ snapshot_test "og-image" png "$EXAMPLES_DIR/og-image.html"
117
+ snapshot_test "social-card" png "$EXAMPLES_DIR/social-card.html"
118
+ snapshot_test "quote" png "$EXAMPLES_DIR/quote.html"
119
+
120
+ echo ""
121
+ echo "=== Results ==="
122
+ echo " Passed: $PASSED"
123
+ echo " Failed: $FAILED"
124
+
125
+ if [ "$UPDATE_MODE" = true ]; then
126
+ echo ""
127
+ echo "Snapshots saved to: $SNAPSHOTS_DIR"
128
+ fi
129
+
130
+ exit $FAILED
Binary file
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes