Replacing Network.CGI with NewCGI

Bjorn Bringert bringert at cs.chalmers.se
Thu Jul 20 18:54:30 EDT 2006


Any users of Network.CGI here?

I would like to propose replacing the current Network.CGI module with  
what is now known as Network.NewCGI [2]. This has been mentioned  
briefly before [1]. The new module is backwards compatible with the  
old one (except for the export of Text.Html.Html, which is now  
Text.XHtml.Html).

Here is what I would like to do:

- Remove Network.CGI from the network package.
- Change the name of Network.NewCGI to Network.CGI
- Add the cgi package to http://darcs.haskell.org/packages/
- Add the xhtml package [3] to http://darcs.haskell.org/packages/  
This is needed since the cgi package uses it to generate error pages.

Any comments, suggestions, or objections?


Here is a summary of the features of NewCGI:

- 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.
- An efficient implementation of multipart/form-data using  
Data.ByteString. This allows for efficient handling of file uploads.
- Wrapper functions for compatibility with the existing Network.CGI  
module.
- A CGI monad transformer.
- Basic exception handling and logging.
- Low-level run functions that allow using NewCGI programs with  
protocols other than CGI, for example FastCGI [4].

/Björn


[1] http://www.haskell.org/pipermail/libraries/2006-May/005391.html

[2] http://www.cs.chalmers.se/~bringert/darcs/haskell-cgi/doc/

[3] http://www.cs.chalmers.se/~bringert/darcs/haskell-xhtml/doc/

[4] http://www.cs.chalmers.se/~bringert/darcs/haskell-fastcgi/doc/



More information about the Libraries mailing list