1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
[]
= "webpkit"
= true
= true
= true
= true
= true
= true
= "A pure-Rust WebP codec: lossless (VP8L) and lossy (VP8) behind one decode/encode API."
= ["webp", "image", "codec", "lossless", "lossy"]
= ["multimedia::images", "encoding", "no-std"]
= "https://github.com/P4suta/webpkit"
= "https://docs.rs/webpkit"
= "README.md"
# Keep the published tarball lean and dependency-free: the integration tests carry
# ~200 KB of golden fixtures + oracle sources that need dev-only path deps
# (`webpkit-samples`, `webpkit-lossy-proptest`) which are stripped on publish, so
# they cannot build from the crate anyway. `examples/roundtrip.rs` stays (it is the
# doc-linked quick-start); `examples/vs_libwebp.rs` is `required-features = ["oracle"]`
# and therefore inert in a default build.
= ["tests/"]
# Render every feature's items on docs.rs (the `rayon`/`oracle` gated code included).
# No `--cfg docsrs` / `doc_cfg`: no optional feature changes a *public* signature
# (`rayon` only swaps in parallelism, `oracle` is dev-only, `std`/`alloc` are the
# baseline), so a feature-badge pass would annotate internal items for no reader gain.
[]
= true
[]
= ["std"]
= ["alloc"]
= []
# Opt-in encoder data-parallelism (rayon). Off by default; every parallel path is
# byte-identical to its serial fallback, so it changes only wall-clock, never output.
= ["dep:rayon", "std"]
# Opt-in interop with the `image` crate: `TryFrom` conversions between
# `image::DynamicImage`/`RgbaImage` and `Image` (see `interop.rs`). Off by default,
# so a plain build keeps the zero-dependency baseline; needs an allocator.
= ["dep:image", "alloc"]
# Differential oracle: links the libwebp C reference in-process for the
# `tests/oracle*.rs` cross-checks. Dev/test only; never part of a normal build.
= ["dep:libwebp-sys"]
# Deterministic algorithmic-work counters (the work-cost measurement plane).
# Off by default: production builds link no counter code and behave identically.
= []
# Dev-only: re-exports internal numeric kernels (and their pre-optimization
# `*_reference` twins) through `crate::{lossless,lossy}::bench` so `webpkit-bench`'s
# `kernels` microbench can time them in isolation. Adds no dependency and no
# production code; never enabled in a real build.
= []
[]
# Optional `image`-crate interop (the `image` feature). `default-features = false`
# keeps it to the buffer/`DynamicImage` types — no image format codecs are pulled —
# so a plain build has zero dependencies and this never enters it.
= { = "0.25", = true, = false }
= { = true, = true }
# Declared locally (not `workspace = true`) so rayon can never enter a default build.
= { = "1", = true }
[]
= { = true }
= { = "../webpkit-lossy-proptest" }
# The shared synthetic corpus, for the in-process comparison report against the
# libwebp C reference (`examples/vs_libwebp.rs`, `oracle` feature).
= { = "../webpkit-samples" }
# In-process size/quality/speed comparison vs the libwebp C reference, rendered to a
# self-contained HTML dashboard. Needs the `oracle` feature (libwebp-sys), so it is
# skipped by ordinary `cargo build --examples`.
# just report-vs-libwebp
[[]]
= "vs_libwebp"
= ["oracle"]
[]
= true