Difference between revisions of "Web/Libraries/CGI"

From HaskellWiki
< Web‎ | Libraries
Jump to navigation Jump to search
(Added SCGI)
(Use tables)
 
Line 13: Line 13:
 
* Wrapper
 
* Wrapper
   
  +
{| class="wikitable"
'''License:''' BSD3
 
  +
! License:
 
  +
| BSD3
'''Copyright:''' Bjorn Bringert, Andy Gill, Anders Kaseorg, Ian Lynagh, Erik Meijer, Sven Panne, Jeremy Shaw
 
  +
|-
 
  +
! Copyright:
'''Author:''' Bjorn Bringert
 
  +
| Bjorn Bringert, Andy Gill, Anders Kaseorg, Ian Lynagh, Erik Meijer, Sven Panne, Jeremy Shaw
 
  +
|-
'''Maintainer:''' Anders Kaseorg <andersk@mit.edu>
 
  +
! Author:
 
  +
| Bjorn Bringert
'''Home page:''' http://andersk.mit.edu/haskell/cgi/
 
  +
|-
 
  +
! Maintainer:
'''Package & repositories'''
 
  +
| Anders Kaseorg <andersk@mit.edu>
 
  +
|-
* Hackage: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/cgi
 
  +
! Home page:
* Git: http://andersk.mit.edu/gitweb/haskell/cgi.git
 
  +
| http://andersk.mit.edu/haskell/cgi/
  +
|-
  +
! Package & repositories
  +
| [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/cgi Hackage] - [http://andersk.mit.edu/gitweb/haskell/cgi.git Git]
  +
|}
   
 
== direct-fastcgi ==
 
== direct-fastcgi ==
Line 32: Line 37:
 
This package is a native implementation of the FastCGI protocol, allowing Haskell to work with any webserver that supports it. It makes no attempt to imitate the interface of the cgi-3000 and fastcgi-3000 packages, because that API is tied too heavily to legacy interfaces, as with its handling of exceptions, logging, and time. Its advantage over those packages is primarily in the area of clean exception management and better control structure which allows more versatility in processing requests which are not simple GETs. In particular, POST of large files should be possible, as should server-push responses which return content a piece at a time. Also, of course, as a native implementation, there is no dependency on a C library, which simplifies the install process.
 
This package is a native implementation of the FastCGI protocol, allowing Haskell to work with any webserver that supports it. It makes no attempt to imitate the interface of the cgi-3000 and fastcgi-3000 packages, because that API is tied too heavily to legacy interfaces, as with its handling of exceptions, logging, and time. Its advantage over those packages is primarily in the area of clean exception management and better control structure which allows more versatility in processing requests which are not simple GETs. In particular, POST of large files should be possible, as should server-push responses which return content a piece at a time. Also, of course, as a native implementation, there is no dependency on a C library, which simplifies the install process.
   
  +
{| class="wikitable"
'''License:''' BSD3
 
  +
! License:
 
  +
| BSD3
'''Copyright:''' Copyright (c) 2009 Dan Knapp
 
  +
|-
 
  +
! Copyright:
'''Author:''' Dan Knapp
 
  +
| Copyright (c) 2009 Dan Knapp
 
  +
|-
'''Maintainer:''' dankna@gmail.com
 
  +
! Author:
 
  +
| Dan Knapp
'''Home page:''' http://dankna.com/software/
 
  +
|-
 
  +
! Maintainer:
'''Package & repositories'''
 
  +
| dankna@gmail.com
 
  +
|-
* Hackage: http://hackage.haskell.org/package/direct-fastcgi
 
  +
! Home page:
  +
| http://dankna.com/software/
  +
|-
  +
! Package & repositories
  +
| [http://hackage.haskell.org/package/direct-fastcgi Hackage]
  +
|}
   
 
== fastcgi ==
 
== fastcgi ==
Line 50: Line 61:
 
This library lets you write FastCGI programs. This package reuses the cgi package API, making it very easy to port CGI programs to FastCGI. The FastCGI C development kit is required to build this library.
 
This library lets you write FastCGI programs. This package reuses the cgi package API, making it very easy to port CGI programs to FastCGI. The FastCGI C development kit is required to build this library.
   
  +
{| class="wikitable"
'''License:''' BSD3
 
  +
! License:
 
  +
| BSD3
'''Copyright:''' Bjorn Bringert, Lemmih
 
  +
|-
 
  +
! Copyright:
'''Maintainer:''' Chris Done <chrisdone@gmail.com>
 
  +
| Bjorn Bringert, Lemmih
 
  +
|-
'''Package & repositories'''
 
  +
! Maintainer:
 
  +
| Chris Done <chrisdone@gmail.com>
* Hackage: http://hackage.haskell.org/package/fastcgi
 
  +
|-
  +
! Package & repositories
  +
| [http://hackage.haskell.org/package/fastcgi Hackage]
  +
|}
   
 
== SCGI ==
 
== SCGI ==
Line 68: Line 83:
 
Install, import Network.SCGI, and use runSCGI. Everything else is then done inside a CGI monad as above.
 
Install, import Network.SCGI, and use runSCGI. Everything else is then done inside a CGI monad as above.
   
  +
{| class="wikitable"
'''License:''' BSD3
 
  +
! License:
 
  +
| BSD3
'''Copyright:''' (c) Eric Sessoms 2007, (c) Stephen Blackheath 2008
 
  +
|-
 
  +
! Copyright:
'''Author:''' Eric Sessoms <nubgames@gmail.com>, Stephen Blackheath <http://blacksapphire.com/antispam/>
 
  +
| (c) Eric Sessoms 2007, (c) Stephen Blackheath 2008
 
  +
|-
'''Maintainer:''' http://blacksapphire.com/antispam/
 
  +
! Author:
 
  +
| Eric Sessoms <nubgames@gmail.com>, Stephen Blackheath <http://blacksapphire.com/antispam/>
'''Package & repositories'''
 
  +
|-
 
  +
! Maintainer:
* Hackage: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/scgi
 
  +
| http://blacksapphire.com/antispam/
  +
|-
  +
! Package & repositories
  +
| [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/scgi Hackage]
  +
|}

Latest revision as of 00:22, 4 October 2010

Haskell Web Development

Software:
Servers - Libraries - Frameworks
Deploy - Cloud
Interfaces to frameworks
Databases and Persistence
Testing and Verification
Content Management

Community & Research:
Forums and Discussion
Literature (research, talks and blogs)
Existing Haskell web applications
Ongoing projects and ideas

cgi

Simple Library for writing CGI programs. This version of the library is for systems with version 2.0 or greater of the network package. This includes GHC 6.6 and later. Features include:

  • Access to CGI parameters (e.g. form input) from both GET and POST requests.
  • Access to CGI environment variables.
  • Ability to set arbitrary response headers.
  • Support for HTTP cookies.
  • Efficient file upload support.
  • Wrapper
License: BSD3
Copyright: Bjorn Bringert, Andy Gill, Anders Kaseorg, Ian Lynagh, Erik Meijer, Sven Panne, Jeremy Shaw
Author: Bjorn Bringert
Maintainer: Anders Kaseorg <andersk@mit.edu>
Home page: http://andersk.mit.edu/haskell/cgi/
Package & repositories Hackage - Git

direct-fastcgi

This package is a native implementation of the FastCGI protocol, allowing Haskell to work with any webserver that supports it. It makes no attempt to imitate the interface of the cgi-3000 and fastcgi-3000 packages, because that API is tied too heavily to legacy interfaces, as with its handling of exceptions, logging, and time. Its advantage over those packages is primarily in the area of clean exception management and better control structure which allows more versatility in processing requests which are not simple GETs. In particular, POST of large files should be possible, as should server-push responses which return content a piece at a time. Also, of course, as a native implementation, there is no dependency on a C library, which simplifies the install process.

License: BSD3
Copyright: Copyright (c) 2009 Dan Knapp
Author: Dan Knapp
Maintainer: dankna@gmail.com
Home page: http://dankna.com/software/
Package & repositories Hackage

fastcgi

This library lets you write FastCGI programs. This package reuses the cgi package API, making it very easy to port CGI programs to FastCGI. The FastCGI C development kit is required to build this library.

License: BSD3
Copyright: Bjorn Bringert, Lemmih
Maintainer: Chris Done <chrisdone@gmail.com>
Package & repositories Hackage

SCGI

This library lets you write SCGI programs. This package reuses the cgi package API, making it very easy to port CGI programs to SCGI.

SCGI is a simpler alternative to FastCGI for writing CGI-like programs in persistent processes, external to the web server. SCGI is less featureful than FastCGI, but has the advantage that it does not require an external library.

Install, import Network.SCGI, and use runSCGI. Everything else is then done inside a CGI monad as above.

License: BSD3
Copyright: (c) Eric Sessoms 2007, (c) Stephen Blackheath 2008
Author: Eric Sessoms <nubgames@gmail.com>, Stephen Blackheath <http://blacksapphire.com/antispam/>
Maintainer: http://blacksapphire.com/antispam/
Package & repositories Hackage