Roadmap
This is a practical validation list, not a promise that every item will land in the next release.
Core Protocol
- Done: Realtek RX aggregate parsing.
- Done: OpenIPC/WFB frame filtering.
- Done: WFB session/data decryption.
- Done: Reed-Solomon FEC recovery.
- Done: RTP H.264/H.265 depacketization.
- Still useful: add captured hardware fixtures and cross-check them against aviateur/openipc-zig.
Realtek Driver
- Done: register helpers around vendor request
0x05. - Done: endpoint discovery and OUT endpoint selection.
- Done: VID/PID targeting and bulk-OUT endpoint override for native and WebUSB paths.
- Done: firmware/table data checked into the Rust driver crate.
- Done: RTL8812/RTL8821 bring-up paths.
- Done: RTL8814 reserved-page/DDMA firmware path.
- Done: TX descriptor support for adaptive-link feedback.
- Done: runtime TX-mode/radiotap parsing for legacy, HT, and VHT transmit.
- Done: multi-transfer bulk-IN receive loops for native and desktop station paths, plus a batch WebUSB read API.
- Done: C2H packet handling, RTL8814 TX-status parsing, and optional corrupted-FCS packet retention for diagnostics.
- Done: Devourer-compatible USB TX aggregation, A-MPDU descriptor/pacing controls, Jaguar1/HalMAC CCX reports, and hardware ACK/BlockAck response.
- Done: thermal, false-alarm counters, RTL8814 queue-depth, BB-register, and BB-dbgport diagnostics.
- Done: EFUSE-backed MAC/RFE parsing and RFE-aware table loading.
- Done: EFUSE TX-power PG parsing, per-rate TXAGC writes, optional 8812A by-rate offsets, and regulatory limit table support.
- Done: devourer-style RTL8812/RTL8821/RTL8814 band-switch and RFE pinmux programming.
- Done: RTL8812 thermal power tracking, RTL8812 IQK, RTL8814 IQK, and the monitor-mode PHYDM DIG watchdog.
- Done: Jaguar3 RTL8812CU/EU and RTL8822CU/EU detection, firmware/tables, descriptors, narrowband and 40/80 MHz channel setup, 40-in-80 TX, EFUSE/RFE handling, DACK/IQK, RTL8822E TXGAPK/thermal tracking, coex maintenance, and clean shutdown.
- Done: Jaguar2 RTL8812BU/RTL8822BU cold-start firmware, MAC/USB, EFUSE/RFE, BB/RF tables, IQK/DIG, RX, and TX paths.
- Done: Jaguar1/2/3 explicit sounding, beamforming report detection, CSI tone masks, and NBI notch controls on native and WebUSB.
- Done: devourer-compatible runtime switches for skipping TX power, forcing or disabling IQK/TXGAPK, selecting the RTL8814 firmware path/chunk size, and testing the legacy RTL8814 TX descriptor shape.
- Done: diagnostics exposed as explicit tick/read APIs rather than hidden library pollers.
- Still needed: hardware smoke tests and trace comparisons per chip family.
Native And Desktop
- Done: native receive loop.
- Done: RTP-over-UDP mirror.
- Done: Annex-B output.
- Done: native adaptive-link uplink.
- Done: Nebulus native/Android renderer with platform decoders and latest-frame presentation.
- Done: Nebulus profiles, editable HUD, preflight, automatic native recovery, idle native/WebUSB channel survey, and sanitized support bundles.
- Done: packet-level multiple-adapter receive diversity on desktop, Android, and WebUSB with one shared WFB/FEC/RTP pipeline.
Browser
- Done: WebUSB permission prompt in JavaScript.
- Done: Rust/WASM
nusbWebUSB receive/transmit object. - Done: shared Realtek monitor initialization through WebUSB.
- Done: WebCodecs playback, recording, persisted settings, and link HUD.
- Still useful: fallback playback path for browsers without WebCodecs support for the active codec.
Release And Distribution
- Done: crates.io metadata and crate READMEs.
- Done: generated npm package metadata for
@openipc-rs/web. - Done: GitHub Actions validation, Cloudflare Pages deploys, npm trusted publishing, crates.io publishing, and Nebulus desktop/Android release jobs.
- Still useful: signed and notarized desktop releases.
- Still useful: a hardware test matrix that records adapter model, chip family, OS, browser, cold-start result, RX result, and adaptive-link TX result.