47 个版本 (8 个稳定版)
3.0.0 | 2024年2月29日 |
---|---|
2.3.0 | 2023年10月17日 |
2.2.0 | 2023年2月13日 |
2.1.2-alpha |
|
0.1.0 | 2018年6月20日 |
在 数据库接口 中排名第 156
每月下载量 1,660
在 3 个 Crates 中使用
480KB
11K SLoC
EventStoreDB Rust 客户端
官方 Rust EventStoreDB rust gRPC gRPC 客户端。
EventStoreDB 是一个从头开始构建用于事件存储的开源数据库,支持 JavaScript 的复杂事件处理。
EventStoreDB 服务器兼容性
此客户端与版本 20.6.1
及以上兼容,并在 Linux、MacOS 和 Windows 上运行。
服务器设置说明可在此处找到 EventStoreDB 文档,遵循 docker 设置以获得最简单的配置。
示例
use eventstore::{ Client, EventData };
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize, Debug)]
struct Foo {
is_rust_a_nice_language: bool,
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Creates a client settings for a single node configuration.
let settings = "esdb://admin:changeit@localhost:2113".parse()?;
let client = Client::new(settings)?;
let payload = Foo {
is_rust_a_nice_language: true,
};
// It is not mandatory to use JSON as a data format however EventStoreDB
// provides great additional value if you do so.
let evt = EventData::json("language-poll", &payload)?;
client
.append_to_stream("language-stream", &Default::default(), evt)
.await?;
let mut stream = client
.read_stream("language-stream", &Default::default())
.await?;
while let Some(event) = stream.next().await? {
let event = event.get_original_event()
.as_json::<Foo>()?;
// Do something productive with the result.
println!("{:?}", event);
}
Ok(())
}
支持
支持信息可在此处找到: EventStoreDB 支持
文档
EventStoreDB 文档可在此处找到: EventStoreDB 文档
请注意,此客户端尚未得到适当的文档。我们正在努力制作新版本的文档。
社区
我们在 EventStoreDB Discuss 有一个社区讨论空间。
依赖项
~20–34MB
~651K SLoC