Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mxsm/rocketmq-rust
🚀Apache RocketMQ Rust implementation. Faster, safer, and with lower memory usage.
https://github.com/mxsm/rocketmq-rust
java messaging rocketmq rocketmq-client rust
Last synced: about 1 month ago
JSON representation
🚀Apache RocketMQ Rust implementation. Faster, safer, and with lower memory usage.
- Host: GitHub
- URL: https://github.com/mxsm/rocketmq-rust
- Owner: mxsm
- License: apache-2.0
- Created: 2023-12-13T09:39:05.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-04-24T03:35:35.000Z (7 months ago)
- Last Synced: 2024-04-24T04:21:24.919Z (7 months ago)
- Topics: java, messaging, rocketmq, rocketmq-client, rust
- Language: Rust
- Homepage: https://docs.rs/rocketmq-rust
- Size: 638 KB
- Stars: 202
- Watchers: 6
- Forks: 5
- Open Issues: 12
-
Metadata Files:
- Readme: README-zh_cn.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE-APACHE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# rocketmq-rust
[Apache Rocketmq](https://github.com/apache/rocketmq)非官方的Rust实现。RocketMQ-Rust 是基于 Rust 语言重新实现的 Apache RocketMQ 消息中间件。该项目旨在为 Rust 开发者提供高性能、可靠的消息队列服务,并充分利用 Rust 语言的特性。
### RocketMQ-Rust 的特点
- **Rust 语言优势:** 利用 Rust 语言的内存安全性、零成本抽象、并发性能等特性,提供高效、可靠的消息中间件。
- **异步和非阻塞设计:** RocketMQ-Rust 充分利用 Rust 异步编程的能力,采用非阻塞设计,支持高并发消息处理。
- **生态整合:** 作为 Rust 生态系统的一部分,RocketMQ-Rust 与 Rust 生态中其他库和框架的兼容性良好,为开发者提供灵活的集成选项。
- **跨平台支持:** RocketMQ-Rust 支持多种平台,包括 Linux、Windows、macOS 等,方便在不同环境下使用。## 快速开始
### 配置要求
1. Rust的msrv版本1.75.0(stable,nightly)
### 运行NameServer
**运行下面命令查看使用**:
- **windows 平台**
```cmd
cargo run --bin rocketmq-namesrv-rust -- --help
RocketMQ Name server(Rust)
Usage: rocketmq-namesrv-rust.exe [OPTIONS]
Options:
-p, --port rocketmq name server port [default: 9876]
-i, --ip rocketmq name server ip [default: 127.0.0.1]
-h, --help Print help
-V, --version Print version
```- **Linux 平台**
```shell
$ cargo run --bin rocketmq-namesrv-rust -- --help
RocketMQ Name server(Rust)
Usage: rocketmq-namesrv-rust [OPTIONS]
Options:
-p, --port rocketmq name server port [default: 9876]
-i, --ip rocketmq name server ip [default: 127.0.0.1]
-h, --help Print help
-V, --version Print version
```**根据下面的命令运行NameServer**
```shell
cargo run --bin rocketmq-namesrv-rust
```## 模块
现有的Rocketmq主要有如下几个功能模块:
- **Name Server**
- **Broker**
- **Store(存储-本地)**
- **Controller(高可用)**
- **Client(SDK)**
- **Proxy(代理)**
- **Tiered store(分级存储模块)**每个模块的具体作用可以参照[Rocketmq的官方说明文档](https://github.com/apache/rocketmq/tree/develop/docs) 。Rust的实现会根据下面的顺序逐一来进行实现。
## Name Server
### Broker管理
- [x] **Broker注册(请求码:103)-暂时只支持基本的Broker注册,对于Controller模式待支持**
- [x] **获取集群信息(请求码:106)**
- [ ] **HeartBeat消息处理**TODO
后续会进行其他的模块实现,首先会对NameServer进行Rust实现,目标是能够达到和Java版本一样的功能。
## 贡献
欢迎贡献代码、报告问题或提出建议。RocketMQ-Rust 的发展离不开开发者的支持,让我们共同推动 Rust 在消息中间件领域的发展。
![Alt](https://repobeats.axiom.co/api/embed/6ca125de92b36e1f78c6681d0a1296b8958adea1.svg "Repobeats analytics image")
| **Stargazers Over Time** | **Contributors Over Time** |
| :----------------------------------------------------------: | :----------------------------------------------------------: |
| [![Stargazers over time](https://api.star-history.com/svg?repos=mxsm/rocketmq-rust&type=Date)](https://api.star-history.com/svg?repos=mxsm/rocketmq-rust&type=Date) | [![GitHub Contributor Over Time](https://contributor-overtime-api.git-contributor.com/contributors-svg?chart=contributorOverTime&repo=mxsm/rocketmq-rust)](https://git-contributor.com?chart=contributorOverTime&repo=mxsm/rocketmq-rust) |## 许可证
RocketMQ-Rust 使用 [Apache License 2.0](https://github.com/mxsm/rocketmq-rust/blob/main/LICENSE-APACHE) 和 [MIT license](https://github.com/mxsm/rocketmq-rust/blob/main/LICENSE-MIT)