Skip to main content
Rust coreNative desktopWASM + WebUSB

openipc-rs

A clean Rust implementation of the OpenIPC receive path, built for native ground stations, browser WebUSB apps, and reusable protocol libraries.

receiver stackshared logic first
01USB bulk IN
02Realtek aggregate
03WFB decrypt/FEC
04RTP depacketize
05Annex-B frames
06WebCodecs/player
TargetsLinux, macOS, Windows, browser
OutputH.264/H.265 Annex-B frames
Choose A Path

Build an app, inspect the protocol, or work on hardware.

Run The Station

Build the browser/WebUSB app or the Tauri desktop shell from the same React UI.

Start Here

Use The Rust Crates

Embed the receiver pipeline, Realtek parser, WFB/FEC logic, and adaptive-link helpers.

Rust Examples

Use The WASM SDK

Request a WebUSB adapter, initialize monitor mode, receive Annex-B frames, and feed WebCodecs.

WASM Examples

Understand The Driver

Follow the Realtek USB bring-up boundary, shared HAL, and hardware validation status.

Driver Notes
What Is Shared

The packet path lives in Rust.

Native and web builds share Realtek RX parsing, WFB session and data handling, Reed-Solomon recovery, RTP depacketization, adaptive-link feedback generation, and TX packet construction.

let packets = parse_rx_aggregate(&transfer)?;
for packet in packets {
    let events = pipeline.push_80211_frame(packet.data)?;
    // VideoFrame events carry Annex-B H.264/H.265.
}
Reference Material

Grounded in the projects that already work.