Production-Ready Realtime Infrastructure
Choose an install path
Run docker compose up -d to start Sockudo on :6001.
services: sockudo: image: ghcr.io/sockudo/sockudo:latest ports: ["6001:6001"] volumes: ["./config.toml:/app/config.toml"]Why Sockudo?
Blazing Fast
Written in Rust with async I/O. Handle millions of concurrent connections with minimal resource usage. Scales horizontally with Redis, Redis Cluster, NATS, Pulsar, RabbitMQ, Google Pub/Sub, or Kafka.
Drop-in Compatible
Keep your existing Pusher integrations. Works seamlessly with pusher-js, Laravel Echo, and all official Pusher SDKs. Migrate without changing client code.
Advanced Features
Delta compression with conflation keys reduces bandwidth by 80-95%. Server-side tag filtering sends only relevant messages to clients.
Production Ready
Built-in rate limiting, origin validation, per-app quotas, health checks, Prometheus metrics, and webhook batching. Deploy with confidence.
Flexible Storage
Store app configs in memory, MySQL, PostgreSQL, DynamoDB, ScyllaDB, or Redis. Choose what fits your infrastructure.
Multi-Client SDKs
Official JavaScript, Swift, Kotlin, and Flutter clients with filter subscriptions, encrypted channels, and delta reconstruction.
Core Features
Lightning Fast Websockets
Written in Rust with async I/O. Handle millions of concurrent connections with minimal resource usage.
$ sockudo --config config.toml[INFO] Listening on :6001[INFO] Ready for websocket trafficDrop-in Pusher Replacement
Keep your existing Pusher integrations. Works seamlessly with pusher-js, Laravel Echo, and all official SDKs.
const pusher = new Pusher("app-key", { wsHost: "127.0.0.1", wsPort: 6001,});Delta Compression
Send only message differences instead of full payloads. Conflation keys group messages by entity for 80-95% bandwidth savings.
client.subscribe("ticker:btc", { delta: { enabled: true, algorithm: "xdelta3", },});Tag Filtering
Server-side message filtering with tags. Clients subscribe with filter expressions and receive only matching messages.
client.subscribe("market", { filter: Filter.and( Filter.eq("event", "trade"), Filter.gte("price", "100"), ),});Get Started in Minutes
Docker Compose
Clone the repo and run `docker compose up`. Perfect for local development and testing. Health checks and metrics included.
Precompiled Binary
Install with `cargo binstall sockudo` for instant setup. Choose feature flags for Redis, NATS, SQL backends. No compilation required.
Build from Source
Compile with custom features using Cargo. Full control over dependencies. Supports all backends and integrations.
Official JavaScript Client
@sockudo/client extends Pusher's API with advanced features while maintaining full compatibility.Filter API
Subscribe with server-side filters using a fluent API. Supports equality, pattern matching, and complex combinations.
Delta Reconstruction
Automatic delta decoding with cache management. Track bandwidth savings with stats hooks. Per-subscription configuration.
Framework Integration
Works with Laravel Echo, React, Vue, Svelte, and vanilla JavaScript. Custom connector for Echo with full feature support.
Integrations & Ecosystem
Laravel Echo
Drop-in replacement for Pusher with Laravel Broadcasting. Use `@sockudo/client` connector for advanced features.
Pusher-JS
Standard pusher-js works out of the box. No code changes needed. Point wsHost to your Sockudo server and you're ready.
Backend SDKs
Use official Pusher server libraries in PHP, Node.js, Python, Ruby, Go, and .NET. Publish events with ease.
Horizontal Adapters
Scale with Redis, Redis Cluster, NATS, Pulsar, RabbitMQ, Google Pub/Sub, or Kafka adapters with health monitoring.
Database Support
Store application configs in MySQL, PostgreSQL, DynamoDB, ScyllaDB, or Redis. In-memory mode for development.
Queue & Webhooks
Process webhooks asynchronously with Redis queues or AWS SQS. Automatic batching and retry logic included.