A unified test client for the MOQtail relay, supporting publish, subscribe, and fetch operations over MoQ Transport (draft-14). Supports both subgroup (unidirectional streams) and datagram object forwarding preferences.
cargo run --bin client -- --command <COMMAND> [OPTIONS]
| Command | Description |
|---|---|
publish |
Publish objects to a track |
publish-namespace |
Publish a namespace and auto-respond to subscribes |
subscribe |
Subscribe to a track and receive objects |
fetch |
Fetch specific object ranges from a track |
| Option | Short | Default | Description |
|---|---|---|---|
--command |
-c |
(required) | Command to run |
--server |
-s |
https://127.0.0.1:4433 |
Server address |
--namespace |
-n |
moqtail |
Track namespace |
--track-name |
-T |
demo |
Track name |
--no-cert-validation |
false |
Skip certificate validation | |
--forwarding-preference |
subgroup |
Object forwarding preference (subgroup or datagram) |
| Option | Short | Default | Description |
|---|---|---|---|
--group-count |
100 |
Number of groups to send | |
--interval |
-i |
1000 |
Interval between objects in milliseconds |
--objects-per-group |
10 |
Number of objects per group | |
--payload-size |
1200 |
Payload size in bytes | |
--track-alias |
(random) | Track alias (random if not specified) |
| Option | Short | Default | Description |
|---|---|---|---|
--duration |
-d |
0 |
Duration to listen in seconds (0 = indefinite) |
| Option | Default | Description |
|---|---|---|
--start-group |
1 |
Start group ID |
--start-object |
0 |
Start object ID |
--end-group |
5 |
End group ID |
--end-object |
3 |
End object ID |
--cancel-after |
0 |
Cancel the fetch after receiving N objects (0 = off) |
Publish 50 groups of datagrams at 500ms intervals:
cargo run --bin client -- -c publish --forwarding-preference datagram --group-count 50 --interval 500
Subscribe to datagrams for 30 seconds:
cargo run --bin client -- -c subscribe --forwarding-preference datagram --duration 30
Subscribe to subgroup streams indefinitely:
cargo run --bin client -- -c subscribe
Fetch objects from groups 0-10:
cargo run --bin client -- -c fetch --start-group 0 --end-group 10
Connect to a remote server with certificate validation disabled:
cargo run --bin client -- -c publish --server https://relay.example.com:4433 --no-cert-validation