libopus-wasm is a TypeScript library that provides WebAssembly bindings for libopus, enabling raw Opus packet encode/decode in browsers and Node.js without native dependencies. It exposes async factories (`createEncoder`, `createDecoder`) that lazily load a single-file WASM module, returning typed handles with methods for Int16 and Float32 PCM, batch operations, packet-loss concealment, in-band FEC, and a curated CTL passthrough. The library also ships a `@discordjs/opus`-compatible adapter (`libopus-wasm/discordjs`) for drop-in replacement. The codebase is well-structured with strict validation, deterministic cleanup via `Symbol.dispose`, and comprehensive test coverage. Build scripts compile libopus from source using Emscripten with SHA-256 verification, and the documentation site is generated from Markdown by a custom static site builder. The repository is actively maintained with recent commits, CI across Node 22–26, and no open issues.