Об этом проекте
moqt-rs — это реализованная на Rust библиотека Media over QUIC Transport (MOQT) с поддержкой Sans-I/O и no_std. Она предоставляет кодеки MOQT / LOC / MSF и конечный автомат сессии, замкнутый на одну Transport Session.
Основные особенности:
- Дизайн Sans-I/O: не включает I/O, асинхронную обработку и функции relay
- Поддержка no_std, всего три зависимости: hashbrown / noflate / nojson
- Буферизованные инкрементальные декодеры (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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.