packages feed

http3-0.0.6: http3.cabal

cabal-version:      2.4
name:               http3
version:            0.0.6
license:            BSD-3-Clause
license-file:       LICENSE
maintainer:         Kazu Yamamoto <kazu@iij.ad.jp>
author:             Kazu Yamamoto <kazu@iij.ad.jp>
homepage:           https://github.com/kazu-yamamoto/http3
synopsis:           HTTP/3 library
description:        HTTP/3 library including frames, QPACK, client and server.
category:           Network
build-type:         Simple
extra-source-files:
    ChangeLog.md
    test/servercert.pem
    test/serverkey.pem
    test/inputFile
    qifs/qifs/*.qif
    qifs/encoded/qpack-05/examples/*.1
    qifs/encoded/qpack-05/f5/*.0
    qifs/encoded/qpack-05/f5/*.1
    qifs/encoded/qpack-05/ls-qpack/*.0
    qifs/encoded/qpack-05/ls-qpack/*.1
    qifs/encoded/qpack-05/nghttp3/*.0
    qifs/encoded/qpack-05/nghttp3/*.1
    qifs/encoded/qpack-05/proxygen/*.0
    qifs/encoded/qpack-05/proxygen/*.1
    qifs/encoded/qpack-05/qthingey/*.0
    qifs/encoded/qpack-05/qthingey/*.1
    qifs/encoded/qpack-05/quinn/*.0
    qifs/encoded/qpack-05/quinn/*.1

source-repository head
    type:     git
    location: git://github.com/kazu-yamamoto/http3

flag devel
    description: Development commands
    default:     False

library
    exposed-modules:
        Network.HQ.Client
        Network.HQ.Server
        Network.HTTP3.Client
        Network.HTTP3.Internal
        Network.HTTP3.Server
        Network.QPACK
        Network.QPACK.Internal

    other-modules:
        Imports
        Network.HTTP3.Config
        Network.HTTP3.Context
        Network.HTTP3.Control
        Network.HTTP3.Error
        Network.HTTP3.Frame
        Network.HTTP3.Recv
        Network.HTTP3.Send
        Network.HTTP3.Settings
        Network.HTTP3.Stream
        Network.QPACK.Error
        Network.QPACK.HeaderBlock
        Network.QPACK.HeaderBlock.Decode
        Network.QPACK.HeaderBlock.Encode
        Network.QPACK.HeaderBlock.Prefix
        Network.QPACK.Instruction
        Network.QPACK.Table
        Network.QPACK.Table.Dynamic
        Network.QPACK.Table.RevIndex
        Network.QPACK.Table.Static
        Network.QPACK.Token
        Network.QPACK.Types

    default-language:   Haskell2010
    default-extensions: Strict StrictData
    ghc-options:        -Wall
    build-depends:
        base >=4.9 && <5,
        array,
        bytestring,
        case-insensitive,
        containers,
        http2 >=4.2.0 && <5,
        http-types,
        network,
        network-byte-order,
        quic >= 0.1.2,
        sockaddr,
        stm,
        time-manager,
        unliftio

executable server
    main-is:            server.hs
    hs-source-dirs:     util
    other-modules:
        Common
        ServerX

    default-language:   Haskell2010
    default-extensions: Strict StrictData
    ghc-options:        -Wall -threaded -rtsopts
    build-depends:
        base >=4.9 && <5,
        base16-bytestring,
        bytestring,
        filepath,
        http-types,
        http2,
        http3,
        quic,
        tls,
        tls-session-manager,
        unliftio

    if flag(devel)

    else
        buildable: False

executable client
    main-is:            client.hs
    hs-source-dirs:     util
    other-modules:
        Common
        ClientX

    default-language:   Haskell2010
    default-extensions: Strict StrictData
    ghc-options:        -Wall -threaded -rtsopts
    build-depends:
        base >=4.9 && <5,
        base16-bytestring,
        bytestring,
        filepath,
        http-types,
        http3,
        quic,
        tls,
        unix-time,
        unliftio

    if flag(devel)

    else
        buildable: False

executable qif
    main-is:            qif.hs
    hs-source-dirs:     util
    default-language:   Haskell2010
    default-extensions: Strict StrictData
    ghc-options:        -Wall -threaded -rtsopts
    build-depends:
        base >=4.9 && <5,
        attoparsec,
        bytestring,
        conduit,
        conduit-extra,
        http3,
        quic,
        stm,
        unliftio

    if flag(devel)

    else
        buildable: False

test-suite spec
    type:               exitcode-stdio-1.0
    main-is:            Spec.hs
    build-tool-depends: hspec-discover:hspec-discover
    hs-source-dirs:     test
    other-modules:
        HTTP3.Config
        HTTP3.Error
        HTTP3.ErrorSpec
        HTTP3.Server
        HTTP3.ServerSpec
        QPACK.InstructionSpec
        QPACK.QIFSpec
        QPACK.TableSpec

    default-language:   Haskell2010
    default-extensions: Strict StrictData
    ghc-options:        -Wall -threaded
    build-depends:
        base >=4.9 && <5,
        QuickCheck,
        attoparsec,
        base16-bytestring,
        bytestring,
        conduit,
        conduit-extra,
        crypton,
        hspec >=1.3,
        http-types,
        http2,
        http3,
        iproute,
        network,
        quic,
        stm,
        tls,
        unliftio