summaryrefslogtreecommitdiff
blob: 8c382561191abb0ba8e94900ad28d76a7f600dfc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
	<herd>haskell</herd>
	<use>
		<flag name='portable'>No non-haskell unportable code.</flag>
	</use>
	<longdescription>
		Snap is a simple and fast web development framework and server written in
		Haskell. For more information or to download the latest version, you can
		visit the Snap project website at &lt;http://snapframework.com/&gt;.
		
		This library contains the core definitions and types for the Snap framework,
		including:
		
		1. Primitive types and functions for HTTP (requests, responses, cookies,
		post/query parameters, etc)
		
		2. Type aliases and helper functions for Iteratee I/O
		
		3. A monad for programming web handlers called \&quot;Snap\&quot;, inspired by
		happstack&#39;s (&lt;http://happstack.com/index.html&gt;), which allows:
		
		* Stateful access to the HTTP request and response objects
		
		* Monadic failure (i.e. MonadPlus/Alternative instances) for declining
		to handle requests and chaining handlers together
		
		* Early termination of the computation if you know early what you want
		to return and want to prevent further monadic processing
		
		/Quick start/: The &#39;Snap&#39; monad and HTTP definitions are in &quot;Snap.Core&quot;,
		some iteratee utilities are in &quot;Snap.Iteratee&quot;.
		
		Higher-level facilities for building web applications (like user/session
		management, component interfaces, data modeling, etc.) are planned but not
		yet implemented, so this release will mostly be of interest for those who:
		
		* need a fast and minimal HTTP API at roughly the same level of abstraction
		as Java servlets, or
		
		* are interested in contributing to the Snap Framework project.
	</longdescription>
</pkgmetadata>