packages feed

http3-0.1.0: http3.cabal

cabal-version:      2.4
name:               http3
version:            0.1.0
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/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: http3://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,
        async,
        bytestring,
        case-insensitive,
        containers,
        http-semantics >= 0.3 && <0.4,
        http-types,
        http2 >=5.3.4 && <5.4,
        iproute >= 1.7 && < 1.8,
        network,
        network-byte-order,
        network-control >= 0.1.7 && <0.2,
        psqueues,
        quic >= 0.2.11 && < 0.3,
        sockaddr,
        stm,
        time-manager >= 0.2.3 && <0.3,
        utf8-string >=1.0 && <1.1

executable h3-server
    main-is:            h3-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,
        crypton,
        filepath,
        http-types,
        http2,
        http3,
        quic,
        tls >=2.1.10 && <2.2,
        tls-session-manager

    if flag(devel)

    else
        buildable: False

executable h3-client
    main-is:            h3-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,
        async,
        base16-bytestring,
        bytestring,
        filepath,
        http-types,
        http3,
        quic,
        tls >=2.1.10 && <2.2,
        unix-time

    if flag(devel)

    else
        buildable: False

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

    if flag(devel)

    else
        buildable: False

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

    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 util
    other-modules:
        HTTP3.Config
        HTTP3.Error
        HTTP3.ErrorSpec
        HTTP3.Server
        HTTP3.ServerSpec
        QPACK.InstructionSpec
        QPACK.QIFSpec
        QPACK.QIF2Spec
        QPACK.TableSpec
        QIF

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