You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
KurrentDB is the event-native database, where business events are immutably stored and streamed. Designed for event-sourced, event-driven, and microservices architectures.
KurrentDB Server Compatibility
This client is compatible with version 20.6.1 upwards and works on Linux, MacOS and Windows.
Server setup instructions can be found here KurrentDB Docs, follow the docker setup for the simplest configuration.
Example
use kurrentdb::{Client,EventData};use serde::{Serialize,Deserialize};#[derive(Serialize,Deserialize,Debug)]structFoo{is_rust_a_nice_language:bool,}#[tokio::main]asyncfnmain() -> Result<(),Box<dyn std::error::Error>>{// Creates a client settings for a single node configuration.let settings = "kurrentdb://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 KurrentDB// 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?;letmut stream = client
.read_stream("language-stream",&Default::default()).await?;whileletSome(event) = stream.next().await? {let event = event.get_original_event().as_json::<Foo>()?;// Do something productive with the result.println!("{:?}", event);}Ok(())}