PrivChat Server

The realtime core, built in Rust.

One server binary carries messaging, channel events, and typed RPC over QUIC, TCP, and WebSocket — open source, self-hosted, and already running production messaging, payments, and games.

Why this server

Six reasons teams pick PrivChat Server.

Not a feature list — the structural decisions that make the difference in production.

Rust, end to end

Memory safety without a garbage collector: no GC pauses in the hot path, predictable latency, and a single static binary to deploy.

Three transports, one protocol

QUIC for modern low-latency paths, TCP for compatibility, WebSocket for browsers — one wire contract across all of them.

One channel model for everything

Messages, presence, game events, bot replies, and business pushes ride the same channels — one model to operate and reason about.

Typed transfer RPC built in

Request-response routes run over the live connection. Backend modules add capabilities without new endpoints or sidecar services.

Server-authoritative by design

Message ids, sequence points, read cursors, and recovery live on the server — multi-device sync stays correct, clients stay fast.

Your infrastructure, your data

Fully self-hosted with no phone-home. Data sovereignty and compliance stay in your hands, not a vendor's.

Ready to operate

Built for day two, not just day one.

Observability, push, storage, and deployment — the infrastructure it takes to actually run an IM service. The full user-facing feature list lives on the chat page.

Ops & observability

Prometheus /metricsHealth checksAdmin service APIEmbedded migrationsGraceful shutdown

Offline push pipeline

Planner/worker orchestrationAPNS / FCM / Huawei HMSXiaomi / OPPO / vivo / Honor & more

Files & storage

Local + S3-compatible backendsOSS / COS / MinIO / GaragePowered by OpenDALUpload tokens & validation

Deployment shape

One static binaryDocker / ComposePostgreSQL + RedisConfig: TOML + env vars

Security & trust

Security is the starting point, not a checkbox.

From transport to credentials to abuse protection, the mechanisms below are built into the server itself. End-to-end encryption (Signal-protocol direction) is on the public roadmap — stated here honestly, not oversold.

Transport encryption

TLS 1.3 native to QUICWebSocket over wssYour own certificatesNo third-party relay

Auth & credentials

RS256 signing + JWKSAccess + refresh tokensToken revocationbcrypt password hashingService-to-service keys

Tamper-proof by design

No message editing — by designStops edit-based address scams2-minute revoke + resendVisible revoke markerServer-authoritative message ids

Abuse protection

Four-stage enforcement state machineTrust-based dynamic throttlingUser / RPC / session / group rate limitsFan-out cost accountingShadow banObserve-first rollout

Privacy controls

Server-enforced privacy policySource-aware access checksPersisted per-user controlsIP protection

Data sovereignty

Fully self-hostedNo phone-homeYour database, storage & keysS3-compatible private storage

Where it sits

The backbone under every surface.

Clients speak one protocol to the server core; application modules — IM, wallet, game, admin, assistant — consume the same backbone.

Get started

Clone it, run it, own it.

The server is open source. Start from the repository README, then bring the SDKs and your product on top.

Explore open source