Vendored from https://github.com/asciinema/asciinema-player (releases page). Used for recorded cast playback. See LICENSE-asciinema-player for the license.

Built from the VT parser crate inside the asciinema-player repo:

# requires nix develop in ~/kot/asciinema-player (provides rust + wasm32 target + binaryen)

cargo build \
  --manifest-path ~/kot/asciinema-player/src/vt/Cargo.toml \
  --target wasm32-unknown-unknown --release

cargo install wasm-bindgen-cli --version 0.2.106 --locked

wasm-bindgen \
  ~/kot/asciinema-player/src/vt/target/wasm32-unknown-unknown/release/vt_js.wasm \
  --out-dir /tmp/vt-out --target web --no-typescript

wasm-opt -O4 /tmp/vt-out/vt_js_bg.wasm -o static/vt_js_bg.wasm
cp /tmp/vt-out/vt_js.js static/vt_js.js

vt_js.js is then patched to export getWasmMemory() (see the export at the bottom of the file) so the live player can read span data directly from wasm memory.

The wasm-bindgen version must match the wasm-bindgen dependency in src/vt/Cargo.toml.

Hand-written canvas-based live stream player. Connects to the ALiS WebSocket, feeds terminal data into the wasm VT parser, and renders directly to a <canvas> element. No build step — loaded as an ES module.