-- | 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\". -- -- [/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 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. -- -- [/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 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 -- * 'Config'uration , module Network.HTTP.Lucu.Config -- * URI-related data types , Host , Path -- * 'Resource' dispatcher , module Network.HTTP.Lucu.Dispatcher -- * 'Rsrc' Monad , module Network.HTTP.Lucu.Resource -- ** Things to be used in the Resource monad -- *** 'Method' , Method(..) -- *** 'StatusCode' , module Network.HTTP.Lucu.StatusCode -- *** 'Abortion' , module Network.HTTP.Lucu.Abortion -- *** ETag , ETag(..) , strongETag , weakETag -- *** MIME Type , MIMEType(..) , MIMEParams , parseMIMEType , mimeType -- *** 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.Dispatcher import Network.HTTP.Lucu.ETag import Network.HTTP.Lucu.Httpd 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.Response import Network.HTTP.Lucu.StaticFile import Network.HTTP.Lucu.StatusCode import Network.HTTP.Lucu.Utils