-- 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:
+-- [/Affinity for RESTafarians/] Lucu is a carefully designed
+-- web server for RESTful applications.
--
--- [/Logging/] Lucu doesn't log any requests from any clients.
+-- [/SSL connections/] Lucu can handle HTTP connections over SSL
+-- layer.
+--
+-- Lucu is not a replacement for Apache or lighttpd. It is intended to
+-- be used to create an efficient web-based RESTful 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:
--
--- [/Client Filtering/] Lucu always accept any clients. No IP filter
--- is implemented.
+-- [/Logging/] Lucu doesn't log any requests from any clients.
--
--- [/SSL Support/] Lucu can handle HTTP only.
+-- [/Client Filtering/] Lucu always accepts any clients. No IP
+-- filter is implemented.
--
-- [/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.
--
-- * Resource Tree
, ResourceDef(..)
+ , emptyResource
, ResTree
, mkResTree
-- *** Abortion
, abort
+ , abortPurely
, abortA
-- *** ETag
-- *** MIME Type
, MIMEType(..)
- , (</>)
- , (<:>)
- , (<=>)
+
+ -- *** Authorization
+ , AuthChallenge(..)
+ , AuthCredential(..)
-- * Utility
where
import Network.HTTP.Lucu.Abortion
+import Network.HTTP.Lucu.Authorization
import Network.HTTP.Lucu.Config
import Network.HTTP.Lucu.ETag
import Network.HTTP.Lucu.Httpd
import Network.HTTP.Lucu.MIMEType
-import Network.HTTP.Lucu.Request
import Network.HTTP.Lucu.Resource hiding (driftTo)
import Network.HTTP.Lucu.Resource.Tree
import Network.HTTP.Lucu.Response