packages feed

splice-0.6.0.2: splice.cabal

name:          splice
version:       0.6.0.2
stability:     stable on all operating systems
synopsis:      Cross-platform Socket to Socket Data Splicing
description:   A library that implements most efficient socket to socket
               data transfer loops for proxy servers on all operating systems.
               .
               On GNU/Linux, it uses the zero-copy @splice()@ system
               call (<http://kerneltrap.org/node/6505>) and exports it as
               @c_splice@ in @System.IO.Splice.Linux@.
               .
               On other operating systems, it uses a portable Haskell
               implementation.
               .
               [Legal]
               This work is undertaken by Corsis Research for the development of
               PortFusion \]-\[ayabusa (はやぶさ) (Hayabusa) 
               (<https://fusion.corsis.eu>) – German-Japanese joint research
               project for building the simplest and most concise
               high-performance distributed reverse / forward proxy application
               possible on commodity hardware and operating systems.
copyright:     Copyright © 2012 Cetin Sert
license:       BSD3
license-file:  LICENSE
author:        Cetin Sert <fusion@corsis.eu>
maintainer:    Cetin Sert <fusion@corsis.eu>
homepage:      http://corsis.github.com/splice/
bug-reports:   http://github.com/corsis/splice/issues
category:      System, Network
build-type:    Simple
cabal-version: >=1.6


source-repository head
    type:      git
    location:  git://github.com/corsis/splice.git


flag portable
    description: force portable 'splice' implementation on GNU\/Linux
    default    : False


flag llvm
    description: compile via LLVM
    default    : False


library
    hs-source-dirs:      src
    exposed-modules:     Network.Socket.Splice
    other-modules:       Network.Socket.Splice.Internal
    build-depends:       base    >= 4 && <= 6,
                         network >= 2 && <= 4

    if os(linux) && !flag(portable)
      exposed-modules:   System.IO.Splice.Linux
      build-depends:     unix    >= 2 && <= 4
      cpp-options:       -DLINUX_SPLICE


    ghc-options:         -Wall -O2 -O3

    if flag(llvm)
      ghc-options:       -fllvm -optlo-O3 -msse4.2