Skip to content
This repository has been archived by the owner on Nov 30, 2020. It is now read-only.

YoEight/eventstore-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

REPO HAS MOVED!

This client is now officiallly supported by EventStore Ltd. The code is now hosted here: https://github.com/EventStore/EventStoreDB-Client-Rust

eventstore-rs

Crates.io Crates.io Github action CI workflow Discord Crates.io

Rust EventStore TCP Client.

Talk and exchange ideas in our dedicated Discord Server

State of implemented features

  • Can connect to GetEventStore >=4.* servers (for version 20.6 and above enable the es6 feature flag and use the es6 module).
  • Connection health tracking.
  • Operation timeout detection and retry.
  • Write events.
  • Read events (including $all stream).
  • Read/Write stream metadata.
  • Transactions.
  • Delete stream.
  • Volatile Subscriptions.
  • Catchup Subscriptions.
  • Persistent Subscriptions.
  • Support connection to server clusters. (through gossip seeds or DNS)
  • Support SSL connection.

Example

#[macro_use]
extern crate serde_json;

use eventstore::{ Connection, EventData };
use futures::Future;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let addr = "127.0.0.1:1113".parse()?;
    let connection = Connection::builder()
        .single_node_connection(addr)
        .await;

    // It is not mandatory to use JSON as a data format however GetEventStore
    // provides great additional value if you do so.
    let payload = json!({
        "is_rust_a_nice_language": true,
    });

    let event = EventData::json("language-poll", payload)?;

    let result = connection
        .write_events("language-stream")
        .push_event(event)
        .execute()
        .await?;

    // Do something productive with the result.
    println!("{:?}", result);

    Ok(())
}

Notes

That library was tested on Linux and OSX.

Contributions and bug reports are welcome!

MIT License

About

Rust GetEventStore TCP Client

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages