The haskell-abci package

[ Tags: bsd3, library, program, web ] [ Propose Tags ]

Haskell library for writing Application BlockChain Interface (ABCI) servers. Licensed under BSD 3-clause (see LICENSE).

[Skip to Readme]


Dependencies base (>=4.7 && <5), binary, bytestring, conduit, conduit-combinators, conduit-extra, foundation, haskell-abci, lens, network-conduit, proto-lens, proto-lens-arbitrary, proto-lens-protoc, text [details]
License BSD3
Copyright 2017 Christopher Goes
Author Christopher Goes
Category Web
Home page
Source repo head: git clone git://
Uploaded Thu Aug 10 01:08:26 UTC 2017 by cwgoes
Distributions NixOS:
Executables haskell-abci-counter
Downloads 199 total (7 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2017-08-10 [all 2 reports]
Hackage Matrix CI


  • Network
    • Network.ABCI


Maintainer's Corner

For package maintainers and hackage trustees

Readme for haskell-abci-

[back to package description]

Haskell ABCI Server Library

Haskell library for writing Application BlockChain Interface (ABCI) servers. Licensed under BSD 3-clause (see LICENSE).


Available as a library on Hackage.

If you're using Stack, simply add haskell-abci to the build-depends in your project's Cabal file.

If you're using Cabal directly, cabal install haskell-abci should do the trick.

This library exposes a request-response API. Usage is simple:

  1. Import the library
import qualified Network.ABCI as ABCI
  1. Define your application (for more information, see the ABCI application development documentation)

    See the example counter app for a template.

app :: ABCI.Request -> IO ABCI.Response
app = undefined
  1. Specify a host and port on which to bind the ABCI server, or use the defaults
host :: String
host = ABCI.defaultHost

port :: Int
port = ABCI.defaultPort
  1. Launch the server
run :: IO ()
run = ABCI.serve host port app

Development / Testing

You'll need Stack and a relatively recent version of protobuf.

git clone
cd haskell-abci
stack build --install-ghc

Note that src/types.proto is used to generate a Haskell interface file whenever you run stack build.

Optionally, to also install the example counter application (haskell-abci-counter) in ~/.local/bin:

stack install

Once you've installed haskell-abci-counter, to run the counter example application with the standard ABCI Golang tests: (note that you'll need ~/.local/bin on your shell path and Tendermint installed)

git clone
cd abci/tests/test_app
ABCI_APP="haskell-abci-counter" go run ./*.go