Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ members = [
"crates/webpkit-cli",
"crates/webpkit-conformance",
"crates/webpkit-fuzz",
"crates/webpkit-libwebp-timing",
"crates/webpkit-lossless-conformance",
"crates/webpkit-lossless-fuzz",
"crates/webpkit-lossy-conformance",
Expand Down
23 changes: 21 additions & 2 deletions Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,11 @@ fmt-check:
clippy:
cargo clippy --workspace --all-targets --features webpkit/image,webpkit/rayon -- -D warnings

# Fail on narrative / history / measurement-boast phrasing in library + CLI comments.
# A comment states the constraint in one line; the rationale record lives in Linear/ADR.
lint-comments:
cargo run --quiet -p xtask -- lint-comments

deny:
cargo deny check advisories bans licenses sources

Expand Down Expand Up @@ -203,6 +208,19 @@ metrics-lossy:
metrics-lossy-bless:
cargo +1.96 run --release --quiet -p xtask -- metrics --lossy --bless

# Compare our encoder against libwebp over the synthetic corpus and gate
# corpus/vs-libwebp.json (our l9 lossless + AUTO lossy sizes + centi-dB PSNR vs
# cwebp, both decoded by our own decoder). --release only for runtime budget: the
# rows are integer sizes + centi-dB PSNR, deterministic and profile-independent
# (no peak memory), so NO +1.96 pin is needed. NEEDS cwebp 1.6.0; a missing or
# version-mismatched reference fails closed.
vs-libwebp:
cargo run --release --quiet -p xtask -- vs-libwebp

# (Re)author the cwebp/dwebp comparison ledger after an intended size/fidelity change.
vs-libwebp-bless:
cargo run --release --quiet -p xtask -- vs-libwebp --bless

# Measure deterministic algorithmic-work counters and gate corpus/work.json.
# --release for runtime budget only; unlike `metrics`, the counts are integer
# event tallies that are toolchain- AND profile-independent, so NO +1.96 pin is
Expand Down Expand Up @@ -251,7 +269,8 @@ bench-kernels filter="":

# In-process comparison vs the libwebp C reference -> self-contained HTML
# dashboard (size, lossy quality, and wall-clock speed). Links libwebp via
# `libwebp-sys` and measures both codecs in the same process (no CLI/IO skew).
# `libwebp-sys`, measures both codecs in the same process (no CLI/IO skew), and
# compares lossy `VP8 ` payload bytes on both sides.
# Local-only (timing is machine-dependent); the report is written under target/.
# just report-vs-libwebp # -> target/vs-libwebp.html
# just report-vs-libwebp out.html
Expand Down Expand Up @@ -369,7 +388,7 @@ _hook-yamlfmt +files:
yamlfmt {{ files }}

_hook-typos-fix +files:
typos --write-changes {{ files }}
typos --force-exclude --write-changes {{ files }}

_hook-actionlint +files:
actionlint {{ files }}
8 changes: 4 additions & 4 deletions corpus/baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,8 @@
"height": 32,
"decoded_hash": 14606322490691510853,
"reencode_ok": true,
"reencode_len": 84,
"reencode_hash": 16276054770118723875,
"reencode_len": 80,
"reencode_hash": 5036386195150727325,
"self_roundtrip": true
},
{
Expand Down Expand Up @@ -228,8 +228,8 @@
"height": 32,
"decoded_hash": 16666787168084109780,
"reencode_ok": true,
"reencode_len": 2880,
"reencode_hash": 15581092113230976398,
"reencode_len": 2710,
"reencode_hash": 18282578891653707315,
"self_roundtrip": true
},
{
Expand Down
Loading
Loading