X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Network%2FHTTP%2FLucu.hs;h=e5d92765af57bcfdf6bf91390c3990258d05b13b;hb=f402841101b4b84f263eea1a43c848f81c48ff93;hp=79b74144aadfd87d07625f581653ee1c04c46572;hpb=ea2b7838f1b3d9d4923a220a601be2e04cc559d7;p=Lucu.git diff --git a/Network/HTTP/Lucu.hs b/Network/HTTP/Lucu.hs index 79b7414..e5d9276 100644 --- a/Network/HTTP/Lucu.hs +++ b/Network/HTTP/Lucu.hs @@ -1,63 +1,56 @@ --- | 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: -- +-- [/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. --- --- [/Affinity for RESTafarians/] Lucu is a carefully designed --- web server for RESTful applications. --- --- [/SSL connections/] Lucu can handle HTTP connections over SSL --- layer. +-- [/SSL connections/] Lucu can handle HTTP connections over Secure +-- Socket 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: +-- 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) 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. -- -- [/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(..) - , emptyResource , ResTree , mkResTree - -- * Resource Monad + -- * 'Resource' Monad , module Network.HTTP.Lucu.Resource -- ** Things to be used in the Resource monad - -- *** Status Code , StatusCode(..) -- *** Abortion + , Abortion + , mkAbortion + , mkAbortion' , abort - , abortPurely - , abortA -- *** ETag , ETag(..) @@ -67,25 +60,25 @@ module Network.HTTP.Lucu -- *** MIME Type , MIMEType(..) + , mkMIMEType , parseMIMEType - -- *** Authorization + -- *** Authentication , AuthChallenge(..) , AuthCredential(..) - -- * Utility - + -- * Utilities -- ** Static file handling , module Network.HTTP.Lucu.StaticFile ) where import Network.HTTP.Lucu.Abortion -import Network.HTTP.Lucu.Authorization +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.Resource hiding (driftTo) +import Network.HTTP.Lucu.Resource import Network.HTTP.Lucu.Resource.Tree import Network.HTTP.Lucu.Response import Network.HTTP.Lucu.StaticFile