Draft 11-compliant Media-over-QUIC (MoQ) libraries for publisher, subscriber (moqtail-ts) and relay (moqtail-rs) components with a sample application using the Low Overhead Media Container (LOC) format.
The TypeScript client library for Media-over-QUIC (MoQ) applications, designed for seamless integration with WebTransport and MoQ relay servers.
- 🛡️ TypeScript: Type-safe development
- 🔗 WebTransport: Next-gen transport protocol support
- 🔥 Hot Module Reloading: Instant feedback during development
README available at: moqtail-ts/README.md
- Node.js (v18+ recommended)
- npm
- MOQtail Relay running with valid certificates
# Clone the repository (if not already)
git clone https://github.com/streaming-university/moqtail.git
# Install dependencies
npm install
cd ./apps/client-js-demo
# Install dependencies
npm install
# Run the development server
npm run dev
cd ./apps/relay
cargo run --bin moqtail-relay -- --port 4445 --cert-file fullchain.pem --key-file privkey.pem
The app will be available at http://localhost:5173 by default.
cd ./apps/ws-server
# Install dependencies
npm install
# Run the development server
npm run start
# or
npm run dev # for nodemon hot-reload
The app will be available at http://localhost:5173 by default.
apps/client-js-demo/
├── public
│ ├── ...
├── src
│ ├── App.tsx
│ ├── composables
│ │ └── useVideoPipeline.ts
│ ├── contexts
│ │ └── SessionContext.tsx
│ ├── index.css
│ ├── main.tsx
│ ├── pages
│ │ ├── JoinPage.tsx
│ │ └── SessionPage.tsx
│ ├── sockets
│ │ └── SocketContext.tsx
│ ├── startup.ts
│ ├── types
│ │ ├── AppSettins.ts
│ │ └── types.ts
│ ├── videoUtils.ts
│ ├── vite-env.d.ts
│ └── workers
│ ├── decoderWorker.ts
│ └── pcmPlayerProcessor.js
├── ...
- WebTransport: Ensure your browser supports WebTransport and that you have trusted the local CA, see relay/cert/README.md
- Environment Variables: You can configure endpoints and other settings in
.env
files.
Contributions are welcome! Please open issues or submit pull requests for improvements, bug fixes, or documentation updates.