This is a fork of the EventStore's Golang Client for EventStoreDB
Supports Eventstore gRPC API 21.6.0
$ go get github.com/pivonroll/EventStore-Client-Go
- Event Streams
- Append Events One by One
- Batch Append Events
- Tombstone (hard delete)
- Delete (soft delete)
- Get/Set Stream Metadata
- Read Stream Events
- Read All Events
- Subscribe To Stream
- Subscribe To All
- Persistent Subscriptions
- Create/Update/Delete
- Subscribe To Persistent Subscription
- Projections
- Create/Update/Delete Projections
- Enable/Abort/Disable/Reset Projection
- Get Projection's State/Result/Statistics
- Restart Projection Subsystem
- List All/Continuous/One Time Projections
- User Management
- Create/Update/Delete User
- Enable/Disable User
- Get User's Details
- List All Users
- Change User's Password
- Reset Users Password
- Operations
- Merge Indexes
- Resign Node
- Restart Persistent Subscriptions
- Scavenging (Start/Stop)
- Set Node Priority
- Shutdown
Integration tests run against a server using Docker, with the EventStoreDB gRPC Client Test Container. New releases are published on github.com/pivonroll/EventStore-Client-Go. To run integration tests you need to have Docker installed and running.
Starting docker in most Linux distros is done through systemctl. For example:
$ sudo systemctl start docker.service
If your Linux distro does not use systemctl, check what it uses and how to start docker on it.
Some dependencies are required in order to work with the code
In order to generate Golang GRPC Client code from proto, run:
Windows
.\build.ps1 -generateProtos
Unix (Linux or OSX)
./build.sh --generate-protos
To generate certificates for TLS you need to run (from projects main directory)
$ sudo docker-compose up
The docker container will generate TLS certificates and put them in ./certs
directory.
To access the docker images in GitHub Packages, you need to authenticate docker with a gitub personal access token. It should be generated with at least the following scopes:
repo
read:packages
Then login to the github docker registry with:
$ sudo docker login https://docker.pkg.github.com -u YOUR_GITHUB_USERNAME
or
$ sudo docker login ghcr.io -u YOUR_GITHUB_USERNAME
and provide your personal access token as a password.
Alternatively you can store your access token in a file (example: ~/.accesstoken
) and login by executing:
$ cat ~/.accesstoken | docker login ghcr.io -u USERNAME --password-stdin
The full instructions can be found in the "Authenticating to GitHub packages" guide.
Pull the required docker image (should be 21.6.0):
$ sudo docker pull docker.pkg.github.com/eventstore/eventstore-client-grpc-testdata/eventstore-client-grpc-testdata:21.6.0-buster-slim
On Windows, you need Powershell
. The version that comes standard with Windows is enough.
On a Unix system, any bash compatible shell should work.
.\build.ps1
./build.sh
go test ./client
All contributions to the SDK are made via GitHub Pull Requests, and must be licensed under the Apache 2.0 license.