+-- | Lucu is an HTTP daemonic library. It can be embedded in any
+-- Haskell program and runs in an independent thread.
+--
+-- Features:
+--
+-- [/Full support of HTTP\/1.1/] Lucu supports request pipelining,
+-- chunked I\/O, ETag comparison and \"100 Continue\".
+--
+-- [/Performance/] Lucu doesn't fork\/exec to handle requests like
+-- CGI. It just spawns a new thread. Inter-process communication is
+-- done with STM.
+--
+-- 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 the following (otherwise essential) facilities:
+--
+-- [/Logging/] Lucu doesn't log any requests from any clients.
+--
+-- [/Client Filtering/] Lucu always accept any clients. No IP filter
+-- is implemented.
+--
+-- [/SSL Support/] Lucu can handle HTTP only.
+--
+-- [/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.
+--
+
+
module Network.HTTP.Lucu
- ( -- Abortion
- abort
- , abortA
+ ( -- * Entry Point
+ runHttpd
- -- Config
+ -- * Configuration
, module Network.HTTP.Lucu.Config
- -- ETag
+ -- * Resource Tree
+ , ResourceDef(..)
+ , ResTree
+ , mkResTree
+
+ -- * Resource Monad
+ , module Network.HTTP.Lucu.Resource
+
+ -- ** Things to be used in the Resource monad
+
+ -- *** Status Code
+ , StatusCode(..)
+
+ -- *** Abortion
+ , abort
+ , abortA
+
+ -- *** ETag
, ETag(..)
, strongETag
, weakETag
- -- Httpd
- , runHttpd
-
- -- MIMEType
+ -- *** MIME Type
, MIMEType(..)
, (</>)
, (<:>)
, (<=>)
- -- Resource (driftTo だけは要らない)
- , module Network.HTTP.Lucu.Resource
+ -- * Utility
- -- Resource.Tree
- , ResourceDef(..)
- , ResTree
- , mkResTree
-
- -- Response
- , StatusCode(..)
-
- -- StaticFile
+ -- ** Static file handling
, module Network.HTTP.Lucu.StaticFile
)
where