Metadata-Version: 2.4
Name: hirogate
Version: 0.1.3
Summary: WebSocket relay gateway server for Hiro-League
Project-URL: Homepage, https://www.hiroleague.com
Project-URL: Documentation, https://docs.hiroleague.com
Project-URL: Repository, https://github.com/hiro-league/hiroleague
Project-URL: Issues, https://github.com/hiro-league/hiroleague/issues
Author-email: Michel Habib <michelhabib@gmail.com>
License: MIT
Keywords: gateway,home,relay,server,websocket
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: System Administrators
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.11
Requires-Dist: cryptography>=43
Requires-Dist: hiro-channel-sdk~=0.1.3
Requires-Dist: hiro-commons~=0.1.3
Requires-Dist: platformdirs>=4
Requires-Dist: pydantic>=2
Requires-Dist: rich>=13
Requires-Dist: typer>=0.12
Requires-Dist: websockets>=12
Description-Content-Type: text/markdown

# Hiro Gateway

**Hiro Gateway** — WebSocket relay server.

Accepts connections from Hiro desktop servers and online apps, performs
challenge/response authentication, and relays messages between authenticated
devices identified by `device_id`.

## Quick Start

TBD

## How it works

1. Every new socket receives an auth challenge nonce.
2. A desktop client authenticates using its master key (`auth_mode=desktop`) against
   the desktop trust root configured at startup (`--desktop-pubkey`).
3. A device client authenticates with desktop attestation + nonce signature
   (`auth_mode=device`).
4. Once authenticated, messages are relayed by `device_id`.

## Message Format

TBD