]> gitweb @ CieloNegro.org - Lucu.git/blob - Network/HTTP/Lucu.hs
Doc fix
[Lucu.git] / Network / HTTP / Lucu.hs
1 -- | Lucu is an HTTP daemonic library. It can be embedded in any
2 -- Haskell program and runs in an independent thread.
3 --
4 -- Features:
5 --
6 --   [/Full support of HTTP\/1.1/] Lucu supports request pipelining,
7 --   chunked I\/O, ETag comparison and \"100 Continue\".
8 --
9 --   [/Performance/] Lucu is carefully designed to gain a good
10 --   performance.
11 --
12 --   [/Affinity for RESTafarians/] Lucu is specifically designed to be
13 --   suitable for RESTful applications.
14 --
15 --   [/SSL connections/] Lucu can handle HTTP connections over SSL
16 --   layer.
17 --
18 -- Lucu is not a replacement for Apache or lighttpd. It is intended to
19 -- be used to build an efficient web-based RESTful application. It is
20 -- also intended to be run behind a reverse-proxy so it doesn't have
21 -- the following (otherwise essential) facilities:
22 --
23 --   [/Logging/] Lucu doesn't write logs of any requests from any
24 --   clients.
25 --
26 --   [/Client Filtering/] Lucu always accepts any clients. No IP
27 --   filter is implemented.
28 --
29 --   [/Bandwidth Limitting/] Lucu doesn't limit bandwidth it consumes.
30 --
31 --   [/Protection Against Wicked Clients/] Lucu is somewhat fragile
32 --   against wicked clients. No attacker should be able to cause a
33 --   buffer-overflow but can possibly DoS it.
34 --
35 module Network.HTTP.Lucu
36     ( -- * Entry Point
37       runHttpd
38
39       -- * 'Config'uration
40     , module Network.HTTP.Lucu.Config
41
42       -- * Resource Tree
43     , ResTree
44     , mkResTree
45
46       -- * 'Resource' Monad
47     , module Network.HTTP.Lucu.Resource
48
49       -- ** Things to be used in the Resource monad
50       -- *** Status Code
51     , StatusCode(..)
52
53       -- *** Abortion
54     , abort
55     , abortPurely
56     , abortA
57
58       -- *** ETag
59     , ETag(..)
60     , strongETag
61     , weakETag
62     , parseETag
63
64       -- *** MIME Type
65     , MIMEType(..)
66     , mkMIMEType
67     , parseMIMEType
68
69       -- *** Authentication
70     , AuthChallenge(..)
71     , AuthCredential(..)
72     
73       -- * Utilities
74       -- ** Static file handling
75     , module Network.HTTP.Lucu.StaticFile
76     )
77     where
78 import Network.HTTP.Lucu.Abortion
79 import Network.HTTP.Lucu.Authentication
80 import Network.HTTP.Lucu.Config
81 import Network.HTTP.Lucu.ETag
82 import Network.HTTP.Lucu.Httpd
83 import Network.HTTP.Lucu.MIMEType
84 import Network.HTTP.Lucu.Resource
85 import Network.HTTP.Lucu.Resource.Tree
86 import Network.HTTP.Lucu.Response
87 import Network.HTTP.Lucu.StaticFile