packages feed

mighttpd2-4.0.4: mighttpd2.cabal

cabal-version:      >=1.10
name:               mighttpd2
version:            4.0.4
license:            BSD3
license-file:       LICENSE
maintainer:         Kazu Yamamoto <kazu@iij.ad.jp>
author:             Kazu Yamamoto <kazu@iij.ad.jp>
homepage:           https://kazu-yamamoto.github.io/mighttpd2/
synopsis:           High performance web server on WAI/warp
description:
    High performance web server to handle static
    files and CGI on WAI/warp.
    Reverse proxy functionality is also provided
    to connect web applications behind.

category:           Network, Web
build-type:         Simple
data-files:
    example.conf
    example.route

data-dir:           conf
extra-source-files:
    Program/Mighty/Dhall/Option.dhall
    conf/example.dhall

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

flag tls
    description: Support HTTP over TLS (HTTPS).
    default:     False

flag quic
    description: Support HTTP over QUIC (HTTP/3).
    default:     False

flag dhall
    description: Support Dhall
    default:     False

library
    exposed-modules:
        Program.Mighty
        Program.Mighty.ByteString
        Program.Mighty.Config
        Program.Mighty.Network
        Program.Mighty.Parser
        Program.Mighty.Process
        Program.Mighty.Report
        Program.Mighty.Resource
        Program.Mighty.Route
        Program.Mighty.Signal
        Program.Mighty.Dhall.Option
        Program.Mighty.Types

    default-language: Haskell2010
    ghc-options:      -Wall
    build-depends:
        base >=4.9 && <5,
        array,
        async,
        auto-update,
        byteorder,
        bytestring,
        case-insensitive,
        conduit >=1.1,
        conduit-extra,
        directory,
        filepath,
        http-date,
        http-types,
        network,
        parsec >=3,
        resourcet,
        streaming-commons,
        split,
        text,
        unix,
        unix-time,
        unordered-containers,
        wai >=3.2 && <3.3,
        wai-app-file-cgi >=3.1.9 && <3.2,
        warp >=3.4 && <3.5,
        unliftio

    if impl(ghc >=8)
        default-extensions: Strict StrictData

    if flag(dhall)
        cpp-options:   -DDHALL
        build-depends: dhall

executable mighty
    main-is:          Mighty.hs
    hs-source-dirs:   src
    other-modules:
        Server
        WaiApp
        Paths_mighttpd2

    default-language: Haskell2010
    ghc-options:      -Wall -threaded -rtsopts "-with-rtsopts=-qn1 -A32m -kc2k"
    build-depends:
        base >=4.9 && <5,
        bytestring,
        directory,
        filepath,
        http-client >=0.5,
        http-date,
        http-types,
        mighttpd2,
        network,
        conduit-extra,
        transformers,
        unix,
        streaming-commons,
        time-manager,
        wai >=3.2 && <3.3,
        wai-app-file-cgi >=3.1.9 && <3.2,
        wai-logger >=2.3.0,
        warp >=3.4 && <3.5

    if flag(tls)
        cpp-options:   -DHTTP_OVER_TLS
        build-depends:
            async,
            tls-session-manager >=0.0.2.0

    if flag(quic)
        cpp-options:   -DHTTP_OVER_QUIC
        build-depends:
            async,
            base16-bytestring

        if os(linux)
            cpp-options: -DDROP_EXCEPT_BIND
            c-sources:   cbits/setcap.c

    if flag(dhall)
        cpp-options:   -DDHALL
        build-depends: dhall

    if flag(tls)
        build-depends:
            tls,
            warp-tls >=3.2.12 && <3.5

    if flag(quic)
        build-depends:
            quic,
            warp-quic

    if impl(ghc >=8)
        default-extensions: Strict StrictData

executable mighty-mkindex
    main-is:          mkindex.hs
    hs-source-dirs:   utils src
    default-language: Haskell2010
    ghc-options:      -Wall
    build-depends:
        base >=4.9 && <5,
        directory,
        old-locale,
        time,
        unix

executable mightyctl
    main-is:          mightyctl.hs
    hs-source-dirs:   utils src
    default-language: Haskell2010
    ghc-options:      -Wall
    build-depends:
        base >=4.9 && <5,
        unix,
        mighttpd2

    if impl(ghc >=8)
        default-extensions: Strict StrictData

test-suite spec
    type:             exitcode-stdio-1.0
    main-is:          Spec.hs
    hs-source-dirs:   test src
    other-modules:
        ConfigSpec
        RouteSpec

    default-language: Haskell2010
    build-depends:
        base >=4.9 && <5,
        hspec >=1.3,
        mighttpd2,
        http-client >=0.5

    if flag(tls)
        build-depends:
            tls,
            warp-tls >=3.2.12 && <3.5

    if impl(ghc >=8)
        default-extensions: Strict StrictData

    if flag(dhall)
        cpp-options:   -DDHALL
        build-depends: dhall