24 个版本
0.10.0 | 2023年9月24日 |
---|---|
0.9.0 | 2022年5月2日 |
0.8.0 | 2019年9月10日 |
0.7.0 | 2017年10月17日 |
0.1.6 | 2015年5月25日 |
#73 in 异步
12,978 每月下载量
用于 21 个 Crates(17 个直接使用)
290KB
6K SLoC
Kafka Rust 客户端
项目状态
该项目开始由 John Ward 维护,目前状态是我正在将项目更新到最新依赖项,移除已弃用的 Rust 代码并调整测试。
新家
欢迎来到 kafka-rust 的新家:https://github.com/kafka-rust
文档
赞助商
感谢我们的赞助商,这有助于我花更多时间在这个项目上,并有助于基础设施。
Upstash:无服务器 Kafka
|
安装
该 crate 与 Cargo 兼容,并位于 crates.io 上。API 目前正在大幅变动,尽管我们遵循语义版本控制(但预期版本号会快速增长)。
[dependencies]
kafka = "0.9"
要构建 kafka-rust,通常使用 cargo build
即可。该包支持各种功能,可以在编译时关闭。请参阅 kafka-rust 的 Cargo.toml
和 cargo 的文档。
支持的 Kafka 版本
kafka-rust
已经过测试,与 0.8.2 到 3.1.0 的几个 Kafka 版本兼容。然而,Kafka 0.9 及以上版本的所有功能尚未完全支持。
示例
如前所述,cargo 生成的文档 包含一些示例。此外,还提供了独立、可编译的示例程序,位于 仓库的 examples 目录 中。
消费者
这是一个 Kafka 的高级消费者 API,由模块 kafka::consumer
提供。它代表指定的组提供便捷的偏移量管理支持。这是库的客户端应用程序想要用于从 Kafka 接收消息的 API。
生产者
这是一个 Kafka 的高级生产者 API,由模块 kafka::producer
提供。它通过分区器提供便捷的自动分区分配功能。这是库的客户端应用程序想要用于向 Kafka 发送消息的 API。
KafkaClient
模块 kafka::client
中的 KafkaClient
是此 API 的中心点。然而,这是一个适合构建高级 API 的 Kafka 中级抽象。应用程序通常想要使用之前提到的 Consumer
和 Producer
。尽管如此,KafkaClient
的主要功能或特性包括
- 加载元数据
- 获取主题偏移量
- 发送消息
- 获取消息
- 提交消费者组的偏移量
- 获取消费者组的偏移量
错误 / 功能 / 贡献
在 kafka-rust
中仍有很大的改进空间。目前并非所有功能都正常工作,测试覆盖率可以更好。请在生产中使用时自行承担风险。
与开源项目一样,如果您看到需要更改的地方,请毫不犹豫地分叉仓库并提交拉取请求。我们很高兴看到 kafka-rust
随时间不断改进。
集成测试
在本地工作期间,集成测试需要您安装 Docker (1.10.0+) 和 docker-compose (1.6.0+),并通过包含在 tests
目录中的 run-all-tests
脚本运行测试。有关使用方法的详细信息,请参阅 run-all-tests
脚本本身。
创建主题
请注意,除非文档中明确说明,否则此库将忽略对其不熟悉的主题的请求。特别是,它不会尝试从不存在或不熟悉的主题检索消息。(这种行为很可能在未来版本的此库中改变。)
假设您有一个本地 Kafka 服务器安装,可以使用以下命令创建主题(其中 kafka-topics.sh
是 Kafka 分发的一部分)
kafka-topics.sh --topic my-topic --create --zookeeper localhost:2181 --partitions 1 --replication-factor 1
有关更多信息,请参阅 Kafka 的快速入门指南。
替代/相关项目
- rust-rdkafka 是一个基于
librdkafka
的 Rust 基于的 Kafka 客户端库。rust-rdkafka 为 librdkafka 提供了安全的 Rust 接口。
依赖关系
~1–2MB
~41K SLoC