BSD-3-Clause licensed by Bjorn Bringert
Maintained by John Chee, Peter Simons
This version can be pinned in stack with:cgi-3001.4.0.0@sha256:b9030005162183eba8d0ad0fb48c7d9d7b1bab456a9da831931f70fa60223a60,3105

Module documentation for 3001.4.0.0

cgi

hackage release stackage LTS package stackage Nightly package travis build status

This is a Haskell library for writing CGI programs. Its 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.
  • An efficient implementation of multipart/form-data using Data.ByteString. This allows for efficient handling of file uploads.
  • Wrapper functions for compatibility with the old Network.CGI module.
  • A CGI monad transformer.
  • Basic exception handling and logging (these should be improved)
  • Low-level run functions that allow using programs written with this package with protocols other than CGI, for example FastCGI.

On hackage: http://hackage.haskell.org/package/cgi Source: https://github.com/cheecheeo/haskell-cgi

Changes

Change Log

All notable changes to this project will be documented in this file. This project adheres to the Package Versioning Policy.

[3001.4.0.0]

  • Drop obsolete Network.CGI.Compat module. The code in that module relied on obsolete functions and types from network which have been dropped there in the latest 3.x release. Re-writing the Compat module to use the new types felt like it would defeat the purpose of the module, so we’ve dropped it instead.
  • Dropped the dependency on network altogether. We need network-uri, really. Giving up support for ancient versions of network allows us to drop the network-uri flag, too, simplifying our builds.
  • Dropped support for versions of mtl prior to 2.2.x. That version was released almost 5 years ago, so we can probably drop the compatibility code (and the old-mtl Cabal flag) without surprising anyone.
  • Added new cookieHttpOnly flag to the Cookies type. When set, the client’s browser will prevent client side scripts from accessing the cookie.

[3001.3.1.0]

Changed

  • Our error handling functions throwCGI, catchCGI, tryCGI, and handleExceptionCGI are deprecated. These functions are trivial aliases for the corresponding functions from the exceptions library’s MonadCatch class. Users should directly use those functions. They are more general and have better documentation.
  • Relax version constraints to allow building with network 2.8.x.

[3001.3.0.3]

Changed

  • Bumped upper version bounds for containers and time.
  • Updated to exceptions 0.10.x. This meant extending our MonadMask instance to provide the generalBracket method that was added to the class in recent versions of the exceptions library.
  • The doctest suite would not work reliably with different versions of Cabal. Instead of going all out with a custom written build system to support it properly, we now run doctests as part of our CI builds but not as a part of the Cabal build any more.
  • Fixed several compiler warnings in our code.

3001.3.0.2

Changed

  • Bumped QuickCheck upper bound to version < 2.10

3001.3.0.1

Changed

  • Bumped doctest to version < 0.12

3001.3.0.0

Changed

  • Cookie.hs: cookieExpires now has type Maybe UTCTime rather than Maybe CalendarTime
  • Protocol.hs: URL decoding functions no longer decode UTF-8 encoding
  • Functor and Applicative instance of CGIT no longer constrain Functor or Applicative parameter to be an instance of Monad

3001.2.2.3

Changed

  • CGI.hs haddock: Use web.archive.org link for CGI specification

3001.2.2.2

Changed

  • Added support for building with mtl < 2.2.1 via flags

3001.2.2.1

Changed

  • Bumped exceptions version to < 0.9

3001.2.2.0

Added

  • MonadMask instance for CGIT

3001.2.1.0

Added

  • Applicative instance for CGI Monad

Changed

  • Deduplicate shared with multipart code

3001.2.0.0

Changed

  • GHC 7.8.3 support