X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Lucu.git;a=blobdiff_plain;f=Network%2FHTTP%2FLucu.hs;h=876064ce8c14701931f0a040e6e8c511a02783b1;hp=efae41a90e499156cc2e62d8ad42b4a6db63f773;hb=0678be8;hpb=0aa4f6d758fc12fba468f7cd399bbcc48f693d1e diff --git a/Network/HTTP/Lucu.hs b/Network/HTTP/Lucu.hs index efae41a..876064c 100644 --- a/Network/HTTP/Lucu.hs +++ b/Network/HTTP/Lucu.hs @@ -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,32 +35,35 @@ module Network.HTTP.Lucu -- * 'Config'uration , module Network.HTTP.Lucu.Config - -- * Resource Tree - , ResTree - , mkResTree + -- * URI-related data types + , Host + , Path + + -- * 'Resource' dispatcher + , module Network.HTTP.Lucu.Dispatcher - -- * 'Resource' Monad + -- * 'Rsrc' Monad , module Network.HTTP.Lucu.Resource -- ** Things to be used in the Resource monad - -- *** Status Code - , StatusCode(..) + -- *** 'Method' + , Method(..) + + -- *** 'StatusCode' + , module Network.HTTP.Lucu.StatusCode - -- *** Abortion - , abort - , abortPurely - , abortA + -- *** 'Abortion' + , module Network.HTTP.Lucu.Abortion -- *** ETag , ETag(..) , strongETag , weakETag - , parseETag -- *** MIME Type , MIMEType(..) - , mkMIMEType - , parseMIMEType + , MIMEParams + , mimeType -- *** Authentication , AuthChallenge(..) @@ -78,10 +77,15 @@ module Network.HTTP.Lucu 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.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.Resource.Tree import Network.HTTP.Lucu.Response import Network.HTTP.Lucu.StaticFile +import Network.HTTP.Lucu.StatusCode +import Network.HTTP.Lucu.Utils