1 个不稳定版本
0.2.0 | 2024年6月4日 |
---|
#147 in 异步
在 rocketmq-broker 中使用
715KB
14K SLoC
rocketmq-rust
欢迎来到 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,方便在不同环境中使用。
入门指南
要求
- rust 工具链 MSRV 是 1.75。(稳定版,nightly版)
运行名称服务器
运行以下命令查看用法:
-
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 | 💖 ✅ | |
获取经纪成员_group | 901 | 💖 ✅ | |
获取经纪集群信息 | 106 | 💖 ✅ | |
清除经纪的写权限 | 205 | 💖 ✅ | |
添加经纪的写权限 | 327 | 💖 ✅ | |
从名称服务器获取所有主题列表 | 206 | 💖 ✅ | |
在名称服务器中删除主题 | 216 | 💖 ✅ | |
在名称服务器中注册主题 | 217 | 💖 ✅ | |
按集群获取主题 | 224 | 💖 ✅ | |
从名称服务器获取系统主题列表 | 304 | 💖 ✅ | |
获取单元主题列表 | 311 | 💖 ✅ | |
获取有单元子主题列表 | 312 | 💖 ✅ | |
获取有单元子非单元主题列表 | 313 | 💖 ✅ | |
更新名称服务器配置 | 318 | 💔 ❌ | |
获取名称服务器配置 | 318 | 💔 ❌ |
其他模块的实现将随后进行,从名称服务器的Rust实现开始。目标是实现与Java版本类似的功能。
贡献
欢迎对代码、问题报告和建议的贡献。RocketMQ-Rust的开发依赖于开发者的支持。让我们共同努力,推进Rust在消息中间件领域的应用。
随着时间的推移,星标数量 | 随着时间的推移,贡献者数量 |
---|---|
许可
RocketMQ-Rust遵循Apache License 2.0和MIT许可
依赖项
~14–26MB
~381K SLoC