]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu.hs
Code clean-up using convertible-text.
[Lucu.git] / Network / HTTP / Lucu.hs
index 14cb770a8ddbd65a6a3f6d89a92d94d38b90589a..876064ce8c14701931f0a040e6e8c511a02783b1 100644 (file)
@@ -1,59 +1,59 @@
--- | Lucu is an HTTP daemonic library. It can be embedded in any
--- Haskell program and runs in an independent thread.
+-- | Lucu is an embedded HTTP server library.
 --
 -- Features:
 --
---   [/Full support of HTTP\/1.1/] Lucu supports request pipelining,
+--   [/Affinity for RESTafarians/] Lucu is specifically designed to be
+--   suitable for RESTful applications.
+--
+--   [/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.
+--   [/SSL connections/] Lucu can handle HTTP connections over Secure
+--   Socket Layer when configured with -fssl flag.
 --
--- 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:
+-- Lucu is not a replacement for Apache or lighttpd. It is intended to
+-- be used to build an efficient web-based RESTful application which
+-- runs behind a reverse-proxy so it doesn't have the following
+-- (otherwise essential) functionalities:
 --
---   [/Logging/] Lucu doesn't log any requests from any clients.
+--   [/Logging/] Lucu doesn't write logs of any requests from any
+--   clients.
 --
 --   [/Client Filtering/] Lucu always accepts any clients. No IP
 --   filter is implemented.
 --
---   [/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 be able to cause a
+--   [/Protection Against Wicked Clients/] Lucu is somewhat fragile
+--   against wicked clients. No attacker should be able to cause a
 --   buffer-overflow but can possibly DoS it.
 --
-
-
 module Network.HTTP.Lucu
     ( -- * Entry Point
       runHttpd
 
-      -- * Configuration
+      -- * 'Config'uration
     , module Network.HTTP.Lucu.Config
 
-      -- * Resource Tree
-    , ResourceDef(..)
-    , ResTree
-    , mkResTree
+      -- * URI-related data types
+    , Host
+    , Path
 
-      -- * Resource Monad
+      -- * 'Resource' dispatcher
+    , module Network.HTTP.Lucu.Dispatcher
+
+      -- * 'Rsrc' Monad
     , module Network.HTTP.Lucu.Resource
 
       -- ** Things to be used in the Resource monad
+      -- *** 'Method'
+    , Method(..)
 
-      -- *** Status Code
-    , StatusCode(..)
+      -- *** 'StatusCode'
+    , module Network.HTTP.Lucu.StatusCode
 
-      -- *** Abortion
-    , abort
-    , abortPurely
-    , abortA
+      -- *** 'Abortion'
+    , module Network.HTTP.Lucu.Abortion
 
       -- *** ETag
     , ETag(..)
@@ -62,20 +62,30 @@ module Network.HTTP.Lucu
 
       -- *** MIME Type
     , MIMEType(..)
-    
-      -- * Utility
+    , MIMEParams
+    , mimeType
 
+      -- *** Authentication
+    , AuthChallenge(..)
+    , AuthCredential(..)
+    
+      -- * Utilities
       -- ** Static file handling
     , module Network.HTTP.Lucu.StaticFile
     )
     where
-
 import Network.HTTP.Lucu.Abortion
+import Network.HTTP.Lucu.Authentication
 import Network.HTTP.Lucu.Config
+import Network.HTTP.Lucu.Dispatcher
 import Network.HTTP.Lucu.ETag
 import Network.HTTP.Lucu.Httpd
-import Network.HTTP.Lucu.MIMEType
-import Network.HTTP.Lucu.Resource hiding (driftTo)
-import Network.HTTP.Lucu.Resource.Tree
+import Network.HTTP.Lucu.MIMEParams
+import Network.HTTP.Lucu.MIMEType hiding (mimeType)
+import Network.HTTP.Lucu.MIMEType.TH
+import Network.HTTP.Lucu.Request
+import Network.HTTP.Lucu.Resource
 import Network.HTTP.Lucu.Response
 import Network.HTTP.Lucu.StaticFile
+import Network.HTTP.Lucu.StatusCode
+import Network.HTTP.Lucu.Utils