X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Network%2FHTTP%2FLucu.hs;h=efae41a90e499156cc2e62d8ad42b4a6db63f773;hb=0aa4f6d758fc12fba468f7cd399bbcc48f693d1e;hp=4ab6bc65abd01f376a70f997705c9534db365e41;hpb=a827a5e1ba744d89c5b2396bb195e344ae892306;p=Lucu.git diff --git a/Network/HTTP/Lucu.hs b/Network/HTTP/Lucu.hs index 4ab6bc6..efae41a 100644 --- a/Network/HTTP/Lucu.hs +++ b/Network/HTTP/Lucu.hs @@ -6,79 +6,82 @@ -- [/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. +-- [/Performance/] Lucu is carefully designed to gain a good +-- performance. -- --- 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 specifically designed to be +-- suitable for RESTful applications. -- --- [/Logging/] Lucu doesn't log any requests from any clients. +-- [/SSL connections/] Lucu can handle HTTP connections over SSL +-- layer. -- --- [/Client Filtering/] Lucu always accept any clients. No IP filter --- is implemented. +-- 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: -- --- [/SSL Support/] Lucu can handle HTTP only. +-- [/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 cause a buffer-overflow but --- can possibly DoS it. +-- [/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 - -- * Resource Monad + -- * 'Resource' Monad , module Network.HTTP.Lucu.Resource -- ** Things to be used in the Resource monad - -- *** Status Code , StatusCode(..) -- *** Abortion , abort + , abortPurely , abortA -- *** ETag , ETag(..) , strongETag , weakETag + , parseETag -- *** MIME Type , MIMEType(..) - , () - , (<:>) - , (<=>) - - -- * Utility + , mkMIMEType + , parseMIMEType + -- *** 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.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 import Network.HTTP.Lucu.Resource.Tree import Network.HTTP.Lucu.Response import Network.HTTP.Lucu.StaticFile