2个不稳定版本

0.2.0 2024年6月4日
0.1.0 2024年1月27日

#510 in 异步

Download history 91/week @ 2024-06-01 10/week @ 2024-06-08 1/week @ 2024-06-15

每月 69 次下载
用于 2 crates

MIT/Apache

11KB

rocketmq-rust

GitHub last commit Crates.io Docs.rs CI CodeCov GitHub contributors Crates.io License GitHub repo size Static Badge

欢迎使用Apache RocketMQ的Rust实现(非官方)。 RocketMQ-Rust 是Apache RocketMQ消息中间件的Rust语言重实现。该项目旨在为Rust开发者提供高性能、可靠的消息队列服务,充分利用Rust语言的功能。

RocketMQ-Rust特性

  • Rust语言优势: 利用Rust的优势,如内存安全、零成本抽象和高度并发性能,RocketMQ-Rust提供高效可靠的消息中间件。
  • 异步和非阻塞设计: RocketMQ-Rust充分利用Rust的异步编程能力,采用非阻塞设计,支持高并发消息处理。
  • 生态系统集成: 作为Rust生态系统的一部分,RocketMQ-Rust与其他Rust生态系统中的库和框架集成良好,为开发者提供灵活的集成选项。
  • 跨平台支持: RocketMQ-Rust支持多个平台,包括Linux、Windows、macOS,方便在不同环境中使用。

入门

要求

  1. rust工具链MSRV为1.75。(稳定,夜间)

运行命名服务器

运行以下命令查看用法:

  • Windows平台

    cargo run --bin rocketmq-namesrv-rust -- --help
    
    RocketMQ Name server(Rust)
    
    Usage: rocketmq-namesrv-rust.exe [OPTIONS]
    
    Options:
      -p, --port <PORT>  rocketmq name server port [default: 9876]
      -i, --ip <IP>      rocketmq name server ip [default: 127.0.0.1]
      -h, --help         Print help
      -V, --version      Print version
    
  • Linux平台

    $ cargo run --bin rocketmq-namesrv-rust -- --help
    
    RocketMQ Name server(Rust)
    
    Usage: rocketmq-namesrv-rust [OPTIONS]
    
    Options:
      -p, --port <PORT>  rocketmq name server port [default: 9876]
      -i, --ip <IP>      rocketmq name server ip [default: 127.0.0.1]
      -h, --help         Print help
      -V, --version      Print version
    

运行以下命令启动命名服务器

cargo run --bin rocketmq-namesrv-rust

模块

现有的RocketMQ具有以下功能模块

  • 命名服务器
  • 代理
  • 存储(本地存储)
  • 控制器(高可用性)
  • 客户端(SDK)
  • 代理
  • 分层存储(分层存储模块)

每个模块的具体功能可以在官方RocketMQ文档中查阅。Rust实现将按以下顺序进行。

命名服务器

特性列表

不支持:💔 ❌

基本支持:❤️ ✅

完全支持:💖 ✅

特性 请求代码 支持 备注
放置KV配置 100 💖 ✅
获取KV配置 101 💖 ✅
删除KV配置 102 💖 ✅
通过命名空间获取 kv 列表 219 💖 ✅
查询数据版本 322 💖 ✅
注册代理 103 💖 ✅
注销代理 104 💖 ✅
代理心跳 904 💖 ✅
获取代理成员组 901 💖 ✅
获取代理集群信息 106 💖 ✅
清除代理的写权限 205 💖 ✅
添加代理的写权限 327 💖 ✅
从命名服务器获取所有主题列表 206 💖 ✅
在命名服务器中删除主题 216 💖 ✅
在命名服务器中注册主题 217 💖 ✅
按集群获取主题 224 💖 ✅
从命名服务器获取系统主题列表 304 💖 ✅
获取单元主题列表 311 💖 ✅
获取具有单元子主题列表 312 💖 ✅
获取具有单元子非单元主题列表 313 💖 ✅
更新命名服务器配置 318 💔 ❌
获取命名服务器配置 318 💔 ❌

其他模块的实现将随后完成,从 Rust 版本的命名服务器实现开始。目标是实现与 Java 版本类似的功能。

贡献

欢迎对代码、问题报告和建议的贡献。RocketMQ-Rust 的发展依赖于开发者的支持。让我们共同努力,推动 Rust 在消息中间件领域的应用。

Alt

随着时间的推移,星标数量 随着时间的推移,贡献者数量
Stargazers over time GitHub Contributor Over Time

许可协议

RocketMQ-Rust 使用 Apache License 2.0 和 MIT 许可协议进行许可,具体请见Apache License 2.0MIT 许可协议

依赖项

~2.4–8.5MB
~57K SLoC