[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "meshbay-hub" version = "0.15.0" description = "MeshBay Hub — identity authority and group registry server" requires-python = ">=3.12" dependencies = [ "meshbay-common>=0.10.0", "fastapi>=0.115", "uvicorn[standard]>=0.30", "sqlalchemy>=2.0", "alembic>=1.13", "asyncpg>=0.30", # PostgreSQL async driver "aiosqlite>=0.20", # SQLite async (tests + dev without PostgreSQL) "httpx>=0.28", "slowapi>=0.1", # rate limiting "PyJWT>=2.9", # JWT EdDSA (also in meshbay-common but explicit here) "websockets>=12.0", # hub→node revocation push ] [project.optional-dependencies] dev = ["pytest>=8", "pytest-asyncio>=0.24", "pytest-timeout>=2.3", "ruff>=0.6", "httpx>=0.28", "argon2-cffi>=21.3"] [project.scripts] meshbay-hub = "meshbay_hub.daemon:main" [tool.hatch.build.targets.wheel] packages = ["src/meshbay_hub"] # RPM/DEB: meshbay-hub # Systemd service: meshbay-hub.service # Config: /etc/meshbay/hub.conf # Data: /var/lib/meshbay/hub/