Name: Lucu
Synopsis: HTTP Daemonic Library
+Description:
+ Lucu is an HTTP daemonic library. It can be embedded in any
+ Haskell program and runs in an independent thread.
+ Lucu is not a replacement for Apache. It is intended to be
+ used to create an efficient web-based application without
+ messing around FastCGI. It is also intended to be run behind a
+ reverse-proxy so it doesn't have some facilities like logging,
+ client filtering and so on.
Version: 0.1
License: PublicDomain
-Author: PHO
-Homepage: http://ccm.sherry.jp/
-Category: Incomplete
+Author: PHO <phonohawk at ps dot sakura dot ne dot jp>
+Maintainer: PHO <phonohawk at ps dot sakura dot ne dot jp>
+Stability: experimental
+Homepage: http://ccm.sherry.jp/lucu/
+Category: Network
+Tested-With: GHC == 6.6
Build-Depends:
base, mtl, network, stm, hxt, haskell-src, unix
Exposed-Modules:
Network.HTTP.Lucu.ResponseWriter
Network.HTTP.Lucu.StaticFile
Network.HTTP.Lucu.Utils
+Extra-Source-Files:
+ data/CompileMimeTypes.hs
+ data/mime.types
+ examples/HelloWorld.hs
+ examples/Makefile
ghc-options: -fglasgow-exts -O3
--Executable: HelloWorld
install: build
./Setup install
-.PHONY: build run clean install doc
\ No newline at end of file
+sdist: Setup
+ ./Setup sdist
+
+.PHONY: build run clean install doc sdist
\ No newline at end of file
--
-- [/Logging/] Lucu doesn't log any requests from any clients.
--
--- [/Client Filtering/] Lucu always accept any clients. No IP filter
--- is implemented.
+-- [/Client Filtering/] Lucu always accepts any clients. No IP
+-- filter is implemented.
--
--- [/SSL Support/] Lucu can handle HTTP only.
+-- [/SSL Support/] Lucu can handle only HTTP.
--
-- [/Bandwidth Limitting/] Lucu doesn't limit bandwidth it consumes.
--
-- [/Protection Against Wicked Clients/] Lucu is fragile against
--- wicked clients. No attacker should cause a buffer-overflow but
--- can possibly DoS it.
+-- wicked clients. No attacker should be able to cause a
+-- buffer-overflow but can possibly DoS it.
--
-import Control.Monad.Trans
-import Data.Maybe
import Network
-import Network.HTTP.Lucu.Config
-import Network.HTTP.Lucu.ETag
-import Network.HTTP.Lucu.Httpd
-import Network.HTTP.Lucu.MIMEType
-import Network.HTTP.Lucu.MIMEType.Guess
-import Network.HTTP.Lucu.Parser
-import Network.HTTP.Lucu.Parser.Http
-import Network.HTTP.Lucu.Resource
-import Network.HTTP.Lucu.Resource.Tree
-import Network.HTTP.Lucu.Response
-import Network.HTTP.Lucu.StaticFile
-import Network.URI
-import System.Time
+import Network.HTTP.Lucu
main :: IO ()
main = let config = defaultConfig { cnfServerPort = PortNumber 9999 }