Crate eventstore

Source
Expand description

Official Rust EventStoreDB gRPC Client.

EventStoreDB is an open-source database built from the ground up for Event Sourcing, with Complex Event Processing in Javascript.

§EventStoreDB 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 EventStoreDB Docs, follow the docker setup for the simplest configuration.

§Example

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)?;

    let _ = 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(())
}

Modules§

operations
prelude

Structs§

AppendToStreamOptions
Options of the append to stream command.
BatchAppendClient
BatchAppendOptions
BatchWriteResult
Client
Represents a client to a single node. Client maintains a full duplex communication to EventStoreDB.
ClientSettings
Gathers all the settings related to a gRPC client with an EventStoreDB database. ClientSettings can only be created when parsing a connection string.
ClientSettingsParseError
CreateProjectionOptions
Credentials
Holds login and password information.
DeletePersistentSubscriptionOptions
DeleteProjectionOptions
DeleteStreamOptions
Options of the delete stream command.
Endpoint
EventData
Holds data of event about to be sent to the server.
GenericProjectionOptions
GetPersistentSubscriptionInfoOptions
GetResultProjectionOptions
GetStateProjectionOptions
ListPersistentSubscriptionsOptions
PersistentSubscription
PersistentSubscriptionConnectionInfo
PersistentSubscriptionInfo
PersistentSubscriptionMeasurements
PersistentSubscriptionOptions
PersistentSubscriptionSettings
Gathers every persistent subscription property.
PersistentSubscriptionStats
PersistentSubscriptionToAllOptions
Position
A structure referring to a potential logical record position in the EventStoreDB transaction file.
ProjectionClient
ProjectionStatus
ReadAllOptions
ReadEventResult
Represents the result of looking up a specific event number from a stream.
ReadStream
ReadStreamOptions
RecordedEvent
Represents a previously written event.
ReplayParkedMessagesOptions
ResolvedEvent
A structure representing a single event or an resolved link event.
RestartPersistentSubscriptionSubsystem
RetryOptions
A command retry policy.
StreamAcl
Represents an access control list for a stream.
StreamAclBuilder
StreamMetadata
Represents stream metadata with strongly types properties for system values and a dictionary-like interface for custom values.
StreamMetadataBuilder
Used to facilitate the creation of a stream’s metadata.
Streaming
SubscribeToAllOptions
SubscribeToPersistentSubscriptionOptions
SubscribeToStreamOptions
Subscription
SubscriptionFilter
TombstoneStreamOptions
Options of the tombstone stream command.
UpdateProjectionOptions
VersionedMetadata
Represents a stream metadata.
WriteResult
Returned after writing to a stream.
WrongExpectedVersion

Enums§

Acl
CurrentRevision
Actual revision of a stream.
Error
EventStoreDB command error.
ExpectedRevision
Constants used for expected version control. The use of expected version can be a bit tricky especially when discussing assurances given by the GetEventStore server.
GrpcConnectionError
EventStoreDB command error.
NakAction
Gathers every possible Nak actions.
NodePreference
Indicates which order of preferred nodes for connecting to.
PersistActionError
Enumerates all persistent action exceptions.
PersistActionResult
Represents the different scenarios that could happen when performing a persistent subscription.
PersistentSubscriptionEvent
ReadEvent
ReadEventStatus
Enumeration detailing the possible outcomes of reading a stream.
ReadStreamError
Represents the errors that can arise when reading a stream.
ReadStreamStatus
Represents the result of reading a stream.
Retry
Represents a reconnection strategy when a connection has dropped or is about to be created.
RevisionOrPosition
StreamMetadataResult
Represents stream metadata as a series of properties for system data and user-defined metadata.
StreamPosition
SubscriptionEvent
Events related to a subscription.
SystemConsumerStrategy
System supported consumer strategies for use with persistent subscriptions.

Traits§

MetadataStreamName
StreamName
ToEvents

Type Aliases§

Result