Sobre el proyecto
moqt-rs es una biblioteca de Media over QUIC Transport (MOQT) implementada en Rust, con diseño Sans-I/O y soporte no_std. Proporciona codecs para MOQT / LOC / MSF y una máquina de estados de sesión limitada a una única sesión de transporte.
Características principales:
- Diseño Sans-I/O: no incluye E/S, procesamiento asíncrono ni funciones de relay.
- Soporte no_std: solo depende de hashbrown, noflate y nojson.
- Decodificador incremental con búfer (MessageDecoder / SubgroupStreamDecoder / FetchStreamDecoder).
- Codificador de compresión delta para respuestas FETCH (FetchStreamEncoder).
- Especificaciones compatibles: MOQT draft-21, LOC draft-04, MSF draft-01.
Uso:
- Codificación/decodificación de mensajes de control: ControlMessage se maneja en formato Type | Length | Message Body.
- Decodificación incremental: dado que los límites de trama de QUIC/WebTransport no coinciden con los límites de mensaje, se decodifica con el patrón push + try_decode.
- Sesión: Session es una máquina de estados pura sin E/S. Se crea con new_client / new_server y se obtienen eventos con poll_event().
- Catálogo y línea de tiempo: conversión mutua entre documentos de catálogo MSF o líneas de tiempo de medios/eventos y JSON, con soporte de compresión gzip.
Se incluyen ejemplos como moqt-publisher, moqt-subscriber y moqt-transport, que utilizan Tokio, s2n-quic y shiguredo_http3.
También se incluyen habilidades en formato Agent Skills, que pueden instalarse en agentes de IA para ayudar a comprender la API y las especificaciones.
La licencia es Apache License 2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.