-- Initial json-rpc-server.cabal generated by cabal init.  For further 
-- documentation, see http://haskell.org/cabal/users-guide/

name:                json-rpc-server
version:             0.2.5.0
license:             MIT
license-file:        LICENSE
category:            Network, JSON
maintainer:          Kristen Kozak <grayjay@wordroute.com>
synopsis:            JSON-RPC 2.0 on the server side.
build-type:          Simple
extra-source-files:  changelog.md
cabal-version:       >=1.8
tested-with:         GHC == 7.0.1, GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.1,
                     GHC == 7.10.2, GHC == 7.10.3, GHC == 8.0.1
homepage:            https://github.com/grayjay/json-rpc-server
bug-reports:         https://github.com/grayjay/json-rpc-server/issues
description:         An implementation of the server side of JSON-RPC 2.0.
                     See <http://www.jsonrpc.org/specification>. This
                     library uses 'ByteString' for input and output,
                     leaving the choice of transport up to the user.
                     See the "Network.JsonRpc.Server" module for an example.
                     json-rpc-server can be used with
                     <http://hackage.haskell.org/package/json-rpc-client json-rpc-client>
                     to create a client and server that communicate
                     with the same methods.

source-repository head
  type:              git
  location:          git://github.com/grayjay/json-rpc-server.git

flag demo
  description:       Builds the JSON-RPC demo.
  default:           False
  manual:            True

library
  exposed-modules:     Network.JsonRpc.Server
  other-modules:       Network.JsonRpc.Types
  build-depends:       base >=4.3 && <4.10,
                       aeson >=0.6 && <1.1,
                       deepseq >= 1.1 && <1.5,
                       bytestring >=0.9 && <0.11,
                       mtl >=2.2.1 && <2.3,
                       text >=0.11 && <1.3,
                       vector >=0.7.1 && <0.12,
                       unordered-containers >=0.1 && <0.3
  hs-source-dirs:      src
  ghc-options:         -Wall
  other-extensions:    CPP,
                       FlexibleInstances,
                       FunctionalDependencies,
                       OverloadedStrings,
                       Rank2Types,
                       TypeOperators,
                       TypeSynonymInstances,
                       UndecidableInstances

executable demo
  main-is:             Demo.hs
  hs-source-dirs:      demo
  if flag (demo)
    build-depends:     base,
                       json-rpc-server,
                       bytestring,
                       mtl
    other-extensions:  OverloadedStrings
  else
    buildable:         False

test-suite tests
  hs-source-dirs:      tests
  main-is:             TestSuite.hs
  other-modules:       TestParallelism, Internal
  type:                exitcode-stdio-1.0
  build-depends:       base,
                       json-rpc-server,
                       HUnit >=1.2 && <1.4,
                       test-framework >=0.7 && <0.9,
                       test-framework-hunit >=0.3 && <0.4,
                       aeson,
                       bytestring,
                       mtl,
                       text,
                       vector,
                       unordered-containers
  ghc-options:         -Wall
  other-extensions:    CPP, OverloadedStrings