/mautrix-python

A Python 3 asyncio Matrix framework.

Primary LanguagePythonMozilla Public License 2.0MPL-2.0

mautrix-python

PyPI: mautrix Python versions License: MPL-2.0 Docs Code style Imports

A Python 3.8+ asyncio Matrix framework.

Matrix room: #maunium:maunium.net

Components

  • Basic HTTP request sender (mautrix.api)
  • Client API endpoints as functions (mautrix.client.api)
  • Medium-level application service framework (mautrix.appservice)
    • Basic transaction and user/alias query support (based on Cadair's python-appservice-framework)
    • Basic room state storage
    • Intent wrapper around the client API functions (design based on matrix-appservice-bridge)
  • Medium-level end-to-end encryption framework (mautrix.crypto)
    • Handles all the complicated e2ee key exchange
    • Uses libolm through python-olm for the low-level crypto
  • High-level bridging utility framework (mautrix.bridge)
    • Base class for bridges
    • Common bridge configuration and appservice registration generation things
    • Double-puppeting helper
    • End-to-bridge encryption helper
  • High-level client framework (mautrix.client)
    • Syncing and event handling helper.
    • End-to-end encryption helper.
  • Utilities (mautrix.util)
    • Matrix HTML parsing and generating utilities
    • Manhole system (get a python shell in a running process)
    • YAML config helpers
    • Database helpers (new: asyncpg, legacy: SQLAlchemy)
    • Color logging utility
    • Very simple HMAC-SHA256 utility for signing tokens (like JWT, but hardcoded to use a single good algorithm)