#event-store #grpc-client #grpc #event-sourcing #eventstoredb

eventstore-macros

额外的EventStoreDB gRPC客户端内部代码生成功能

1个不稳定版本

0.0.1 2023年2月13日

#39#event-store

Download history 396/week @ 2024-04-15 338/week @ 2024-04-22 141/week @ 2024-04-29 397/week @ 2024-05-06 526/week @ 2024-05-13 234/week @ 2024-05-20 311/week @ 2024-05-27 325/week @ 2024-06-03 525/week @ 2024-06-10 517/week @ 2024-06-17 286/week @ 2024-06-24 473/week @ 2024-07-01 432/week @ 2024-07-08 465/week @ 2024-07-15 439/week @ 2024-07-22 342/week @ 2024-07-29

1,681 每月下载量
3 个crate中(通过 eventstore)使用

MIT 许可证

5KB
94

EventStoreDB Rust客户端

Crates.io Crates.io Build Status Discord Crates.io

文档

官方Rust EventStoreDB rust gRPC gRPC客户端。

EventStoreDB 是一个事件原生的数据库,其中业务事件被不可变地存储和流式传输。适用于事件源、事件驱动和微服务架构。

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 文档

请注意,此客户端尚未得到适当文档。我们正在努力为新版本的文档工作。

社区

依赖项

~1.5MB
~35K SLoC