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.
All notable changes to this project will be documented in this file. This project adheres to the Package Versioning Policy.
- Bumped upper version bounds for containers and time.
- Updated to exceptions 0.10.x. This meant extending our
MonadMaskinstance to provide the
generalBracketmethod 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.
- Bumped QuickCheck upper bound to version < 2.10
- Bumped doctest to version < 0.12
- Cookie.hs: cookieExpires now has type
Maybe UTCTimerather than
- 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
- CGI.hs haddock: Use web.archive.org link for CGI specification
- Added support for building with mtl < 2.2.1 via flags
- Bumped exceptions version to < 0.9
- MonadMask instance for CGIT
- Applicative instance for CGI Monad
- Deduplicate shared with
- GHC 7.8.3 support