]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu.hs
Unfoldable Dispatcher
[Lucu.git] / Network / HTTP / Lucu.hs
index efae41a90e499156cc2e62d8ad42b4a6db63f773..7496e5c9bc84202122c4742537cc5b59993d6fca 100644 (file)
@@ -1,24 +1,20 @@
--- | 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,
---   chunked I\/O, ETag comparison and \"100 Continue\".
---
---   [/Performance/] Lucu is carefully designed to gain a good
---   performance.
---
 --   [/Affinity for RESTafarians/] Lucu is specifically designed to be
 --   suitable for RESTful applications.
 --
---   [/SSL connections/] Lucu can handle HTTP connections over SSL
---   layer.
+--   [/Full support of HTTP/\//1.1/] Lucu supports request pipelining,
+--   chunked I\/O, ETag comparison and \"100 Continue\".
+--
+--   [/SSL connections/] Lucu can handle HTTP connections over Secure
+--   Socket Layer when configured with -fssl flag.
 --
 -- Lucu is not a replacement for Apache or lighttpd. It is intended to
--- be used to build an efficient web-based RESTful application. It is
--- also intended to be run behind a reverse-proxy so it doesn't have
--- the following (otherwise essential) facilities:
+-- 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 write logs of any requests from any
 --   clients.
@@ -39,21 +35,22 @@ module Network.HTTP.Lucu
       -- * 'Config'uration
     , module Network.HTTP.Lucu.Config
 
-      -- * Resource Tree
+      -- * 'Dispatcher'
+    , module Network.HTTP.Lucu.Resource.Dispatcher
+
+      -- ** 'Resource' Tree
     , ResTree
     , mkResTree
 
-      -- * 'Resource' Monad
+      -- * 'Rsrc' Monad
     , module Network.HTTP.Lucu.Resource
 
       -- ** Things to be used in the Resource monad
-      -- *** Status Code
-    , StatusCode(..)
+      -- *** 'StatusCode'
+    , module Network.HTTP.Lucu.StatusCode
 
-      -- *** Abortion
-    , abort
-    , abortPurely
-    , abortA
+      -- *** 'Abortion'
+    , module Network.HTTP.Lucu.Abortion
 
       -- *** ETag
     , ETag(..)
@@ -63,8 +60,9 @@ module Network.HTTP.Lucu
 
       -- *** MIME Type
     , MIMEType(..)
-    , mkMIMEType
+    , MIMEParams
     , parseMIMEType
+    , mimeType
 
       -- *** Authentication
     , AuthChallenge(..)
@@ -80,8 +78,12 @@ import Network.HTTP.Lucu.Authentication
 import Network.HTTP.Lucu.Config
 import Network.HTTP.Lucu.ETag
 import Network.HTTP.Lucu.Httpd
-import Network.HTTP.Lucu.MIMEType
+import Network.HTTP.Lucu.MIMEParams
+import Network.HTTP.Lucu.MIMEType hiding (mimeType)
+import Network.HTTP.Lucu.MIMEType.TH
 import Network.HTTP.Lucu.Resource
+import Network.HTTP.Lucu.Resource.Dispatcher
 import Network.HTTP.Lucu.Resource.Tree
 import Network.HTTP.Lucu.Response
 import Network.HTTP.Lucu.StaticFile
+import Network.HTTP.Lucu.StatusCode