Show HN: Rav2d – AV2 video decoder ported from C to Rust (47K lines, 786 tests)
Rav2d is a Rust port of the AV2 video decoder dav2d, aimed at enhancing speed and memory safety. The project is currently in early development, with the AV2 specification still not finalized. It offers a drop-in C API for existing users and a native Rust API for better integration within the Rust ecosystem.
- ▪Rav2d focuses on bit-exact AV2 decoding and memory safety for parsing and decoding logic.
- ▪The project utilizes shared assembly optimizations with dav2d through FFI.
- ▪It includes a command-line decoder tool and aims for conformance testing against dav2d test data.
Opening excerpt (first ~120 words) tap to expand
rav2d rav2d is a Rust port of dav2d, a cross-platform AV2 video decoder focused on speed, correctness, and memory safety. Status: Early development. The AV2 specification is not yet finalized. Do not use in production. Goals Bit-exact AV2 decoding, matching dav2d output Memory safety for all parsing and decode logic (where most CVEs occur) Shared assembly optimizations with dav2d via FFI (x86 SSE/AVX2/AVX-512, ARM Neon, RISC-V, LoongArch) Drop-in C API compatibility for existing dav2d consumers Native Rust API for Rust ecosystem integration Crate Structure Crate Description rav2d Main decoder library with safe Rust API rav2d-sys Raw FFI bindings to dav2d C/asm rav2d-cli Command-line decoder tool Approach Following the proven rav1d strategy: FFI bindings to dav2d's hand-optimized assembly…
Excerpt limited to ~120 words for fair-use compliance. The full article is at GitHub.