name:                   greskell-websocket
version:                0.1.2.6
author:                 Toshio Ito <debug.ito@gmail.com>
maintainer:             Toshio Ito <debug.ito@gmail.com>
license:                BSD3
license-file:           LICENSE
synopsis:               Haskell client for Gremlin Server using WebSocket serializer
description:            Haskell client for [Gremlin Server](http://tinkerpop.apache.org/docs/current/reference/#gremlin-server) using WebSocket serializer.
                        See [README.md](https://github.com/debug-ito/greskell/blob/master/README.md) for detail.
                        .
                        This package is based on [greskell-core](http://hackage.haskell.org/package/greskell-core),
                        and best used with [greskell](http://hackage.haskell.org/package/greskell) package.
category:               Network
cabal-version:          >= 1.10
build-type:             Simple
extra-source-files:     README.md, ChangeLog.md,
                        test/samples/*.json
homepage:               https://github.com/debug-ito/greskell/
bug-reports:            https://github.com/debug-ito/greskell/issues/

library
  default-language:     Haskell2010
  hs-source-dirs:       src
  ghc-options:          -Wall -fno-warn-unused-imports
  -- default-extensions:   
  other-extensions:     OverloadedStrings, DuplicateRecordFields,
                        DeriveGeneric, PartialTypeSignatures, FlexibleContexts,
                        CPP
  exposed-modules:      Network.Greskell.WebSocket,
                        Network.Greskell.WebSocket.Connection,
                        Network.Greskell.WebSocket.Connection.Settings,
                        Network.Greskell.WebSocket.Request,
                        Network.Greskell.WebSocket.Request.Common,
                        Network.Greskell.WebSocket.Request.Standard,
                        Network.Greskell.WebSocket.Request.Session,
                        Network.Greskell.WebSocket.Response,
                        Network.Greskell.WebSocket.Codec,
                        Network.Greskell.WebSocket.Codec.JSON
                        Network.Greskell.WebSocket.Client,
                        Network.Greskell.WebSocket.Client.Options
  other-modules:        Network.Greskell.WebSocket.Request.Aeson,
                        Network.Greskell.WebSocket.Connection.Impl,
                        Network.Greskell.WebSocket.Connection.Type,
                        Network.Greskell.WebSocket.Client.Impl,
                        Network.Greskell.WebSocket.Util
  build-depends:        base >=4.9.1.0 && <4.16,
                        greskell-core >=0.1.2.0 && <0.2,
                        bytestring >=0.10.8.1 && <0.11,
                        base64-bytestring >=1.0.0.1 && <1.3,
                        text >=1.2.2.2 && <1.3,
                        aeson >=1.1.2.0 && <1.6,
                        unordered-containers >=0.2.8 && <0.3,
                        uuid >=1.3.13 && <1.4,
                        async >=2.1.1.1 && <2.3,
                        stm >=2.4.4.1 && <2.6,
                        websockets >=0.10 && <0.13,
                        hashtables >=1.2.2.1 && <1.3,
                        safe-exceptions >=0.1.6 && <0.2,
                        vector >=0.12.0.1 && <0.13

-- executable greskell-websocket
--   default-language:     Haskell2010
--   hs-source-dirs:       app
--   main-is:              Main.hs
--   ghc-options:          -Wall -fno-warn-unused-imports
--   -- other-modules:        
--   -- default-extensions:   
--   -- other-extensions:     
--   build-depends:        base

test-suite spec
  type:                 exitcode-stdio-1.0
  default-language:     Haskell2010
  hs-source-dirs:       test
  ghc-options:          -Wall -fno-warn-unused-imports "-with-rtsopts=-M512m"
  main-is:              Spec.hs
  -- default-extensions:   
  other-extensions:     OverloadedStrings, DuplicateRecordFields,
                        NoMonomorphismRestriction
  other-modules:        Network.Greskell.WebSocket.Codec.JSONSpec
  build-tool-depends:   hspec-discover:hspec-discover
  build-depends:        base, greskell-websocket, aeson, uuid, bytestring, unordered-containers, vector, greskell-core,
                        hspec >=2.4.4


flag server-test
  description: Do test with a Gremlin Server
  default: False

test-suite server-test
  type:                 exitcode-stdio-1.0
  default-language:     Haskell2010
  hs-source-dirs:       test
  ghc-options:          -Wall -fno-warn-unused-imports "-with-rtsopts=-M512m"
                        -threaded
  main-is:              ServerTest.hs
  -- default-extensions:   
  --  other-extensions:     
  other-modules:        TestUtil.TCounter,
                        TestUtil.Env,
                        TestUtil.MockServer,
                        ServerTest.Connection,
                        ServerTest.Client
  if flag(server-test)
    build-depends:        base, greskell-websocket, greskell-core,
                          aeson, uuid, unordered-containers, text, async, safe-exceptions,
                          websockets, bytestring, stm, vector,
                          hspec
                          
  else
    buildable: False

source-repository head
  type:                 git
  location:             https://github.com/debug-ito/greskell.git