2 个版本
0.0.2 | 2024 年 4 月 30 日 |
---|---|
0.0.1 | 2024 年 3 月 14 日 |
#1107 在 解析器实现
94 每月下载量
120KB
3.5K SLoC
Neutron - 此软件包目前处于开发中,尚未准备好用于生产
Apache Pulsar 客户端库,纯 Rust 构建 🦀,不依赖 C++。
特性
- 纯 Rust,无 C++ 依赖 🦀
- 消费者客户端 📥
- 生产者客户端 📤
- 插件支持 🔌
- 多/双消费者和生产者支持 🤝
- 通过 rustls 支持 TLS 🔐
- 异步解析发送和确认 🪓
- 批处理支持 📦
- 自动重连 ♻️
- 自动操作重试 🚀
安装
使用 Cargo Add
这将安装最新版本的 neutron
到你的 cargo.toml
cargo add neutron
手动
由于目前处于预发布状态,你必须直接使用 git ssh 地址。
neutron = "0.0.2"
特性
json
功能提供通过 serde_json
的自动反序列化和序列化。
neutron = { version = "0.0.2", features = ["json"] }
示例
这是一个简单的消费者示例,它监听一个主题并打印消息。 启用 json
功能
use neutron::{ConsumerBuilder, Message};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Deserialize, Serialize)]
#[allow(dead_code)]
struct Data {
name: String,
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
env_logger::init();
let pulsar_config = neutron::PulsarConfig {
endpoint_url: "pulsar://127.0.0.1".to_string(),
endpoint_port: 6650,
};
let pulsar = neutron::PulsarBuilder::new()
.with_config(pulsar_config)
.build()
.run();
let consumer = ConsumerBuilder::new()
.with_topic("test")
.with_subscription("test")
.with_consumer_name("test")
.connect(&pulsar)
.await?;
loop {
let response: Message<Data> = consumer.next_message().await?;
log::info!("Received message: {:?}", response.payload);
consumer.ack(&response.ack).await?;
}
}
依赖
~15–32MB
~485K SLoC