mediadecode-webcodecs 0.2.0

WebCodecs adapter for the `mediadecode` abstraction layer — implements its `VideoAdapter` / `AudioAdapter` traits on top of the browser's WebCodecs API via `web-sys`, for `wasm32` targets.

Build #3292865 2026-05-15 05:39:02

Build failed. If you want to re-trigger a documentation build, you can do it here. You can find more information on docs.rs builds documentation on the builds page.

# error kind ExecutionFailed

# pre-build errors command failed: exit status: 101

# rustc version rustc 1.97.0-nightly (7c3c88f42 2026-05-14)

# docs.rs version docsrs 0.0.0 (e3981f6f5e851656470d52001364bbb946056a06 2026-05-14 )

# build log [INFO] adding target wasm32-unknown-unknown for toolchain nightly [INFO] running `Command { std: CARGO_HOME="/home/cratesfyi/workspace-builder/cargo-home" RUSTUP_HOME="/home/cratesfyi/workspace-builder/rustup-home" "/home/cratesfyi/workspace-builder/cargo-home/bin/rustup" "target" "add" "--toolchain" "nightly" "wasm32-unknown-unknown", kill_on_drop: false }` [INFO] [stderr] info: component rust-std for target wasm32-unknown-unknown is up to date [INFO] running `Command { std: "docker" "create" "-v" "/home/cratesfyi/workspace-builder/builds/mediadecode-webcodecs-0.2.0/target:/opt/rustwide/target:rw,Z" "-v" "/home/cratesfyi/workspace-builder/builds/mediadecode-webcodecs-0.2.0/source:/opt/rustwide/workdir:ro,Z" "-v" "/home/cratesfyi/workspace-builder/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/home/cratesfyi/workspace-builder/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "6442450944" "--cpuset-cpus" "14-19" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 0d0d835364e007deb2edc237269c0b1d7444382ac50757be608caa69f8acad44 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "0d0d835364e007deb2edc237269c0b1d7444382ac50757be608caa69f8acad44", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "DOCS_RS=1" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "--user" "1001:1001" "0d0d835364e007deb2edc237269c0b1d7444382ac50757be608caa69f8acad44" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "rustdoc" "--lib" "-Zrustdoc-map" "--all-features" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--emit=invocation-specific\", \"--resource-suffix\", \"-20260514-1.97.0-nightly-7c3c88f42\", \"--static-root-path\", \"/-/rustdoc.static/\", \"--cap-lints\", \"warn\", \"--extern-html-root-takes-precedence\"]" "--offline" "-Zunstable-options" "--config=doc.extern-map.registries.crates-io=\"https://docs.rs/{pkg_name}/{version}/wasm32-unknown-unknown\"" "-Zrustdoc-scrape-examples" "-j6" "--target" "wasm32-unknown-unknown", kill_on_drop: false }` [INFO] [stderr] warning: target filter specified, but no targets matched; this is a no-op [INFO] [stderr] Documenting mediadecode-webcodecs v0.2.0 (/opt/rustwide/workdir) [INFO] [stderr] error: mediadecode-webcodecs requires `--cfg web_sys_unstable_apis`. Add the following to your project's `.cargo/config.toml`: [INFO] [stderr] [INFO] [stderr] [target.wasm32-unknown-unknown] [INFO] [stderr] rustflags = ["--cfg=web_sys_unstable_apis"] [INFO] [stderr] [INFO] [stderr] or set `RUSTFLAGS="--cfg=web_sys_unstable_apis"` in your environment / CI. This is a `web-sys` constraint — the WebCodecs WebIDL is still marked unstable upstream. [INFO] [stderr] --> src/lib.rs:60:1 [INFO] [stderr] | [INFO] [stderr] 60 | / compile_error!( [INFO] [stderr] 61 | | "mediadecode-webcodecs requires `--cfg web_sys_unstable_apis`. \ [INFO] [stderr] 62 | | Add the following to your project's `.cargo/config.toml`:\n\n \ [INFO] [stderr] 63 | | [target.wasm32-unknown-unknown]\n \ [INFO] [stderr] ... | [INFO] [stderr] 67 | | unstable upstream." [INFO] [stderr] 68 | | ); [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] error[E0432]: unresolved import `web_sys::AudioSampleFormat` [INFO] [stderr] --> src/audio.rs:1549:7 [INFO] [stderr] | [INFO] [stderr] 1549 | use web_sys::AudioSampleFormat as W; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `AudioSampleFormat` in the root [INFO] [stderr] [INFO] [stderr] error[E0432]: unresolved import `web_sys::AudioSampleFormat` [INFO] [stderr] --> src/audio.rs:1560:7 [INFO] [stderr] | [INFO] [stderr] 1560 | use web_sys::AudioSampleFormat as W; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `AudioSampleFormat` in the root [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `AudioDecoder` in crate `web_sys` [INFO] [stderr] --> src/audio.rs:176:21 [INFO] [stderr] | [INFO] [stderr] 176 | decoder: web_sys::AudioDecoder, [INFO] [stderr] | ^^^^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `AudioDecoderConfig` in crate `web_sys` [INFO] [stderr] --> src/audio.rs:180:20 [INFO] [stderr] | [INFO] [stderr] 180 | config: web_sys::AudioDecoderConfig, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `AudioDecoder` in crate `web_sys` [INFO] [stderr] --> src/audio.rs:408:22 [INFO] [stderr] | [INFO] [stderr] 408 | decoder: &web_sys::AudioDecoder, [INFO] [stderr] | ^^^^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `AudioDecoder` in crate `web_sys` [INFO] [stderr] --> src/audio.rs:740:22 [INFO] [stderr] | [INFO] [stderr] 740 | decoder: &web_sys::AudioDecoder, [INFO] [stderr] | ^^^^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `AudioData` in crate `web_sys` [INFO] [stderr] --> src/audio.rs:809:25 [INFO] [stderr] | [INFO] [stderr] 809 | data: Option<web_sys::AudioData>, [INFO] [stderr] | ^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `AudioData` in crate `web_sys` [INFO] [stderr] --> src/audio.rs:828:36 [INFO] [stderr] | [INFO] [stderr] 828 | fn disarm(&mut self) -> web_sys::AudioData { [INFO] [stderr] | ^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `AudioData` in crate `web_sys` [INFO] [stderr] --> src/audio.rs:951:37 [INFO] [stderr] | [INFO] [stderr] 951 | struct JsAudioGuard(Option<web_sys::AudioData>); [INFO] [stderr] | ^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `AudioData` in crate `web_sys` [INFO] [stderr] --> src/audio.rs:953:31 [INFO] [stderr] | [INFO] [stderr] 953 | fn data(&self) -> &web_sys::AudioData { [INFO] [stderr] | ^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `AudioData` in crate `web_sys` [INFO] [stderr] --> src/audio.rs:966:19 [INFO] [stderr] | [INFO] [stderr] 966 | data: &web_sys::AudioData, [INFO] [stderr] | ^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `AudioDecoder` in crate `web_sys` [INFO] [stderr] --> src/audio.rs:1143:21 [INFO] [stderr] | [INFO] [stderr] 1143 | decoder: web_sys::AudioDecoder, [INFO] [stderr] | ^^^^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `AudioDecoderConfig` in crate `web_sys` [INFO] [stderr] --> src/audio.rs:1165:21 [INFO] [stderr] | [INFO] [stderr] 1165 | config: &web_sys::AudioDecoderConfig, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `AudioData` in crate `web_sys` [INFO] [stderr] --> src/audio.rs:1520:45 [INFO] [stderr] | [INFO] [stderr] 1520 | fn measure_audio_data_bytes(data: &web_sys::AudioData) -> Option<u32> { [INFO] [stderr] | ^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `AudioSampleFormat` in crate `web_sys` [INFO] [stderr] --> src/audio.rs:1548:44 [INFO] [stderr] | [INFO] [stderr] 1548 | fn audio_sample_format_bytes(fmt: web_sys::AudioSampleFormat) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `AudioSampleFormat` in crate `web_sys` [INFO] [stderr] --> src/audio.rs:1559:43 [INFO] [stderr] | [INFO] [stderr] 1559 | fn audio_sample_format_name(fmt: web_sys::AudioSampleFormat) -> &'static str { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `VideoDecoder` in crate `web_sys` [INFO] [stderr] --> src/state.rs:829:18 [INFO] [stderr] | [INFO] [stderr] 829 | Video(web_sys::VideoDecoder), [INFO] [stderr] | ^^^^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `AudioDecoder` in crate `web_sys` [INFO] [stderr] --> src/state.rs:832:18 [INFO] [stderr] | [INFO] [stderr] 832 | Audio(web_sys::AudioDecoder), [INFO] [stderr] | ^^^^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `VideoDecoder` in crate `web_sys` [INFO] [stderr] --> src/state.rs:907:56 [INFO] [stderr] | [INFO] [stderr] 907 | pub fn set_close_hook_video(&self, decoder: web_sys::VideoDecoder) { [INFO] [stderr] | ^^^^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `AudioDecoder` in crate `web_sys` [INFO] [stderr] --> src/state.rs:913:56 [INFO] [stderr] | [INFO] [stderr] 913 | pub fn set_close_hook_audio(&self, decoder: web_sys::AudioDecoder) { [INFO] [stderr] | ^^^^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `VideoDecoder` in crate `web_sys` [INFO] [stderr] --> src/video.rs:246:21 [INFO] [stderr] | [INFO] [stderr] 246 | decoder: web_sys::VideoDecoder, [INFO] [stderr] | ^^^^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `VideoDecoderConfig` in crate `web_sys` [INFO] [stderr] --> src/video.rs:251:20 [INFO] [stderr] | [INFO] [stderr] 251 | config: web_sys::VideoDecoderConfig, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `VideoDecoder` in crate `web_sys` [INFO] [stderr] --> src/video.rs:840:22 [INFO] [stderr] | [INFO] [stderr] 840 | decoder: &web_sys::VideoDecoder, [INFO] [stderr] | ^^^^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find type `VideoDecoder` in crate `web_sys` [INFO] [stderr] --> src/video.rs:1199:22 [INFO] [stderr] | [INFO] [stderr] 1199 | decoder: &web_sys::VideoDecoder, [INFO] [stderr] | ^^^^^^^^^^^^ not found in `web_sys` [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0425, E0432. [INFO] [stderr] For more information about an error, try `rustc --explain E0425`. [INFO] [stderr] error: could not document `mediadecode-webcodecs` [INFO] running `Command { std: "docker" "stop" "-t" "1" "0d0d835364e007deb2edc237269c0b1d7444382ac50757be608caa69f8acad44", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0d0d835364e007deb2edc237269c0b1d7444382ac50757be608caa69f8acad44", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0d0d835364e007deb2edc237269c0b1d7444382ac50757be608caa69f8acad44", kill_on_drop: false }` [INFO] [stdout] 0d0d835364e007deb2edc237269c0b1d7444382ac50757be608caa69f8acad44