name:                free-http

version:             0.1.1.0

synopsis:            An HTTP Client based on Free Monads.

description:         `free-http` is an http-client based on Free Monads.
                     `free-http` exposes a Free Monad to express standard http
                     verbs as well as several backends to interpet programs
                     written in the free monad using various http clients
                     (currently: a pure client, an `http-client`-backed client,
                     and a random client).

                     To use free-http, simply:

                     1. Import Network.HTTP.Client.Free to use the library.
                     2. Choose your base request type by defining your own
                        instance of the `RequestType` type family or importing
                        one from an interpreter. E.g.

                        data MyClient
                        type instance RequestType MyClient = Request

                        (or)

                        import Network.HTTP.Free.Client.HttpClient (HttpClient)

                     3. Choose your base response type by defining your own
                        instance of the `ResponseTYpe` type family or importing
                        one from an interpreter. E.g. 

                        type instance ResponseType MyClient = Response ByteString

                        (or)

                        import Network.HTTP.Free.Client.HttpClient (HttpClient)

                     4. Write a program in the 'FreeHttp MyClient m a' free monad.
                     5. Import an interpreter, such as 'HttpClient'

                        import Network.HTTP.Free.Client.HttpClient

                     6. Run your program against the interpreter:

                        runHttp (myProgram :: FreeHttp MyClient IO String)

homepage:            https://github.com/aaronlevin/free-http

license:             MIT

license-file:        LICENSE

author:              Aaron Levin

maintainer:          vilevin@gmail.com

category:            Network

build-type:          Simple

extra-source-files:  README.md
                   , LICENSE

cabal-version:       >=1.10

source-repository head
  type: git
  location: git://github.com/aaronlevin/free-http.git

library
  exposed-modules:     Network.HTTP.Client.Free
                       Network.HTTP.Client.Free.ArbitraryClient
                       Network.HTTP.Client.Free.HttpClient
                       Network.HTTP.Client.Free.PureClient
                       Network.HTTP.Client.Free.Types
                       Network.HTTP.Client.Free.Util

  other-modules:       Network.HTTP.Client.Free.Examples

  -- other-extensions:    

  build-depends:       base         > 4.6 && < 4.9
                     , bytestring   >= 0.10.0.0
                     , free         >= 4.0
                     , http-client  >= 0.4.0
                     , http-types   >= 0.8.0
                     , mtl          >= 2.0.0.0
                     , QuickCheck   >= 2.7
                     , text         >= 1.0.0.0
                     , time         >= 1.4.0.1
                     , transformers >= 0.4.0.0

  hs-source-dirs:      src

  default-language:    Haskell2010