liszt alternatives and similar packages
Based on the "Database" category.
Alternatively, view liszt alternatives based on common mentions on social networks and blogs.
erd10.0 0.0 liszt VS erdTranslates a plain text description of a relational database schema to a graphical entity-relationship diagram.
beam9.9 0.0 liszt VS beamA type-safe, non-TH Haskell SQL library and ORM
persistent-redis9.9 1.3 L3 liszt VS persistent-redisPersistence interface for Haskell allowing multiple storage methods.
opaleye9.9 8.2 liszt VS opaleyeAn SQL-generating DSL targeting PostgreSQL
opaleye-sqlite9.9 8.2 liszt VS opaleye-sqliteAn SQL-generating DSL targeting SQLite
hedis9.8 0.0 liszt VS hedisA Redis client library for Haskell.
hasql9.8 5.8 liszt VS hasqlThe fastest PostgreSQL libpq-based driver for Haskell
selda9.8 3.5 liszt VS seldaA type-safe, high-level SQL library for Haskell
bloodhound9.8 6.3 liszt VS bloodhoundHaskell Elasticsearch client and query DSL
squeal-postgresql9.7 5.0 liszt VS squeal-postgresqlSqueal, a deep embedding of SQL in Haskell
acid-state9.7 0.0 liszt VS acid-stateAdd ACID guarantees to any serializable Haskell data structure
postgresql-simple9.7 0.0 liszt VS postgresql-simpleMid-level client library for accessing PostgreSQL from Haskell
HDBC-session9.6 0.0 liszt VS HDBC-sessionThis repository includes a joined query generator based on typefull relational algebra, and mapping tools between SQL values list and Haskell record type.
esqueleto9.6 0.0 liszt VS esqueletoBare bones, type-safe EDSL for SQL queries on persistent backends.
groundhog9.6 0.0 liszt VS groundhogThis 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
mongoDB9.5 1.3 liszt VS mongoDBMongoDB driver for Haskell
hw-kafka-client9.5 0.0 liszt VS hw-kafka-clientKafka client for Haskell, including auto-rebalancing consumers
HDBC9.4 0.0 liszt VS HDBCHaskell Database Connectivity
mysql-haskell9.4 0.0 liszt VS mysql-haskellPure haskell mysql driver
sqlite-simple9.4 0.0 liszt VS sqlite-simpleMid-level bindings for sqlite
hssqlppp-th9.3 2.2 liszt VS hssqlppp-thsql parser and type checker in haskell
eventful-core9.3 0.0 liszt VS eventful-coreEvent Sourcing library for Haskell
hssqlppp9.3 2.2 liszt VS hssqlpppsql parser and type checker in haskell
mysql-simple9.3 0.0 liszt VS mysql-simpleA mid-level client library for the MySQL database, intended to be fast and easy to use.
Neks9.2 0.0 liszt VS NeksA dead simple networked key/value store
postgresql-simple-migrationPostgreSQL Schema Migrations for Haskell
traildb9.2 0.0 liszt VS traildbHaskell bindings for TrailDB
datalog9.2 0.0 liszt VS datalogA pure Haskell implementation of Datalog
eventstore9.1 1.7 liszt VS eventstoreEventStore Haskell TCP Client
rethinkdb9.1 0.0 liszt VS rethinkdbRethinkDB client library for Haskell
simple-sql-parser9.1 0.0 liszt VS simple-sql-parserSQL parser in Haskell
direct-sqlite9.1 0.0 L3 liszt VS direct-sqliteLow-level binding to SQLite3. Includes UTF8 and BLOB support.
vcache9.1 0.0 liszt VS vcachelarge, persistent, memcached values and structure sharing for Haskell
haskelldb9.1 0.0 liszt VS haskelldbA library for building re-usable and composable SQL queries.
vcache-trie9.1 0.0 liszt VS vcache-trielarge, persistent, memcached values and structure sharing for Haskell
HDBC-odbc9.0 0.0 liszt VS HDBC-odbcODBC driver for HDBC
hasql-th9.0 3.5 liszt VS hasql-thTemplate Haskell utilities for Hasql
dbmigrations9.0 0.0 liszt VS dbmigrationsA library for the creation, management, and installation of schema updates for relational databases.
HDBC-postgresql8.9 0.0 liszt VS HDBC-postgresqlPostgreSQL driver for HDBC
mysql8.9 0.0 liszt VS mysqlA lightweight Haskell binding to the C mysqlclient API
hpqtypes8.9 2.1 liszt VS hpqtypesHaskell bindings to libpqtypes
postgresql-tx8.9 6.1 liszt VS postgresql-tx[Moved to: https://github.com/Simspace/postgresql-tx]
postgresql-typed8.8 0.0 liszt VS postgresql-typedHaskell PostgreSQL library with compile-time type inference
haskey8.8 0.0 liszt VS haskeyTransactional key-value store written entirely in Haskell
ampersand8.8 9.6 liszt VS ampersandBuild database applications faster than anyone else, and keep your data pollution free as a bonus.
influxdb8.8 0.0 liszt VS influxdbInfluxDB client library for Haskell
postgresql-orm8.8 0.0 liszt VS postgresql-ormAn Haskell ORM (Object Relational Mapping) and migrations DSL for PostgreSQL.
genders8.7 0.0 liszt VS gendersHaskell bindings to the libgenders library
persistent-database-url8.7 0.0 liszt VS persistent-database-urlParse DATABASE_URL into configuration types for Persistent
cassy8.7 0.0 liszt VS cassyHigh level Cassandra bindings for Haskell
Access the most powerful time series database as a service
* 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 liszt or a related project?
Liszt is an append-only key-list database.
For the sake of reliability, insertion is performed locally. Insertions can be batched up to one commit in order to reduce overheads.
commitFile :: FilePath -> Transaction a -> IO a insert :: Serialise a => Key -> a -> Transaction () > commitFile "foo.liszt" $ insert "message" ("hello, world" :: Text)
lisztd starts a server. The first argument is the root directory to find liszt
$ lisztd .
You can use the command line utility to watch a stream.
-b 0 follows a stream
from offset 0.
-f "%p\n" prints payloads with newlines.
$ liszt foo.liszt message -b 0 -f "%p\n" hello, world
Liszt employs a 2-3 tree (special case of B tree) of skew binary random access lists as its on-disk format.
A liszt file consists of six types of contents: keys, payloads, tags, nodes, trees, and a footer.
Payloads are bytestrings with arbitrary length.
A pointer to a content with type
t is denoted by
It's a pair of the byte offset and the length of the content, encoded in unsigned VLQ.
A node is one of the following:
- Empty node:
0x01 (P Key) Spine
0x02 (P Key) Spine (P Key) Spine
0x12 (P Node) (P Key) Spine (P Node)
0x13 (P Node) (P Key) Spine (P Node) (P Key) Spine (P Node)
Spine is a list of pairs of:
- Rank: the number of payloads in a tree
- Pointer to a tree
Spine prefixed by the length of the list.
Int [Int (P Tree)]
Tree is either
0x80 Int Tag (P Payload)
0x81 Int Tag (P Payload) (P Node) (P Node)
where the Int represents the length of the
A footer is a root node padded to 256 bytes long, and the padding must end with the following byte sequence:
8df4 c865 fa3d 300a f3f8 9962 e049 e379 489c e4cd 2b52 a630 5584 004c 4953 5a54
(last 5 bytes is LISZT)
Committing is performed in the following steps. This append-only scheme grants robustness to some extent.
- Read the root node from the file.
- Append payloads.
- Append a new footer.
When an exception occurs in the middle, it will put the original footer to prevent corruption (TODO: find the last footer in case of corrupted file).