You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Nicolas Dextraze da907dbbd8 Adding mingw64 (msys2) to build script 3 years ago
actions Implement v2 Protocol. Adding expectedVersion for optimistic concurrency and metadata. 5 years ago
data Implement v2 Protocol. Adding expectedVersion for optimistic concurrency and metadata. 5 years ago
scripts Added type indexes. Updated vagrant scripts. 5 years ago
serializer Implement v2 Protocol. Adding expectedVersion for optimistic concurrency and metadata. 5 years ago
server Add ReadAll_v3 with CreationTime 4 years ago
storage Refactor index rebuilding 3 years ago
.gitignore Added type indexes. Updated vagrant scripts. 5 years ago
LICENSE Implement v2 Protocol. Adding expectedVersion for optimistic concurrency and metadata. 5 years ago
README.md Updated README 5 years ago
Vagrantfile Adding install to Vagrantfile 5 years ago
build.sh Adding mingw64 (msys2) to build script 3 years ago
goes.go Rebuild indexes 3 years ago
goes.iml First commit 5 years ago
goes_test.go Implement v2 Protocol. Adding expectedVersion for optimistic concurrency and metadata. 5 years ago

README.md

Goes

GoLang implementation of a simple EventStore

Released under the MIT license. See LICENSE file.

Getting started

Pre-requisites

  • Install GoLang version 1.6+
  • Install libsodium* version 1.0.10+ (Linux only^)
  • Install zeromq* version 4.0+ (Linux only^)
  • Install msys2 (Windows only)

* On Linux libsodium and zeromq are installed from source (./configure && make && sudo make install && sudo ldconfig)
^ On Window libzmq and libsodium are installed using pacman in MSYS2 shell (pacman -S mingw-w64-x86_64-zeromq)

You can look at scripts/bootstrap.sh to get an idea on how to install all the pre-requisites.

Build

Fetching GO packages

In your GOPATH folder, execute the following commands:

go get github.com/pebbe/zmq4
go get github.com/satori/go.uuid

Compiling the binary

In the project root folder, execute the following command:

go build -o bin/goes

Running the server

In the project root folder, execute the following command:

./bin/goes --db=./events --addr=tcp://127.0.0.1:12345

Both flags are optional and their default values are the same as the example.