MIT licensed by Reid Draper and Patrick Thomson
Maintained by Tim McGilchrist
This version can be pinned in stack with:airship-0.9.5@sha256:56f3f662e32fa7a4fc8c43e0a4bd96931cb5a7446e5cb7159a8b281a852f0242,3053

Airship

GitHub CI docs

Airship is a Haskell library for handling and serving HTTP requests in a RESTful fashion. It is heavily inspired by Webmachine and works with any WAI-compatible web server such as Warp.

It aims to be small, fast, and flexible.

How does it work?

Airship resources are represented with a Resource record type. Each field in Resource corresponds to an action taken in the Webmachine decision tree. Airship provides a defaultResource with sensible defaults for each of these actions; you build web services by overriding fields in the default resource with your own.

Routes are declared with a simple monadic syntax:

routes = do
    root                        #> someRootResource
    "account" </> var "name"    #> accountResource

For a simple example that handles HTTP GET and POST requests, please check example/Basic.hs. For a slightly more involved example that generates HTML and manages a pool of resources, please check the blimp repository.

Airship is copyright © 2015 Helium Systems, Inc., and released to the public under the terms of the MIT license.

Changes

  • 0.9.5

    • Maintenance release bumps upper bounds and add support for GHC 9.2.2.
  • 0.9.4

    • Bump upper bounds on bytestring-trie
    • Support GHC 8.4 and 8.6
  • 0.9.3

    • Bump upper bound on http-types due to stackage.
  • 0.9.0

    • Handle unspecified content-type (#107)
    • Unroll internal webmachine monad (#108)
    • Support for GHC 8.2.1
    • Various bugfixes