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

eventstore-macros

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

1个不稳定版本

0.0.1 2023年2月13日

#39#event-store

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

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