hedis: Client library for the Redis datastore: supports full command set, pipelining.

[ bsd3, database, library ] [ Propose Tags ] [ Report a vulnerability ]

Redis is an open source, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets. This library is a Haskell client for the Redis datastore.

Compared to other Haskell client libraries it has some advantages:

  • Compatibility with Latest Stable Redis: Hedis is intended to be used with any version of Redis starting with 5.0 to 8.8. But pay attention to the Since annotation that tells when the command was introduced in Redis. The library does not provide static checks and unsupported commands will result in a runtime error. Most Redis commands (http://redis.io/commands) are available as Haskell functions, although MONITOR and SYNC are intentionally omitted. Additionally, a low-level API is exposed that makes it easy for the library user to implement further commands, such as new commands from an experimental Redis version.

  • Automatic Optimal Pipelining: Commands are pipelined (http://redis.io/topics/pipelining) as much as possible without any work by the user. See http://informatikr.com/2012/redis-pipelining.html for a technical explanation of automatic optimal pipelining.

  • Enforced Pub/Sub semantics: When subscribed to the Redis Pub/Sub server (http://redis.io/topics/pubsub), clients are not allowed to issue commands other than subscribing to or unsubscribing from channels. This library uses the type system to enforce the correct behavior.

  • Connect via TCP or Unix Domain Socket: TCP sockets are the default way to connect to a Redis server. For connections to a server on the same machine, Unix domain sockets offer higher performance than the standard TCP connection.

  • Cluster and multi-instance support: Hedis supports Redis Cluster and Redis Sentinel.

For detailed documentation, see the Database.Redis module.


[Skip to Readme]

Flags

Manual Flags

NameDescriptionDefault
dev

enable this for local development -Werror and profiling options

Disabled
cluster

enable it to run cluster tests if you have required setup

Disabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1, 0.2, 0.3, 0.3.1, 0.3.2, 0.4, 0.4.1, 0.5, 0.5.1, 0.6, 0.6.1, 0.6.2, 0.6.3, 0.6.4, 0.6.5, 0.6.6, 0.6.7, 0.6.8, 0.6.9, 0.6.10, 0.7.0, 0.7.1, 0.7.2, 0.7.5, 0.7.6, 0.7.7, 0.7.8, 0.7.9, 0.7.10, 0.8.0, 0.8.1, 0.8.2, 0.8.3, 0.9.1, 0.9.2, 0.9.3, 0.9.4, 0.9.5, 0.9.6, 0.9.7, 0.9.8, 0.9.9, 0.9.10, 0.9.11, 0.9.12, 0.10.0, 0.10.1, 0.10.2, 0.10.3, 0.10.4, 0.10.6, 0.10.8, 0.10.9, 0.10.10, 0.11.0, 0.11.1, 0.12.0, 0.12.1, 0.12.2, 0.12.3, 0.12.4, 0.12.5, 0.12.6, 0.12.7, 0.12.8, 0.12.9, 0.12.10, 0.12.11, 0.12.12, 0.12.13, 0.12.14, 0.12.15, 0.13.0, 0.13.1, 0.14.0, 0.14.1, 0.14.2, 0.14.3, 0.14.4, 0.15.0, 0.15.1, 0.15.2, 0.16.0, 0.16.1, 0.16.3
Change log CHANGELOG
Dependencies async (>=2.1 && <2.3), base (>=4.18 && <5), bytestring (>=0.9 && <0.13), bytestring-lexing (>=0.5 && <0.6), containers (>=0.6 && <0.9), deepseq (<1.6), errors (<2.4), exceptions (>=0.10 && <0.11), hashable (<1.6), HTTP (<4001), http-types (>=0.12 && <0.13), mtl (>=2 && <3), network (>=2 && <3.3), network-uri (<2.7), resource-pool (>=0.5 && <0.6), scanner (>=0.2 && <0.4), semigroups (>=0.11 && <0.19), stm (<2.6), text (>=2.0 && <2.2), time (<1.17), tls (>=1.3 && <2.5), unliftio-core (<0.2.2), unordered-containers (>=0.2 && <0.3), vector (>=0.9 && <0.14) [details]
Tested with ghc ==9.6.7 || ==9.8.4 || ==9.10.3 || ==9.12.4 || ==9.14.1
License BSD-3-Clause
Copyright Copyright (c) 2011 Falko Peters
Author Falko Peters <falko.peters@gmail.com>
Maintainer Kostiantyn Rybnikov <k-bx@k-bx.com>, Alexander Vershilov <alexander.vershilov@tweag.io>
Uploaded by AlexanderVershilov at 2026-08-19T20:06:10Z
Category Database
Home page https://github.com/informatikr/hedis
Bug tracker https://github.com/informatikr/hedis/issues
Source repo head: git clone https://github.com/informatikr/hedis
Distributions LTSHaskell:0.15.2, Stackage:0.16.3
Reverse Dependencies 61 direct, 32 indirect [details]
Downloads 78078 total (188 in the last 30 days)
Rating 2.5 (votes: 4) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for hedis-0.16.3

[back to package description]

Welcome to hedis

Haskell-CI

This is a Redis client library for the Haskell programming language. Please consult the library's Hackage page for documentation.

Testimonials

Ben Gamari writes:

Having evaluated the options in this space, [Hedis] is in my opinion the best of the bunch with an active maintainer, a simple interface, excellent documentation, and superb performance.

Email from a user, regarding the 0.5 release (10.05.2012):

The new multiExec function is really great. [...] We are using it in our commercial product at Janrain and are very happy!

Andrew Frederick Cowie [mentioned hedis](http://research.operationaldynamics.com/~andrew/talks/TheWebProblem,SolvingItInHaskell/TheWebProblem.html#Redirector introduction) in a talk:

Nice Haskell bindings.

Join in!

We are happy to receive bug reports, fixes, documentation enhancements, and other improvements.

Please report bugs via the github issue tracker.

Master git repository:

git clone git://github.com/informatikr/hedis.git

Authors

This library is written by Falko Peters falko.peters@gmail.com. Ex-maintainer by Kostiantyn Rybnikov k-bx@k-bx.com. Currently maintained by Alexander Vershilov alexander.vershilov@tweag.io