#rocket-mq #message-broker #message-queue #mq #rust

bin+lib rocketmq-broker

Unofficial Rust implementation of Apache RocketMQ

1 unstable release

0.2.0 Jun 4, 2024

#1127 in Asynchronous

MIT/Apache

1MB
23K SLoC

The Rust Implementation of Apache RocketMQ Broker

Overview

This module is mainly the implementation of the Apache RocketMQ Broker, containing all the functionalities of the Java version Broker.

Getting Started

Requirements

  1. rust toolchain MSRV is 1.75.(stable,nightly)

Run Borker

Run the following command to see usage:

  • windows platform

    cargo run --bin rocketmq-broker-rust -- --help
    
    RocketMQ Broker Server(Rust)
    
    Usage: rocketmq-broker-rust.exe [OPTIONS]
    
    Options:
      -c, --config-file <FILE>      Broker config properties file
      -m, --print-important-config  Print important config item
      -n, --namesrv-addr <IP>       Name server address list, eg: '192.168.0.1:9876;192.168.0.2:9876' [default: 127.0.0.1:9876]
      -p, --print-config-item       Print all config item
      -h, --help                    Print help
      -V, --version                 Print version
    
  • Linux platform

    $ cargo run --bin rocketmq-broker-rust -- --help
    
    RocketMQ Broker Server(Rust)
    
    Usage: rocketmq-broker-rust [OPTIONS]
    
    Options:
      -c, --config-file <FILE>      Broker config properties file
      -m, --print-important-config  Print important config item
      -n, --namesrv-addr <IP>       Name server address list, eg: '192.168.0.1:9876;192.168.0.2:9876' [default: 127.0.0.1:9876]
      -p, --print-config-item       Print all config item
      -h, --help                    Print help
      -V, --version                 Print version
    

Run the following command to start the name server

cargo run --bin rocketmq-broker-rust

Feature

Feature list:

  • Not support: 💔 ❌
  • Base support: ❤️ ✅
  • Perfect support: 💖 ✅
Feature request code Support remark
topic config load 💔 ❌ TopicConfigManager class function
topic queue mapping load 💔 ❌ TopicQueueMappingManager class function
consume offset load 💔 ❌ ConsumerOffsetManager class function
subscription group load 💔 ❌ SubscriptionGroupManager class function
consumer filter load 💔 ❌ ConsumerFilterManager class function
consumer order info load 💔 ❌ ConsumerOrderInfoManager class function
message store load 💔 ❌
timer message store load 💔 ❌
schedule message store load 💔 ❌
send message hook 💔 ❌
consume message hook 💔 ❌
send message 10 ❤️ ✅
send message v2 310 ❤️ ✅
send batch message 320 💔 ❌
consume send message back 36 💔 ❌
pull message 11 💔 ❌
lite pull message 361 💔 ❌
peek message 200052 💔 ❌
pop message 200050 💔 ❌
ack message 200051 💔 ❌
batch ack message 200151 💔 ❌
change message invisibletime 200053 💔 ❌
notification 200054 💔 ❌
polling info 200055 💔 ❌
send reply message 324 💔 ❌
send reply message v2 325 💔 ❌
query message 12 💔 ❌
view message by id 33 💔 ❌
heart beat 34 ❤️ ✅
unregister client 35 ❤️ ✅
check client config 46 💔 ❌
get consumer list by group 38 💔 ❌
update consumer offset 15 💔 ❌
query consumer offset 14 💔 ❌
query assignment 400 💔 ❌
set message request mode 401 💔 ❌
end transacation 37 💔 ❌
default processor 💔 ❌ AdminBrokerProcessor class function

Dependencies

~15–30MB
~418K SLoC