What is Sockudo?
Sockudo is a blazingly fast WebSocket server built in Rust that implements the Pusher protocol. It’s designed to handle 100,000+ concurrent connections with low latency and high throughput, making it perfect for real-time applications like live dashboards, chat systems, gaming, and financial trading platforms.Why Sockudo?
Sockudo is a drop-in replacement for Pusher services, allowing you to host your own real-time infrastructure without vendor lock-in. Built from the ground up in Rust with Tokio’s async runtime, it delivers exceptional performance and reliability.100K+ Connections
Handle massive scale with minimal resources. Optimized for high concurrency with async Rust and efficient memory management.
Pusher Compatible
Drop-in replacement for Pusher. Use existing client SDKs (pusher-js, pusher-swift, etc.) with zero code changes.
Horizontal Scaling
Scale across multiple nodes with Redis, Redis Cluster, or NATS adapters. Built-in support for multi-region deployments.
Delta Compression
Save 60-90% bandwidth with delta compression using Fossil or Xdelta3 algorithms. Perfect for high-frequency updates.
Tag Filtering
Server-side event filtering by tags reduces client bandwidth by 60-90%. Subscribe only to events that matter.
Production Ready
Rate limiting, SSL/TLS, Prometheus metrics, graceful shutdown, and comprehensive logging out of the box.
Key Features
Performance & Scalability
- High Performance: Built with Rust and Tokio for maximum throughput and minimal latency
- 100K+ Concurrent Connections: Tested and optimized for massive scale
- Horizontal Scaling: Redis, Redis Cluster, and NATS adapters for distributed deployments
- Async Cleanup: Non-blocking disconnect handling prevents performance degradation
- Native WebSocket Engine: Custom
sockudo_wsengine with advanced runtime tuning
Bandwidth Optimization
- Delta Compression: Fossil and Xdelta3 (VCDIFF) algorithms with per-channel controls
- Conflation Keys: Isolate delta state per logical stream (e.g., by asset, symbol, or user ID)
- Tag Filtering: Server-side publication filtering with zero-allocation evaluation
- Cluster Coordination: Synchronized full message intervals across nodes (optional)
Developer Experience
- Pusher Protocol: Full compatibility with Pusher client libraries
- Multiple Backends: Choose from Redis, NATS, MySQL, PostgreSQL, DynamoDB, and more
- Feature Flags: Compile only what you need for faster builds (30-50% faster in development)
- Rich Metrics: Prometheus integration for monitoring and alerting
- Docker Ready: Production-ready containers with docker-compose examples
Sockudo vs Pusher
| Feature | Sockudo | Pusher |
|---|---|---|
| Protocol | Pusher-compatible | Pusher |
| Hosting | Self-hosted | Cloud-only |
| Pricing | Free (infrastructure costs only) | Pay per connection |
| Performance | 100K+ connections per node | Limited by plan |
| Delta Compression | ✅ Fossil & Xdelta3 | ❌ |
| Tag Filtering | ✅ Server-side filtering | ❌ |
| Scaling | Redis, Redis Cluster, NATS | Managed |
| Customization | Full control | Limited |
Use Cases
Live Dashboards & Analytics
Live Dashboards & Analytics
Stream real-time metrics, analytics, and KPIs to dashboards. Delta compression reduces bandwidth for high-frequency numeric updates.
Financial Trading Platforms
Financial Trading Platforms
Deliver market data, order book updates, and trade executions with minimal latency. Tag filtering lets clients subscribe to specific symbols.
Multiplayer Games
Multiplayer Games
Synchronize game state across players with presence channels. Handle 100K+ concurrent players on a single cluster.
Chat & Messaging
Chat & Messaging
Build scalable chat applications with private and presence channels. Support thousands of concurrent conversations.
Live Sports & Events
Live Sports & Events
Broadcast live scores, play-by-play updates, and statistics. Tag filtering allows users to follow specific events or teams.
IoT & Device Management
IoT & Device Management
Stream telemetry data from thousands of devices. Delta compression minimizes bandwidth costs for sensor updates.
Architecture
Sockudo uses a modular architecture with pluggable backends:Core Components
- Adapter: Manages connections and broadcasts across nodes (Local, Redis, Redis Cluster, NATS)
- App Manager: Stores application credentials (Memory, MySQL, PostgreSQL, DynamoDB)
- Cache: Speeds up repeated lookups (Memory, Redis, Redis Cluster)
- Queue: Background job processing (Memory, Redis, Redis Cluster, SQS)
- Rate Limiter: Protects against abuse (Memory, Redis, Redis Cluster)
- Metrics: Prometheus-compatible metrics export
Next Steps
Quickstart
Get Sockudo running in 5 minutes with Docker
Installation
Detailed installation options and feature flags
Configuration
Configure Sockudo for your environment
API Reference
Complete API documentation
Community & Support
GitHub
Star the repo and contribute
Discord
Join our community
X (Twitter)
Follow for updates