name: wobsurv version: 0.1.0 synopsis: A simple and highly performant HTTP file server description: Notable features: . * Based on streaming. Produces the response while the request is still coming. It doesn't waste resources on incorrect or malicious requests by dismissing them right away. It is very gentle with memory. . * Has a configurable limit of simultaneous connections. All exceeding requests get rejected with a "Service Unavailable" status with code 503. category: Network, Networking, Service homepage: https://github.com/nikita-volkov/wobsurv bug-reports: https://github.com/nikita-volkov/wobsurv/issues author: Nikita Volkov maintainer: Nikita Volkov copyright: (c) 2014, Nikita Volkov license: MIT license-file: LICENSE build-type: Simple cabal-version: >=1.10 source-repository head type: git location: git://github.com/nikita-volkov/wobsurv.git library hs-source-dirs: library other-modules: Wobsurv.Interaction Wobsurv.Logging Wobsurv.RequestHeaders Wobsurv.Response Wobsurv.TemplateModels.Index Wobsurv.TemplateModels.NotFound -- * Things that could be extracted into external libraries: -- ** A wrapper library over "hastache" Wobsurv.Util.Mustache.Renderer -- ** A basic implementation of the HTTP protocol Wobsurv.Util.HTTP.Model Wobsurv.Util.HTTP.Parser Wobsurv.Util.HTTP.Renderer Wobsurv.Util.HTTP.URLEncoding -- ** A bound thread hierarchies management Wobsurv.Util.MasterThread -- ** A protocol-agnostic request-response server Wobsurv.Util.OpenServer.Connection Wobsurv.Util.OpenServer.ConnectionsManager -- ** A composable exceptions handler Wobsurv.Util.PartialHandler -- ** Integration of "attoparsec" with "pipes" Wobsurv.Util.PipesAttoparsec -- ** A task performer thread, -- which allows to execute sequential tasks in a non-blocking way. Wobsurv.Util.WorkerThread exposed-modules: Wobsurv build-depends: -- file-system: system-filepath == 0.4.*, system-fileio == 0.3.*, -- network: network == 2.5.*, network-simple == 0.4.*, http-types == 0.8.*, pipes-network == 0.6.*, -- streaming: pipes == 4.1.*, pipes-parse == 3.0.*, pipes-bytestring == 2.1.*, pipes-text == 0.0.*, pipes-safe == 2.2.*, -- rendering: hastache == 0.6.*, -- parsing: attoparsec == 0.12.*, -- data: stm-containers == 0.1.*, old-locale == 1.0.*, time == 1.4.*, text >= 1.1.1.3 && < 1.3, bytestring >= 0.10.4.0 && < 0.11, unordered-containers == 0.2.*, -- general: stm == 2.4.*, monad-control == 0.3.*, transformers == 0.4.*, base-prelude >= 0.1.5 && < 0.2 ghc-options: -funbox-strict-fields default-extensions: Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFunctor, DeriveGeneric, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, ImpredicativeTypes, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples default-language: Haskell2010 executable wobsurv hs-source-dirs: wobsurv main-is: Main.hs build-depends: wobsurv, -- file-system: system-filepath == 0.4.*, system-fileio == 0.3.*, -- network: network == 2.5.*, -- data: yaml == 0.8.*, aeson == 0.8.*, text >= 1.1.1.3 && < 1.3, bytestring >= 0.10.4.0 && < 0.11, unordered-containers == 0.2.*, -- general: safe == 0.3.*, base-prelude >= 0.1.5 && < 0.2 ghc-options: -threaded "-with-rtsopts=-N" -funbox-strict-fields default-extensions: Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFunctor, DeriveGeneric, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, ImpredicativeTypes, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples default-language: Haskell2010 test-suite tests type: exitcode-stdio-1.0 hs-source-dirs: tests main-is: Main.hs build-depends: wobsurv, -- testing: HTF == 0.12.*, quickcheck-instances == 0.3.*, QuickCheck == 2.7.*, HUnit == 1.2.*, -- file-system: system-filepath == 0.4.*, system-fileio == 0.3.*, -- network: network == 2.5.*, http-client == 0.3.*, http-types == 0.8.*, -- data: text >= 1.1.1.3 && < 1.3, bytestring >= 0.10.4.0 && < 0.11, -- concurrency: lifted-async == 0.2.*, -- randomness: mwc-random == 0.13.*, -- general: safe == 0.3.*, transformers == 0.4.*, base-prelude >= 0.1.5 && < 0.2 ghc-options: -threaded "-with-rtsopts=-N" -funbox-strict-fields default-extensions: Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFunctor, DeriveGeneric, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, ImpredicativeTypes, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples default-language: Haskell2010