packages feed

snap-server-0.6.0: snap-server.cabal

name:           snap-server
version:        0.6.0
synopsis:       A fast, iteratee-based, epoll-enabled web server for the Snap Framework
description:
  Snap is a simple and fast web development framework and server written in
  Haskell. For more information or to download the latest version, you can
  visit the Snap project website at <http://snapframework.com/>.
  .
  The Snap HTTP server is a high performance, epoll-enabled, iteratee-based web
  server library written in Haskell. Together with the @snap-core@ library upon
  which it depends, it provides a clean and efficient Haskell programming
  interface to the HTTP protocol.
  .
  Higher-level facilities for building web applications (like user/session
  management, component interfaces, data modeling, etc.) are planned but not
  yet implemented, so this release will mostly be of interest for those who:
  .
  * need a fast and minimal HTTP API at roughly the same level of abstraction
    as Java servlets, or
  .
  * are interested in contributing to the Snap Framework project.

license:        BSD3
license-file:   LICENSE
author:         James Sanders, Gregory Collins, Doug Beardsley
maintainer:     snap@snapframework.com
build-type:     Simple
cabal-version:  >= 1.6
homepage:       http://snapframework.com/
category:       Web

extra-source-files:
  CONTRIBUTORS,
  extra/haddock.css,
  extra/hscolour.css,
  extra/logo.gif,
  haddock.sh,
  LICENSE,
  README.md,
  README.SNAP.md,
  test/benchmark/Benchmark.hs,
  test/benchmark/Snap/Internal/Http/Parser/Benchmark.hs,
  test/benchmark/Snap/Internal/Http/Parser/Data.hs,
  test/common/Paths_snap_server.hs,
  test/common/Snap/Test/Common.hs,
  test/common/Test/Common/TestHandler.hs,
  test/common/Test/Common/Rot13.hs,
  test/data/fileServe/foo.bin,
  test/data/fileServe/foo.bin.bin.bin,
  test/data/fileServe/foo.html,
  test/data/fileServe/foo.txt,
  test/pongserver/Main.hs,
  test/runTestsAndCoverage.sh,
  test/snap-server-testsuite.cabal,
  test/suite/Snap/Internal/Http/Parser/Tests.hs,
  test/suite/Snap/Internal/Http/Server/Tests.hs,
  test/suite/Snap/Internal/Http/Server/TimeoutManager/Tests.hs,
  test/suite/Test/Blackbox.hs,
  test/suite/TestSuite.hs,
  test/testserver/Main.hs,
  test/testserver/static/hello.txt


Flag libev
    Description: Use libev?
    Default:     False

Flag portable
  Description: Compile in cross-platform mode. No platform-specific code or
               optimizations such as C routines will be used.
  Default: False

Flag openssl
  Description: Enable https support using the HsOpenSSL library.
  Default: False


Library
  hs-source-dirs: src

  exposed-modules:
    Snap.Http.Server,
    Snap.Http.Server.Config,
    System.FastLogger

  other-modules:
    Paths_snap_server,
    Data.Concurrent.HashMap,
    Snap.Internal.Http.Parser,
    Snap.Internal.Http.Server,
    Snap.Internal.Http.Server.Address,
    Snap.Internal.Http.Server.Date,
    Snap.Internal.Http.Server.Backend,
    Snap.Internal.Http.Server.ListenHelpers,
    Snap.Internal.Http.Server.HttpPort,
    Snap.Internal.Http.Server.SimpleBackend,
    Snap.Internal.Http.Server.TimeoutManager,
    Snap.Internal.Http.Server.TLS,
    Snap.Internal.Http.Server.LibevBackend

  build-depends:
    array                     >= 0.2      && <0.4,
    attoparsec                >= 0.8.1    && < 0.10,
    attoparsec-enumerator     >= 0.2.0.1  && < 0.3,
    base                      >= 4        && < 5,
    binary                    >= 0.5      && < 0.6,
    blaze-builder             >= 0.2.1.4  && < 0.4,
    blaze-builder-enumerator  >= 0.2.0    && < 0.3,
    bytestring                >= 0.9.1   && < 0.10,
    bytestring-nums,
    case-insensitive          >= 0.3      && < 0.4,
    containers                >= 0.3     && < 0.5,
    directory-tree            >= 0.10    && < 0.11,
    enumerator                >= 0.4.13.1 && < 0.5,
    filepath                  >= 1.1     && < 1.3,
    MonadCatchIO-transformers >= 0.2.1    && < 0.3,
    mtl                       >= 2        && < 3,
    murmur-hash               >= 0.1      && < 0.2,
    network                   >= 2.3      && < 2.4,
    old-locale,
    snap-core                 >= 0.6      && < 0.7,
    template-haskell          >= 2.2      && < 2.7,
    text                      >= 0.11     && < 0.12,
    time                      >= 1.0      && < 1.4,
    transformers              >= 0.2      && < 0.3,
    unix-compat               >= 0.2      && < 0.4,
    vector                    >= 0.7      && < 0.10,
    vector-algorithms         >= 0.4      && < 0.6,
    PSQueue                   >= 1.1      && < 1.2

  if flag(portable) || os(windows)
    cpp-options: -DPORTABLE
  else
    build-depends: unix

  if flag(libev)
    build-depends: hlibev >= 0.2.8 && < 0.3
    cpp-options: -DLIBEV

  if flag(openssl)
    cpp-options: -DOPENSSL
    build-depends: HsOpenSSL >= 0.10 && <0.11

  if os(linux) && !flag(portable)
    cpp-options: -DLINUX -DHAS_SENDFILE
    other-modules:
      System.SendFile,
      System.SendFile.Linux

  if os(darwin) && !flag(portable)
    cpp-options: -DOSX -DHAS_SENDFILE
    other-modules:
      System.SendFile,
      System.SendFile.Darwin

  if os(freebsd) && !flag(portable)
    cpp-options: -DFREEBSD -DHAS_SENDFILE
    other-modules:
      System.SendFile,
      System.SendFile.FreeBSD

  ghc-prof-options: -prof -auto-all

  if impl(ghc >= 6.12.0)
    ghc-options: -Wall -fwarn-tabs -funbox-strict-fields -O2 -fno-warn-unused-do-bind
  else
    ghc-options: -Wall -fwarn-tabs -funbox-strict-fields -O2


source-repository head
  type:     git
  location: git://github.com/snapframework/snap-server.git