COOLJAPAN
← All posts

OxiMedia 0.1.9 Released — 100% Pure Rust by Default, Four Security Fixes, and oximedia-web Ships

OxiMedia 0.1.9 ships a 100% Pure Rust default build (zero C/C++/Fortran), fixes four real security vulnerabilities (SRT crypto, MP4 DoS, WebRTC DTLS honesty, SQL injection), and launches oximedia-web — four WASM modules downstream of WebCodecs, live in OxiScope and OxiLink. 114 crates, ~2.95M SLOC.

release oximedia ffmpeg opencv pure-rust security wasm webcodecs sqlite

The pure-Rust FFmpeg + OpenCV replacement just went fully sovereign in its default build — and closed four real security holes on the way.

Today we released OxiMedia 0.1.9 — a production-readiness release that makes the default build 100% Pure Rust end to end, fixes four real security vulnerabilities inherited from earlier “demonstration” code, lands ten development waves (21–30) of algorithmic hardening, and ships oximedia-web, a new package of four browser WebAssembly modules running downstream of WebCodecs for the first time.

No C. No C++. No Fortran. As of 0.1.9, cargo check --workspace compiles zero aws-lc-sys, libsqlite3-sys, mlua-sys, shaderc-sys, zstd-sys, openssl-sys, rustfft, or realfft — all of them now absent from the default dependency graph, not merely unused. OxiMedia compiles to a single static binary (or to wasm32-unknown-unknown for the browser) and runs everywhere with one cargo add.

Why OxiMedia 0.1.9 is a game changer

FFmpeg and OpenCV are the de facto standards for media and vision — at a cost:

OxiMedia 0.1.9 ends all of that.

Technical Deep Dive: how the sovereignty push and the security fixes fit together

  1. Pure-Rust infrastructure migration. oximedia-server/oximedia-rights (SQLite → oxisql-sqlite-compat via a sqlx-API-shaped compat shim), oximedia-accel (real Vulkan compute behind the new vulkan-backend feature, Pure-Rust CPU/WebGPU fallback by default), oximedia-automation (Lua behind lua-scripting), oximedia-cloud (official AWS SDK behind aws-sdk, with GenericStorage over reqwest + rustls-rustcrypto covering S3-compatible endpoints by default), oximedia-videoip (QUIC behind quic-quinn).
  2. Security-hardened protocol and data layer. oximedia-net::srt::crypto (AES-CTR + PBKDF2), oximedia-packager::encryption::KeyGenerator (CSPRNG + PBKDF2, now fallible so a CSPRNG failure surfaces instead of silently producing predictable keys), oximedia-container::demux::mp4::boxes (bounds-checked stts/stsc/stsz/stco/co64/stss/ctts parsers), oximedia-mam::collection::CollectionManager (ALLOWED_ASSET_COLUMNS allowlist + BindValue parameter binding), and oximedia-net::webrtc::dtls (honest failure in place of a fabricated handshake).
  3. oximedia-web (web/) — a separate, nested Cargo workspace of four dependency-free wasm32-unknown-unknown crates, each with a hand-written JS/TS wrapper (web/js/, ~1,900 lines combined, matching .d.ts declarations) and a cargo-deny-gated dependency allowlist (web/deny.toml, web/allowed-deps.txt) enforced by local CI-gate shell scripts (build.sh, size-gate.sh, dep-gate.sh), not just convention.
  4. Algorithmic hardening, Waves 21–30. oximedia-calibrate’s least-squares color solver headlines a batch that also fixed six pre-existing bugs (oximedia-restore Wiener-filter gain and wow/flutter processing, oximedia-audio-analysis Hann-window and synthesis attenuation, oximedia-graph node collisions, SILK NSQ SNR), and landed new capability for general use: oximedia-proxy cache warming, oximedia-align bit-exact descriptor caching, and an oximedia-search P@k/R@k/AP/MAP evaluation harness.

Getting Started

cargo add oximedia

Probe a file and transcode it with quality control — straight from the crate’s own docs:

use oximedia::prelude::*;

// Probe a media file
let data = std::fs::read("video.webm")?;
let result = probe_format(&data)?;
println!("Format: {:?}, Confidence: {:.1}%",
    result.format, result.confidence * 100.0);

// Transcode with quality control
let pipeline = TranscodePipeline::builder()
    .input("input.mkv")
    .video_codec(VideoCodec::Av1)
    .audio_codec(AudioCodec::Opus)
    .output("output.webm")
    .build()?;

pipeline.run().await?;

Or reach for the CLI directly:

cargo install oximedia-cli
oximedia probe -i video.webm
oximedia transcode -i input.mkv -o output.webm --codec av1

What’s New in 0.1.9

Tips

This is the foundation

OxiMedia is the pure-Rust media and computer-vision layer of the COOLJAPAN ecosystem, and 0.1.9 leans on its siblings directly:

Repository: https://github.com/cool-japan/oximedia

Star the repo if you think a media framework’s “encryption” should be real cryptography, not homebrew XOR — and its “successful” handshakes should mean what they say.

The era of choosing between FFmpeg’s C memory-safety CVEs and OpenCV’s CMake build hell is over. Pure Rust media is here — fast, safe, and sovereign.

KitaSan at COOLJAPAN OÜ July 14, 2026

↑ Back to all posts