gomoqt

module
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 6, 2025 License: MIT

README

gomoqt

A Go implementation of Media over QUIC Transfork (MOQT), designed for efficient media streaming over QUIC.

Overview

This implementation follows the MOQ Transfork specification, providing a foundation for building media streaming applications using QUIC transport.

Features

  • MOQT Protocol: Core implementation of the MOQTransfork protocol.
  • WebTransport Support: Supports both WebTransport and raw QUIC connections.
  • Sample Implementations: Provides several code examples for common use cases.

Components

moqt

Implements the main interactions defined by MOQ Transfork.

lomc (Coming Soon)

Implementation of the Low Overhead Media Container. Note: This package is currently under development.

catalog (Coming Soon)

Implementation of the MOQ Catalog for content detection and management. Note: This package is currently under development.

Development

Prerequisites
  • Go 1.22 or later
  • just command runner
Getting Started
  1. Clone the repository:

    git clone https://github.com/OkutaniDaichi0106/gomoqt.git
    cd gomoqt
    
  2. Install the package:

    go get github.com/OkutaniDaichi0106/gomoqt
    
  3. Set up the development environment:

    just dev-setup
    

This command will perform the following:

  • Install the required certificate tools (mkcert).
  • Install development tools (goimports, golangci-lint).
  • Download project dependencies.
  • Generate development certificates.
Development Commands
Running Examples
# Start the echo server
just run-echo-server

# In another terminal, run the echo client
just run-echo-client
Code Quality
# Format code
just fmt

# Run linter
just lint

# Run tests
just test

# Perform overall quality checks (formatting and linting)
just check
Build & Clean
# Build the code
just build

# Clean up generated files
just clean
Examples

The examples directory includes sample applications demonstrating how to use gomoqt:

  • Echo Server and Client (echo/): A simple echo server and client implementation.
  • More samples coming soon…
Documentation

Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository.
  2. Create a feature branch (git checkout -b feature/amazing-feature).
  3. Make your changes.
  4. Verify code quality:
    just fmt
    just lint
    just test
    
  5. Commit your changes (git commit -m 'Add amazing feature').
  6. Push your branch (git push origin feature/amazing-feature).
  7. Open a Pull Request.

License

This project is licensed under the MIT License; see LICENSE for details.

Acknowledgments

Directories

Path Synopsis
examples
internal/transport/mock
Package mock_transport is a generated GoMock package.
Package mock_transport is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL