https://github.com/nttcom/moq-wasm
https://github.com/nttcom/moq-wasm
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/nttcom/moq-wasm
- Owner: nttcom
- License: mit
- Created: 2023-12-19T04:33:41.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2026-01-29T12:33:59.000Z (about 2 months ago)
- Last Synced: 2026-01-30T02:41:09.468Z (about 2 months ago)
- Language: Rust
- Size: 3.61 MB
- Stars: 44
- Watchers: 4
- Forks: 5
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MoQ WASM
Both server and browser client are written in Rust.
## Demo page
Being Deployed to Github Pages.
- https://nttcom.github.io/moq-wasm/
## Implementation
Supported version: draft-ietf-moq-transport-10
- [ ] Control Messages
- [x] CLIENT_SETUP / SERVER_SETUP
- [ ] GOAWAY
- [x] ANNOUNCE
- [x] SUBSCRIBE
- [ ] SUBSCRIBE_UPDATE
- [ ] UNSUBSCRIBE
- [x] ANNOUNCE_OK
- [x] ANNOUNCE_ERROR
- [ ] ANNOUNCE_CANCEL
- [ ] TRACK_STATUS_REQUEST
- [x] SUBSCRIBE_ANNOUNCES
- [ ] UNSUBSCRIBE_ANNOUNCES
- [x] SUBSCRIBE_OK
- [x] SUBSCRIBE_ERROR
- [ ] SUBSCRIBE_DONE
- [ ] MAX_SUBSCRIBE_ID
- [x] ANNOUNCE
- [ ] UNANNOUNCE
- [ ] TRACK_STATUS
- [x] SUBSCRIBE_ANNOUNCES_OK
- [x] SUBSCRIBE_ANNOUNCES_ERROR
- [ ] FETCH
- [ ] FETCH_OK
- [ ] FETCH_ERROR
- [ ] FETCH_CANCEL
- [x] Data Streams
- [x] Datagram
- [x] Subgroup Stream
- [ ] Features
- [x] Manage Publisher / Subscriber
- [x] Forword Messages
- [ ] Priorities
- [x] Object Cache
## Modules
### moqt-core
- Core module for both server and client
- Includes handlers and data structures
### moqt-server
- Module for server application
- Only for WebTransport
- Using [`wtransport`](https://github.com/BiagioFesta/wtransport)
### moqt-server-sample
- Sample server application
- Supported Roles: PubSub
### moqt-client-wasm
- Module for browser client and sample browser client application
- Supported Roles: Publisher, Subscriber, PubSub
## How to run
### Generating public and private keys for the server
```shell
cd moqt-server-sample
mkdir keys
cd keys
openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -out cert.pem -subj '/CN=Test Certificate' -addext "subjectAltName = DNS:localhost"
```
### Run moqt-server-sample
- `make server`
if you want to watch tokio tasks, use tokio-console
```shell
cargo install tokio-console
tokio-console
```
#### Specify the log level
```shell
make server-trace
or
# Default setting is `DEBUG`
cargo run -p moqt-server-sample -- --log
```
### Run moqt-client-wasm
```shell
cd js && npm install
make client
```
- Add a certificate and Enable WebTransport feature in Chrome
```shell
# For Mac users
make chrome
```