# Sockudo

> A self-hosted, Pusher-compatible realtime server written in Rust with Protocol V2 support for durable history, horizontal fanout, push notifications, and AI transport.

Sockudo is a high-performance, self-hosted realtime server written in Rust that maintains strict Pusher Protocol V1 compatibility while extending into a durable, distributed platform through Protocol V2. It is licensed under the MIT License and available as an open-source monorepo on GitHub, currently at v4.7.0 as of June 2026.

## What It Is

Sockudo is a WebSocket and HTTP publish server designed for teams that want to own their realtime infrastructure without abandoning the Pusher protocol ecosystem. Protocol V1 keeps existing Channels clients, Laravel Echo integrations, and server SDK expectations intact. Protocol V2 adds `sockudo:` event prefixes, serial continuity, message IDs, recovery, rewind, mutable messages, annotations, tag filtering, deltas, and an optional AI Transport layer — all built on the same fanout core rather than a parallel streaming path.

## Architecture and Deployment Model

Sockudo is structured as a Rust monorepo with a modular workspace of crates, each scoped to a specific responsibility: protocol handling, fanout adapters, cache, queue, rate limiting, metrics, webhooks, push, and AI transport. Horizontal fanout is supported through Redis, Redis Cluster, NATS, RabbitMQ, Google Pub/Sub, Kafka, Pulsar, and Apache Iggy. Storage backends include PostgreSQL, MySQL, DynamoDB, SurrealDB, and ScyllaDB. Deployment options include Docker Compose for local development, Kubernetes via a Helm chart, and cloud platforms. The server exposes Prometheus metrics, health and readiness probes, and webhook delivery out of the box.

Key deployment profiles:
- **Local development**: in-memory adapter, cache, and queue for fast single-node iteration
- **Small production**: Redis adapter with PostgreSQL or MySQL app store
- **High traffic**: Redis Cluster with external queue and SQL or DynamoDB storage
- **AI Transport**: horizontal adapter with shared cache, queue, history, and version store

## SDK Coverage

Sockudo ships official client and server SDKs across multiple runtimes, all maintained in the monorepo:

- **Client SDKs**: JavaScript/TypeScript (`@sockudo/client`), Swift (`SockudoSwift`), Kotlin (`io.sockudo:sockudo-kotlin`), Flutter (`sockudo_flutter`), .NET (`Sockudo.Client`), Python (`sockudo-python`), and an AI Transport TypeScript SDK (`@sockudo/ai-transport`) with React, Vue, Svelte, and Vercel AI SDK helpers
- **Server SDKs**: Node.js, Python, PHP, Ruby, Go, Rust, Java, .NET, and Swift — covering event publishing, channel auth signing, webhook validation, idempotent publishing, history, mutable messages, annotations, and push

## Protocol V2 and Durable Primitives

Protocol V2 is the core differentiator from a plain Pusher drop-in. It introduces hot replay buffers, durable history, opaque cursors, two-tier recovery, presence history snapshots, versioned mutable messages (create, update, delete, append, summary), and message annotations for reactions, receipts, moderation, and summary projection. These primitives are also the foundation for the optional AI Transport feature, which layers agent streams, rollups, push, and recovery on the same channel infrastructure rather than requiring a separate streaming service.

## Update: v4.7.0

The latest release is Sockudo v4.7.0, published on June 28, 2026. The repository was last pushed to on August 1, 2026, indicating active development. The project has accumulated 793 GitHub stars and 57 forks since its creation in November 2024. The 2026 SDK publishing runbook and protected CI workflows manage package releases across npm, PyPI, Packagist, Maven, NuGet, SwiftPM, and crates.io. The optional `ably-compat` feature flag exposes a reduced Ably AI Transport compatibility surface for teams migrating from or testing against Ably's realtime protocol.

## Features
- Pusher Protocol V1 compatibility
- Protocol V2 with serials, message IDs, recovery, and rewind
- Horizontal fanout via Redis, Redis Cluster, NATS, RabbitMQ, Kafka, Pulsar, Google Pub/Sub, Apache Iggy
- Durable history and hot replay buffers
- Versioned mutable messages (create, update, delete, append)
- Message annotations (reactions, receipts, moderation, summaries)
- Presence membership and presence history snapshots
- Push notifications for FCM, APNs, Web Push, HMS, WNS
- Optional AI Transport layer with rollup and recovery
- Optional Ably AI Transport compatibility facade
- Prometheus metrics and health/readiness probes
- Webhook delivery with retries
- Rate limiting and app-level quotas
- TLS support
- Docker Compose and Helm/Kubernetes deployment
- Tag filtering and delta compression
- Idempotent event publishing
- Multi-language client and server SDKs
- Dashboard UI and operator API

## Integrations
Redis, Redis Cluster, NATS, RabbitMQ, Apache Kafka, Apache Pulsar, Google Pub/Sub, Apache Iggy, PostgreSQL, MySQL, DynamoDB, SurrealDB, ScyllaDB, AWS SQS, AWS SNS, AWS Lambda, FCM (Firebase Cloud Messaging), APNs (Apple Push Notification service), Web Push, HMS (Huawei Mobile Services), WNS (Windows Notification Service), Prometheus, Laravel Echo, Pusher JS, Vercel AI SDK, React, Vue, Svelte, Kubernetes, Docker Compose, Helm

## Platforms
ANDROID, IOS, WEB, API, DEVELOPER_SDK, CLI

## Pricing
Open Source

## Version
v4.7.0

## Links
- Website: https://sockudo.io/
- Documentation: https://sockudo.io/docs
- Repository: https://github.com/sockudo/sockudo
- EveryDev.ai: https://www.everydev.ai/tools/sockudo
