Web/Framework Interfaces: Difference between revisions
(First iteration of interfaces) |
mNo edit summary |
||
(6 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Web|*]] | |||
{{Web infobox}} | |||
Below are high-level abstractions of various Haskell web frameworks, called ''interfaces'', because they provide a generic ''interface'' with various frameworks. | Below are high-level abstractions of various Haskell web frameworks, called ''interfaces'', because they provide a generic ''interface'' with various frameworks. | ||
Line 5: | Line 8: | ||
Hack is a simple interface for applications. Based on Ruby's Rack, it presents a very low barrier to entry. Unlike WAI, it uses lazy bytestrings for request and response bodies, making it easier to use for some. Many backends are available, for numerous backends; simply search hackage for "hack-handler-". | Hack is a simple interface for applications. Based on Ruby's Rack, it presents a very low barrier to entry. Unlike WAI, it uses lazy bytestrings for request and response bodies, making it easier to use for some. Many backends are available, for numerous backends; simply search hackage for "hack-handler-". | ||
{| class="wikitable" | |||
! License | |||
| BSD3 | |||
|- | |||
! Author | |||
| Wang, Jinjing | |||
|- | |||
! Maintainer | |||
| Wang, Jinjing <nfjinjing@gmail.com> | |||
|- | |||
! Package & repositories | |||
| [http://hackage.haskell.org/package/hack Hackage] - [http://github.com/nfjinjing/hack Github] | |||
|} | |||
== WAI == | == WAI == | ||
The WAI (Web Application Interface) is designed to be a type-safe and performant interface. Type safety is achieved by having data types such as RequestHeader, ResponseHeader, HttpVersion, as opposed to simply using Strings or ByteStrings. Performance is achieved by using an enumerator interface, allowing constant-space response construction without needing lazy I/O. Backends available are currently a simple server, CGI, FastCGI, SCGI and a | The WAI (Web Application Interface) is designed to be a type-safe and performant interface. Type safety is achieved by having data types such as RequestHeader, ResponseHeader, HttpVersion, as opposed to simply using Strings or ByteStrings. Performance is achieved by using an enumerator interface, allowing constant-space response construction without needing [[Lazy IO|lazy I/O]]. Backends available are currently a simple server, CGI, FastCGI, SCGI and a Warp Server backend. | ||
{| class="wikitable" | |||
! License: | |||
| BSD3 | |||
|- | |||
! Author: | |||
| Michael Snoyman | |||
|- | |||
! Maintainer: | |||
| michael@snoyman.com | |||
|- | |||
! Announcement: | |||
| [http://www.haskell.org/pipermail/haskell-cafe/2010-March/074142.html Haskell-Cafe] | |||
|- | |||
! Package & repositories | |||
| [http://hackage.haskell.org/package/wai Hackage] - [https://github.com/yesodweb/wai Github] | |||
|} |
Latest revision as of 12:02, 19 April 2024
Below are high-level abstractions of various Haskell web frameworks, called interfaces, because they provide a generic interface with various frameworks.
Hack
Hack is a simple interface for applications. Based on Ruby's Rack, it presents a very low barrier to entry. Unlike WAI, it uses lazy bytestrings for request and response bodies, making it easier to use for some. Many backends are available, for numerous backends; simply search hackage for "hack-handler-".
License | BSD3 |
---|---|
Author | Wang, Jinjing |
Maintainer | Wang, Jinjing <nfjinjing@gmail.com> |
Package & repositories | Hackage - Github |
WAI
The WAI (Web Application Interface) is designed to be a type-safe and performant interface. Type safety is achieved by having data types such as RequestHeader, ResponseHeader, HttpVersion, as opposed to simply using Strings or ByteStrings. Performance is achieved by using an enumerator interface, allowing constant-space response construction without needing lazy I/O. Backends available are currently a simple server, CGI, FastCGI, SCGI and a Warp Server backend.
License: | BSD3 |
---|---|
Author: | Michael Snoyman |
Maintainer: | michael@snoyman.com |
Announcement: | Haskell-Cafe |
Package & repositories | Hackage - Github |