]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu.hs
Documentation
[Lucu.git] / Network / HTTP / Lucu.hs
index 6f6e4d92f546f4e8b8e14d5280cdd174a80d9011..4ab6bc65abd01f376a70f997705c9534db365e41 100644 (file)
@@ -1,37 +1,73 @@
+-- | 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