The salvia package

[ Tags: bsd3, library, network, web ] [ Propose Tags ]

Salvia is a feature rich modular web server and web application framework that can be used to write dynamic websites in Haskell. From the lower level protocol code up to the high level application code, everything is written as a Salvia handler. This approach makes the server extremely extensible. To see a demo of a Salvia website, please see the salvia-demo package.

All the low level protocol code can be found in the salvia-protocol package, which exposes the datatypes, parsers and pretty-printers for the URI, HTTP, Cookie and MIME protocols.

This Salvia package itself can be separated into three different parts: the interface, the handlers and the implementation. The interface module defines a number of type classes that the user can build the web application against. Reading the request object, writing to the response, or gaining direct access to the socket, all of these actions are reflected using one type class aspect in the interface. The handlers are self contained modules that implement a single aspect of the Salvia web server. The handlers expose their interface requirements in their type context. Salvia can have multiple implementations which can be switched by using different instances for the interface type classes. This package has only one implementation, a simple accepting socket loop server. The salvia-extras package has two additional implementations. Keeping a clear distinction between the abstract server aspects and the actual implementation makes it very easy to migrate existing web application to different back-ends.


Versions 0.0.4, 0.0.5, 0.1, 0.1.1, 0.1.2, 1.0.0
Dependencies base (==4.*), bytestring (==0.9.*), containers (>=0.2 && <0.4), directory (==1.0.*), fclabels (==0.4.*), MaybeT-transformers (==0.1.*), monads-fd (==0.0.*), network (>= && <2.3), old-locale (==1.0.*), process (==1.0.*), pureMD5 (==1.0.*), random (==1.0.*), safe (==0.2.*), salvia-protocol (==1.0.*), split (==0.1.*), stm (==2.1.*), text (>=0.5 && <0.8), threadmanager (==0.1.3), time (==1.1.*), transformers (==0.1.*), unix (>=2.3 && <2.5), utf8-string (==0.3.*) [details]
License BSD3
Author Sebastiaan Visser
Category Network, Web
Uploaded Sun Mar 21 15:55:24 UTC 2010 by SebastiaanVisser
Distributions NixOS:1.0.0
Downloads 1990 total (34 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI




Maintainer's Corner

For package maintainers and hackage trustees