eventstore alternatives and similar packages
Based on the "Database" category.
Alternatively, view eventstore alternatives based on common mentions on social networks and blogs.
-
erd
Translates a plain text description of a relational database schema to a graphical entity-relationship diagram. -
HDBC-session
This repository includes a joined query generator based on typefull relational algebra, and mapping tools between SQL values list and Haskell record type. -
groundhog
This library maps datatypes to a relational model, in a way similar to what ORM libraries do in OOP. See the tutorial https://www.schoolofhaskell.com/user/lykahb/groundhog for introduction -
mysql-simple
A mid-level client library for the MySQL database, intended to be fast and easy to use. -
dbmigrations
DISCONTINUED. A library for the creation, management, and installation of schema updates for relational databases. -
ampersand
This repository contains the source code of the Ampersand compiler. For developing in VS-code, it contains a devcontainer. It contains a Dockerfile for generating a docker image. A commit on the main branch sets of the build street, which creates a new image in the ampersand repository in docker hub. -
hsparql
hsparql includes a DSL to easily create queries, as well as methods to submit those queries to a SPARQL server, returning the results as simple Haskell data structures.
InfluxDB high-performance time series database

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of eventstore or a related project?
README
EventStore Haskell TCP client
Talk and exchange ideas in our dedicated Discord Server
That driver supports 100% of EventStore features ! More information about the GetEventStore database can be found there: https://eventstore.com/
Requirements
- 64bits system
- GHC >= 8.0.3
- Cabal >= 1.18
- EventStore >= 4 (Doesn't support EventStore 2020 Preview yet, previously named version 6).
Note: If you use this client version >= to 1.1
, it will only supports EventStore >= 4.0.0.
Install
Using Hackage
$ cabal update $ cabal install eventstore
From source
$ git clone https://github.com/YoEight/eventstore.git $ cd eventstore $ cabal install
How to test
Tests are available. Those assume a server is running on 127.0.0.1
and 1113
port.
$ cabal test
How to use
{-# LANGUAGE OverloadedStrings #-} -- That library uses `Text` pervasively. This pragma permits to use
-- String literal when a Text is needed.
module Main where
import Control.Concurrent.Async (wait)
import Data.Aeson
-- It requires to have `aeson` package installed. Note that EventStore doesn't constraint you to JSON
-- format but putting common use aside, by doing so you'll be able to use some interesting EventStore
-- features like its Complex Event Processing (CEP) capabality.
import Database.EventStore
-- Note that imports 'NonEmpty' data constructor and 'nonEmpty' function from
-- 'Data.List.NonEmpty'.
main :: IO ()
main = do
-- A common pattern with an EventStore connection is to create a single instance only and pass it
-- wherever you need it (it's threadsafe). It's very important to not consider an EventStore connection like
-- its regular SQL counterpart. An EventStore connection will try its best to reconnect
-- automatically to the server if the connection dropped. Of course that behavior can be tuned
-- through some settings.
conn <- connect defaultSettings (Static "127.0.0.1" 1113)
let js = object ["isHaskellTheBest" .= True] -- (.=) comes from Data.Aeson module.
evt = createEvent "programming" Nothing (withJson js)
-- Appends an event to a stream named `languages`.
as <- sendEvent conn (StreamName "languages") anyVersion evt Nothing
-- EventStore interactions are fundamentally asynchronous. Nothing requires you to wait
-- for the completion of an operation, but it's good to know if something went wrong.
_ <- wait as
-- Again, if you decide to `shutdown` an EventStore connection, it means your application is
-- about to terminate.
shutdown conn
-- Make sure the EventStore connection completes every ongoing operation. For instance, if
-- at the moment we call `shutdown` and some operations (or subscriptions) were still pending,
-- the connection aborted all of them.
waitTillClosed conn
Notes
That library was tested on Linux and OSX.
Contributions and bug reports are welcome!
BSD3 License
-Yorick Laupa
*Note that all licence references and agreements mentioned in the eventstore README section above
are relevant to that project's source code only.