packages feed

splice-0.3.2: splice.cabal

name:          splice
version:       0.3.2
stability:     stable on GNU/Linux, experimental on other operating systems
synopsis:      Socket to Socket Data Splicing (supports all operating systems)
description:   A library that implements most efficient socket to socket
               data transfer loops for proxy servers on each operating system.
               .
               On GNU/Linux, it uses and exposes the zero-copy @splice()@ system
               call: <http://kerneltrap.org/node/6505>.
               .
               On all other operating systems, it currently falls back to a
               portable Haskell implementation.
               .
               [Corsis Research]
               This work is funded by Corsis Research
               (<http://corsis.eu>) for the development of
               .
               [PortFusion \]-\[ayabusa (はやぶさ) (Hayabusa)]
               – German-Japanese joint research project for building the
               simplest and most concise high-performance distributed reverse /
               forward proxy possible
               (<https://sourceforge.net/p/portfusion/wiki/RoadMap/>).
license:       BSD3
license-file:  LICENSE
author:        Cetin Sert <fusion@corsis.eu>
maintainer:    Cetin Sert <fusion@corsis.eu>
homepage:      http://corsis.github.com/splice/
category:      Network
build-type:    Simple
cabal-version: >=1.2
copyright:     Copyright © 2012 Cetin Sert
tested-with:   GHC >= 7.0


flag portable
    description: explicitly enable portable splice implemented in Haskell
    default    : False


library

    hs-source-dirs:  src

    exposed-modules: Network.Socket.Splice
    other-modules:   Network.Socket.Splice.Internal

    if os(linux) && !flag(portable)
      exposed-modules: System.IO.Splice.Linux
      build-depends: base    >= 4 && <= 6,
                     network >= 2 && <= 4,
                     unix    >= 2 && <= 4
      cpp-options: -DLINUX_SPLICE
      ghc-options: -W -O2 -O3 -fllvm -optlo-O3
    else
      build-depends: base    >= 4 && <= 6,
                     network >= 2 && <= 4
      cpp-options: -ULINUX_SPLICE
      ghc-options: -W -O2 -O3