프로젝트 소개

moqt-rs는 Rust로 구현된 Sans-I/O 및 no_std 지원 Media over QUIC Transport (MOQT) 라이브러리입니다. MOQT / LOC / MSF 코덱과 단일 Transport Session에 국한된 세션 상태 머신을 제공합니다. 주요 특징: - Sans-I/O 설계로 I/O, 비동기 처리, relay 기능은 포함하지 않음 - no_std 지원, 의존성은 hashbrown / noflate / nojson 3개뿐 - 버퍼링된 증분 디코더 (MessageDecoder / SubgroupStreamDecoder / FetchStreamDecoder) - FETCH 응답의 델타 압축 인코더 (FetchStreamEncoder) - 지원 사양: MOQT draft-21, LOC draft-04, MSF draft-01 사용 방법: - 제어 메시지 encode/decode: ControlMessage를 Type | Length | Message Body 형식으로 처리 - 증분 디코딩: QUIC/WebTransport의 프레임 경계와 메시지 경계가 일치하지 않으므로 push + try_decode 패턴으로 디코딩 - 세션: Session은 I/O가 없는 순수 상태 머신. new_client / new_server로 생성하고 poll_event()로 이벤트 획득 - 카탈로그 및 타임라인: MSF 카탈로그 문서나 미디어/이벤트 타임라인을 JSON과 상호 변환, gzip 압축 지원 샘플로 moqt-publisher, moqt-subscriber, moqt-transport가 포함되어 있으며 Tokio, s2n-quic, shiguredo_http3을 사용합니다. Agent Skills 형식의 스킬도 포함되어 있어 AI 에이전트에 설치하여 API 및 사양 이해를 지원할 수 있습니다. 라이선스는 Apache License 2.0입니다.