sockudo  by sockudo

High-performance realtime platform with AI Transport

Created 1 year ago
785 stars

Top 43.9% on SourcePulse

GitHubView on GitHub
Project Summary

Sockudo is a high-performance, self-hosted realtime platform designed as a drop-in replacement for Pusher, written in Rust. It targets developers and teams seeking a fast, scalable, and feature-rich alternative for WebSocket and HTTP publish workloads, offering both strict Pusher Protocol V1 compatibility and advanced Protocol V2 features for enhanced delivery semantics and control. Sockudo provides significant benefits through its speed, flexibility, and extensive feature set, enabling robust realtime communication infrastructure.

How It Works

Sockudo operates as a high-performance Rust server supporting WebSocket and HTTP publish workloads. It maintains strict Pusher Protocol V1 compatibility while introducing Protocol V2, which adds features like message IDs, recovery, rewind, tags, deltas, and mutable message events. The platform supports horizontal fanout through integrations with various message brokers including Redis, NATS, RabbitMQ, Google Pub/Sub, Kafka, and Pulsar. Its architecture emphasizes durable history, hot replay buffers, two-tier recovery, and versioned mutable messages, alongside presence tracking and message annotations. An optional AI Transport layer is built upon these core primitives.

Quick Start & Requirements

  • Primary install / run command:
    • Docker Compose: git clone https://github.com/sockudo/sockudo.git && cd sockudo && make up
    • From Source: rustup toolchain install stable && git clone https://github.com/sockudo/sockudo.git && cd sockudo && cargo run -p sockudo
  • Non-default prerequisites and dependencies: Rust toolchain (stable).
  • Links:

Highlighted Details

  • Pusher-compatible WebSocket and HTTP APIs for Protocol V1 clients, with Protocol V2 offering enhanced features like recovery, history, mutable messages, annotations, and AI Transport.
  • Horizontal fanout capabilities via Redis, NATS, RabbitMQ, Google Pub/Sub, Kafka, Pulsar, and Apache Iggy.
  • Durable history, hot replay buffers, two-tier recovery, and until_attach history reads for robust message persistence and retrieval.
  • Versioned mutable messages supporting create, update, delete, append, summary, and latest-visible reads, alongside message annotations for reactions, receipts, and moderation.
  • Integrated push notification pipeline for FCM, APNs, Web Push, HMS, and WNS, plus an optional AI Transport layer built on core primitives.

Maintenance & Community

Sockudo is managed via GitHub Issues and Discussions. Community engagement is also fostered through Discord and X/Twitter. The repository structure follows a monorepo layout, housing server crates, SDKs, dashboard, and documentation.

Licensing & Compatibility

Sockudo is licensed under the MIT License. This permissive license generally allows for commercial use and integration into closed-source projects without significant restrictions, though individual SDK packages may carry their own notices.

Limitations & Caveats

The AI Transport feature is opt-in, disabled by default, and requires Protocol V2. Client and server SDKs are currently intended to be installed from local monorepo paths until package-manager publishing workflows are fully enabled. For high-traffic deployments using horizontal adapters, relying solely on memory-based history, version stores, or process-local cache may not be advisable.

Health Check
Last Commit

1 day ago

Responsiveness

Inactive

Pull Requests (30d)
70
Issues (30d)
8
Star History
154 stars in the last 30 days

Explore Similar Projects

Starred by Patrick von Platen Patrick von Platen(Author of Hugging Face Diffusers; Research Engineer at Mistral) and Jeff Hammerbacher Jeff Hammerbacher(Cofounder of Cloudera).

client-python by mistralai

0.4%
755
Python SDK for Mistral AI platform
Created 2 years ago
Updated 1 day ago
Feedback? Help us improve.