[homepage patch
alex@happs.org**20060413204926] {
hunk ./README.html 14
-
HAppS is a Haskell library for building Internet applications, featuring:
+HAppS is a Haskell library for building industrial strength Internet applications safely, quickly, and easily. With HAppS you focus entirely on application functionality implemented in your favorite language and you don't have to worry about making sure all sorts of server subsystems are functioning properly. See the features:
+
+- HTTP Application Server
+Performs better than Apache/PHP in our informal benchmarks (thanks to FastPackedString), handles serving both large (video) files and lazy (javascript) streaming, supports HTTP-Auth, and more.
+
+- Mail delivery agent with integrated DNS resolver
+Stop worrying about making sure a separate local mail server or DNS is up and running to delivery your mail. HAppS takes care of making sure your mail is delivered as long as your application itself is running and makes sure no outbound mail is lost even with unplanned restarts.
+
+- XML and XSLT
+Separate application logic from presentation using XML/XSLT. With HAppS, you can have your application output XML (via HTTP or SMTP) and handle style/presentation via separate XSLT files at runtime. HAppS takes care of doing server side XSLT for outbound mail and HTTP user-agents that don't support it client side (note: user-agent detection still needs some refinement).
+
+- SMTP Server
+Handle incoming email in your application without worrying about .procmail or other user level inbound mail configuration hackery. Just have the HAppS.SMTP listen on port 25 or have the system mail server SMTP forward mail for your app to some internal port.
+
+- Monadic ACID transaction service
+Write apps as a set of simple state transformers. MACID write-ahead logging and checkpointing make it easy for you to guarantee application integrity in the face of unplanned outages. MACID even guarantees that your side effects will be executed at-least-once if they can complete within a timelimit you define. You can even define partial orders for the execution of some of your side effects (e.g. appending to a file).
+
+
+- Session Service
+Define bits of per-user application state that automatically expire after time limits you define. No more manual housekeeping of session data!
+
+
+- (Experimental) Table and Index
+Do relational operations safely on in memory Haskell Data.Set(s) rather than dealing with an external SQL relational database. Define custom indices for your Haskell datatypes (e.g. geographic/geometric types). Use in combination with MACID for a robust relational DBMS customized for your application.
+
+
+
+
+
hunk ./README.html 61
+
hunk ./README.html 80
-
-
-For a trivial example of a combined SMTP/HTTP server that uses an in memory
+
+
+
HAppS was inspired by Python Twisted, Prevayler, and SEDA. For details, see HAppS Architecture.
+
+For trivial usage examples see hello world and simple mail and http example. For a trivial relational Table/Index example see HAppS.DBMS.Example For the source to Pass.net, a live application built on top of HAppS, darcs get http://pass.net/s/repo
.
+
+
+
+
hunk ./README.html 94
-For motivation for HAppS design see HAppS
-Architecture.
hunk ./README.html 104
-More information is available at http://HAppS.org
-A tarball of HAppS is available at http://HAppS.org/HAppS/HAppS.tar.gz.
-HAppS is also available via darcs:
-
hunk ./README.html 109
+Documentation Update (April 13, 2006)
+Modified top of the homepage to reflect current thoughts on the value of HAppS.
+
hunk ./README.html 113
+
hunk ./README.html 148
-Module Documentation
-HAppS.Protocols
+
+General Commentary (!!this section needs help!!)
+
+HAppS.MACID
+Use HAppS.MACID to build applications that need
hunk ./README.html 185
- You provide a function that returns a new state. Any errors mean
+ You provide a state transformer function. Any errors mean
hunk ./README.html 194
- transparency to make total order vastly superior to other processing models.)
+ transparency to make total order vastly superior to other processing models.)
hunk ./README.html 346
-
+
hunk ./README.html 378
-Copyright (c) 2005 HAppS.org. All Rights Reserved.
+
Copyright (c) 2006 HAppS.org. All Rights Reserved.
}