Skip to content

robustmq/robustmq

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

RobustMQ Logo

Ask DeepWiki Latest Release License GitHub issues GitHub stars Coverage Build Status Rust Version

A high-performance distributed message queue built with Rust.

Introduction โ€ข Features โ€ข Architecture โ€ข Quick Start โ€ข Protocols โ€ข Documentation โ€ข Contributing โ€ข Community


โš ๏ธ Development Status
This project is currently in its early preview stage and is undergoing rapid iteration and testing. A stable release is expected in the second half of 2025. We are actively working towards making RobustMQ production-ready and aim to become a top-level Apache project in the message queue ecosystem.

๐Ÿš€ Introduction

RobustMQ is a next-generation, high-performance, multi-protocol message queue built in Rust. Our vision is to create a unified messaging infrastructure tailored for modern cloud-native and AI systems.

โœจ Features

  • ๐Ÿš€ High Performance: Built with Rust, ensuring memory safety, zero-cost abstractions, and blazing-fast performance
  • ๐Ÿ—๏ธ Distributed Architecture: Separation of compute, storage, and scheduling for optimal scalability and resource utilization
  • ๐Ÿ”Œ Multi-Protocol Support: Native support for MQTT (3.x/4.x/5.x), AMQP, Kafka, and RocketMQ protocols
  • ๐Ÿ’พ Pluggable Storage: Modular storage layer supporting local files, S3, HDFS, and other storage backends
  • โ˜๏ธ Cloud-Native: Kubernetes-ready with auto-scaling, service discovery, and observability built-in
  • ๐Ÿข Multi-Tenancy: Support for virtual clusters within a single physical deployment
  • ๐Ÿ” Security First: Built-in authentication, authorization, and encryption support
  • ๐Ÿ“Š Observability: Comprehensive metrics, tracing, and logging with Prometheus and OpenTelemetry integration
  • ๐ŸŽฏ User-Friendly: Simple deployment, intuitive management console, and extensive documentation

๐Ÿ—๏ธ Architecture

RobustMQ Architecture

Core Components

  • Broker Server: High-performance message handling with multi-protocol support
  • Meta Service: Metadata management and cluster coordination using Raft consensus
  • Journal Server: Persistent storage layer with pluggable backends
  • Web Console: Management interface for monitoring and administration

Key Design Principles

  • One Binary, One Process: Simplified deployment and operations
  • Protocol Isolation: Different protocols use dedicated ports (MQTT: 1883/1884/8083/8084, Kafka: 9092, gRPC: 1228)
  • Fault Tolerance: Built-in replication and automatic failover
  • Horizontal Scaling: Add capacity by simply adding more nodes

๐Ÿš€ Quick Start

Prerequisites

  • Rust: 1.70 or later
  • Operating System: Linux, macOS, or Windows
  • Memory: Minimum 2GB RAM
  • Storage: At least 1GB available disk space

Installation Options

Option 1: Build from Source

# Clone the repository
git clone https://github.com/robustmq/robustmq.git
cd robustmq

# Build and run
cargo run --package cmd --bin broker-server

Option 2: Pre-built Binaries

# Download and extract
make build

# Run the server
cd build/robustmq-0.1.25
bin/robust-server start

Option 3: Docker (Coming Soon)

docker run -p 1883:1883 -p 9092:9092 robustmq/robustmq:latest

Verify Installation

Once RobustMQ is running, you should see output similar to:

Console Start

You can verify the installation by connecting with any MQTT client to localhost:1883 or using the web console.

๐Ÿ”Œ Supported Protocols

MQTT (Message Queuing Telemetry Transport)

  • Versions: 3.1, 3.1.1, 5.0
  • Features: QoS levels, retained messages, last will, shared subscriptions
  • Ports: 1883 (TCP), 1884 (SSL), 8083 (WebSocket), 8084 (WSS)

Apache Kafka Protocol

  • Compatibility: Kafka 2.8+ wire protocol
  • Features: Topics, partitions, consumer groups, transactions
  • Port: 9092

AMQP (Advanced Message Queuing Protocol)

  • Version: 1.0
  • Features: Exchanges, queues, routing, transactions
  • Port: 5672

๐Ÿ“š Documentation

Web UI

๐Ÿค Contributing

We welcome contributions from the community! RobustMQ is an open-source project, and we're excited to collaborate with developers interested in Rust, distributed systems, and message queues.

How to Contribute

  1. ๐Ÿ“‹ Read our Contribution Guide
  2. ๐Ÿ” Check Good First Issues
  3. ๐Ÿด Fork the repository
  4. ๐ŸŒฟ Create a feature branch
  5. โœ… Make your changes with tests
  6. ๐Ÿ“ค Submit a pull request

Development Setup

# Clone and setup
git clone https://github.com/robustmq/robustmq.git
cd robustmq

# Run tests
cargo test

# Check code style
cargo clippy
cargo fmt

๐ŸŒ Community

Join our growing community of developers, users, and contributors:

๐Ÿ’ฌ Discussion & Support

๐Ÿ‡จ๐Ÿ‡ณ Chinese Community

  • ๅพฎไฟก็พค: Join our WeChat group for Chinese-speaking users

    WeChat Group QR Code
  • ไธชไบบๅพฎไฟก: If the group QR code has expired, add the developer's personal WeChat:

    Personal WeChat QR Code

๐Ÿ“„ License

RobustMQ is licensed under the Apache License 2.0, which strikes a balance between open collaboration and allowing you to use the software in your projects, whether open source or proprietary.


Built with โค๏ธ by the RobustMQ team and contributors.