diff mbox series

[bug#50835,v2,03/24] gnu: Add ghc-hedis.

Message ID 20220114024546.75747-3-singpolyma@singpolyma.net
State New
Headers show
Series [bug#50835,v2,01/24] gnu: Add ghc-cache. | expand


Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/applying patch success View Laminar job
cbaines/issue success View issue
cbaines/issue success View issue

Commit Message

Stephen Paul Weber Jan. 14, 2022, 2:45 a.m. UTC
* gnu/packages/haskell-xyz.scm (ghc-hedis): New variable.
 gnu/packages/haskell-xyz.scm | 66 ++++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)
diff mbox series


diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 9670b50a65..bf1aa68305 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -16084,3 +16084,69 @@  using STM and with support for expiration times.")
       "Scanner is a parser combinator library designed to be fast.
 It doesn't support backtracking.")
     (license license:bsd-3)))
+(define-public ghc-hedis
+  (package
+    (name "ghc-hedis")
+    (version "0.14.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/hedis/hedis-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32 "0h6s3x3pylyidjbzjqyrmc2cm5ls67m9iij35fn48rvq4l41w9h9"))))
+    (build-system haskell-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             ; The main tests require redis-server running, but not doctest
+             (when tests? (invoke "runhaskell" "Setup.hs" "test" "doctest")))))))
+    (inputs
+      (list
+        ghc-scanner
+        ghc-async
+        ghc-bytestring-lexing
+        ghc-unordered-containers
+        ghc-network
+        ghc-resource-pool
+        ghc-tls
+        ghc-vector
+        ghc-http
+        ghc-errors
+        ghc-network-uri))
+    (native-inputs
+      (list
+        ghc-hunit
+        ghc-test-framework
+        ghc-test-framework-hunit
+        ghc-doctest))
+    (home-page "https://github.com/informatikr/hedis")
+    (synopsis
+      "Client library for the Redis datastore: supports full command set, pipelining")
+    (description
+      "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.
+Hedis is intended to be used with the latest stable version of Redis.
+Most redis 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.
+Commands are pipelined as much as possible without any work by the user.
+When subscribed to the Redis PubSub server, 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.
+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.")
+    (license license:bsd-3)))