A community developed gRPC client library for EventStoreDB.

Pub Dart codecov

EventStoreDB is an open-source, functional database with Complex Event Processing capabilities. Documentation for EventStoreDB can be found here.

This package is still in active development and not yet reached a stable version. You should expect breaking changes that will require refactoring both code and behaviors of code depending on this package. When stable 1.0.0 is released, we pledge to keep the package backwards compatible within each major version.

Getting started

A simple usage example of reading from a self-hosted single-node:

import 'package:eventstore_client/eventstore_client.dart';

void main() async {
  // Create a client instance
  final client = EventStoreStreamsClient(
    EventStoreClientSettings.parse(
      'esdb://127.0.0.1:2113',
    ),
  );

  // Fetch all events in EventStore
  final result = await client.readFromAll(
    forward: true,
    resolveLinks: true,
    position: LogPosition.start,
  );

  // Only print if read was successful
  if (result.isOK) {
    await for (var event in result.stream) {
      print(event);
    }
  }
}

Usage and documentation

This client is not yet properly documented, but we have made some example usages, and publish the API reference. For additional documentation about general usage, see the official documentation for gRPC clients on eventstore.com.

Features and bugs

This package is in active development and breaking changes should still be expected. It currently supports the following EventStoreDB client APIs:

  • ✅ Streams API
  • ✅ Projections Management API
  • ✅ Persistent Subscriptions Management API
  • ✅ Gossip API (open source version of EventstoreDB)
  • ✅ User Management API
  • ✅ Operations API
  • ✅ Monitoring API (statistics only from v21.x)

We are working on the following APIs:

  • ⏱ Elections API

Please file feature requests and bugs at the issue tracker.

Community

There is a community discussion space at Event Store Discuss. If you prefer slack, there is also an #eventstore channel in the DDD-CQRS-ES slack community. The maintainers of this community developed client will do their best to answer any questions in both these channels.

Contributing

Development is done on the master branch. As for the official clients, we also attempt to do our best to ensure that the history remains clean and to do so, we generally ask contributors to squash their commits into a set or single logical commit. For additional information about contributing, see CONTRIBUTION.md.

Libraries

eventstore_client
A community developed gRPC client library for EventStoreDB