Skip to main content

Python asyncio implementation of the MoQT protocol

Project description

aiomoqt - Media over QUIC Transport (MoQT)

aiomoqt is an implementaion of the MoQT protocol, based on aioquic and asyncio.

Overview

This package aims to faithfully implement the MoQT Specification (currently draft-08). It is desinged and intended to satisfy a variety of use-cases to operate as a test tool, faciliate education, and adoption of the protocol. It is also designed to support a variety of production use cases (TBD).

Featurtes

  • A session protocol class maintaining an MoQT message registry for control message types.
  • Serialization and deserialization of messages and data streams.
  • An extensible API allowing custom handlers for responses and incoming messages.
  • Support for both asynchronous and synchronous calls using the wait_response flag.

🚀 Status: Alpha

Installation

Install using pip:

pip install aiomoqt

Or using uv:

uv pip install aiomoqt

Usage

Basic Client Example

import asyncio
from aiomoqt.client import MOQTClientSession

async def main():
    client = MOQTClientSession(host='localhost', port=4433)
    async with client.connect() as session:
        response = await session.initialize()
        response = await session.subscribe('namespace', 'track_name', wait_response=True)
        await session._moqt_session_close

asyncio.run(main())

see aiomoqt-python/aiomoqt/examples for more additional examples

Development

To set up a development environment:

git clone https://github.com/gmarzot/aiomoqt-python.git
cd aiomoqt-python
./bootstrap_python.sh
source .venv/bin/activate
uv pip install .

Contributing

Contributions are welcome! If you'd like to contribute, please:

  • Fork the repository on GitHub.
  • Create a new branch for your feature or bug fix.
  • Submit a pull request with a clear description of your changes.

For major changes, please open an issue first to discuss your proposal.

Resources


Acknowledgements

This project takes inspiration from, and has benefited from the great work done by the Meta/moxygen team, and the efforts of the MOQ IETF WG.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiomoqt-0.2.2.tar.gz (24.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aiomoqt-0.2.2-py3-none-any.whl (28.1 kB view details)

Uploaded Python 3

File details

Details for the file aiomoqt-0.2.2.tar.gz.

File metadata

  • Download URL: aiomoqt-0.2.2.tar.gz
  • Upload date:
  • Size: 24.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for aiomoqt-0.2.2.tar.gz
Algorithm Hash digest
SHA256 bf84913a14b3d0974c303afbb54160518f667fbe691d39f7d6a6aef9d9b25f6f
MD5 4c1185cf62022a76b2db69fef21bc742
BLAKE2b-256 bbc96f515a393a8148112c6f9b5172ce8cb5512b6eec0bc8eeaa6a0d2c01aa92

See more details on using hashes here.

File details

Details for the file aiomoqt-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: aiomoqt-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 28.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for aiomoqt-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d264e0d216319437fbbb82c8925c5d0e3f902bdc11e7891de4c7ec3ca46e3582
MD5 2d947ee7c89c92d796568994b4d2d7d0
BLAKE2b-256 5af18799ba973f32e9ee1f5528d6d9295d3932af08ab7bb0f68c5f6a850186c8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page