Skip to content

Latest commit

 

History

History
92 lines (84 loc) · 6.47 KB

README.md

File metadata and controls

92 lines (84 loc) · 6.47 KB

gomoqt

gomoqt is an original implementation of Media over QUIC in Golang, based on MOQTransport and MOQTransfork.

Features and Differences

1. Streams

Streams completely based on MOQTranfork draft04.

2. Messages

Messages primarily based on MOQTransfork, some messages and fields are derived from MOQTransport

Differences from MOQTransfork draft04

  • GOAWAY messages are transmitted on the Session Stream.
  • GROUP messages have a Publisher Priority field.
  • Two types of priorities: Subscriber Priority and Publisher Priority are implemented
  • No Track Path Parts field

Implemented sections

Section Implemented Tested
2. Data Model
2.1. Frame
2.3. Group
2.4. Track
2.4.1. Track Naming and Scopes 🚧
2.4.2. Scope 🚧
2.4.3. Connection URL 🚧
3. Sessions
3.1. Session establishment
3.1.1. WebTransport
3.1.2. QUIC
3.2. Version and Extension Negotiation
3.3. Session initialization
3.4. Stream Cancellation 🚧
3.5. Termination
3.6. Migration 🚧
4. Data Transmittions
4.1 Publisher Priority Control 🚧
4.2 Subscriber Priority Control 🚧
4.3 Group Order Control 🚧
4.4 Cache 🚧
5. Relays
5.1. Subscriber Interactions
5.1.1. Graceful Publisher Relay Switchover
5.2. Publisher Interactions
5.2.1. Graceful Publisher Network Switchover
5.2.2. Graceful Publisher Relay Switchover
5.3. Relay Object Handling 🚧
Control Streams
6.1. Session Stream
6.2. Announce Stream
6.3. Subscribe Stream
6.4. Fetch Stream
6.5. Info Stream
Control Messages
6.1. Parameters 🚧
6.1.1. Version Specific Parameters
6.2. SESSION_CLIENT
6.2. SESSION_SERVER
6.2. SESSION_UPDATE 🚧
6.2.1. Versions
6.2.2. Setup Parameters
6.3. GOAWAY
6.4. ANNOUNCE_INTEREST
6.5. ANNOUNCE
6.6. SUBSCRIBE
6.7. SUBSCRIBE_UPDATE
6.12. SUBSCRIBE_GAP 🚧
6.8. INFO
6.9. INFO_REQUEST
6.10. FETCH
6.11. FETCH_UPDATE
Data Stream
7.3. Group Streams
Data Message
7.2. GROUP
7.2. FRAME
Datagram
7.2. Datagram
Security Considerations
8.1. Resource Exhaustion

Interoperablity test

We haven't conducted interoperability testing with other implementations yet

TODO

  • ANNOUNCE message's Status field
  • Priority Control
  • Handling the Group Expires
  • LOC (Low Overhead Container)
  • Common Catalog Format for moq