How wireapp/wire-server works
Wire Server is a self-hostable messaging backend. Clients enter through the public API reverse proxy; the repository README identifies the major service responsibilities, but does not document their runtime call graph, so service-to-service links are omitted. The sampled sources also expose an MLS performance client and a reusable ZAuth library; their internal links are shown where the excerpts or source index establish them. Other service capabilities are represented from README descriptions, not inspected implementation.
Main entry points: lib.rs ZAuth Library · performance.py MLS Performance Tool · context.py Service Context · conversions.py ID Conversions
Components 23
API Edge
- API Proxy
services/nginz
Wire Services
- Accounts
services/brig - Teams & Chats
services/galley - Push Hub
services/gundeck - WebSocket Push
services/cannon - Asset Storage
services/cargohold - API Integrations
services/proxy - SSO & SCIM
services/spar - Federation
services/federator - Background Jobs
services/background-worker
Authentication
- ZAuth Library
libs/libzauth/libzauth/src/lib.rs - Token Verification
libs/libzauth/libzauth/src/zauth.rs - OAuth Scopes
libs/libzauth/libzauth/src/oauth.rs - Access Rules
libs/libzauth/libzauth/src/acl.rs - Rule Matching
libs/libzauth/libzauth/src/matcher.rs
Client Utilities
- MLS Performance Tool
hack/bin/performance.py - HTTP API Helpers
hack/python/wire/api.py - Service Context
hack/python/wire/context.py - MLS CLI Wrapper
hack/python/wire/mlscli.py - ID Conversions
hack/python/wire/conversions.py - HTTP Responses
hack/python/wire/response.py - Frozen Mapping
hack/python/wire/frozendict.py
Other components
- Wire Client
Connections 13
- Wire Client → API Proxy: sends API requests
- ZAuth Library → Token Verification: exports
libs/libzauth/libzauth/src/lib.rs - ZAuth Library → OAuth Scopes: exports
libs/libzauth/libzauth/src/lib.rs - ZAuth Library → Access Rules: exports
libs/libzauth/libzauth/src/lib.rs - ZAuth Library → Rule Matching: declares
libs/libzauth/libzauth/src/lib.rs - MLS Performance Tool → HTTP API Helpers: uses
hack/bin/performance.py - MLS Performance Tool → MLS CLI Wrapper: uses
hack/bin/performance.py - MLS Performance Tool → ID Conversions: uses
hack/bin/performance.py - Service Context → HTTP API Helpers: dispatches to
hack/python/wire/context.py - Service Context → ID Conversions: uses
hack/python/wire/context.py - Service Context → HTTP Responses: wraps response
hack/python/wire/context.py - ID Conversions → Frozen Mapping: uses
hack/python/wire/conversions.py - HTTP Responses → Frozen Mapping: uses
hack/python/wire/response.py