servant-client-core: Core functionality and class for client function generation for servant APIs

[ bsd3, library, servant, web ] [ Propose Tags ]

This library provides backend-agnostic generation of client functions. For more information, see the README.

[Skip to Readme]
Versions [faq] 0.12, 0.13,, 0.14, 0.14.1, 0.15, 0.16
Change log
Dependencies base (>=4.7 && <4.11), base-compat (>=0.9.1 && <0.10), base64-bytestring (>= && <1.1), bytestring (==0.10.*), containers (==0.5.*), exceptions (==0.8.*), generics-sop (>= && <0.4), http-api-data (>=0.3.6 && <0.4), http-media (>=0.6.2 && <0.8), http-types (>=0.8.6 && <0.12), mtl (>=2.1 && <2.3), network-uri (==2.6.*), safe (>=0.3.9 && <0.4), semigroups (>= && <0.19), servant (==0.12.*), text (==1.2.*) [details]
License BSD-3-Clause
Copyright 2014-2016 Zalora South East Asia Pte Ltd, 2016-2017 Servant Contributors
Author Servant Contributors
Revised Revision 1 made by phadej at Mon Dec 18 08:32:57 UTC 2017
Category Web
Home page
Bug tracker
Source repo head: git clone
Uploaded by phadej at Wed Nov 8 08:23:15 UTC 2017
Distributions Debian:0.14.1, Fedora:0.14.1, LTSHaskell:0.15, NixOS:0.16, Stackage:0.16
Downloads 3002 total (184 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2017-11-08 [all 1 reports]




Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees

Readme for servant-client-core-0.12

[back to package description]



HTTP-client-agnostic client functions for servant APIs.

This library should mainly be of interest to backend- and combinator-writers.

For backend-writers

If you are creating a new backend, you'll need to:

  1. Define a RunClient instance for your datatype (call it MyMonad)
  2. Define a ClientLike instance. This will look like:
instance ClientLike (MyMonad a) (MyMonad a) where
  mkClient = id
  1. Re-export the module Servant.Client.Core.Reexport so that your end-users can be blissfully unaware of 'servant-client-core', and so each backend-package comes closer to the warm hearth of the drop-in-replacement equivalence class.

For combinator-writers

You'll need to define a new HasClient instance for your combinator. There are plenty of examples to guide you in the HasClient module.