Helium + Webmachine = Airship. A toolkit for building declarative, RESTful web apps.
Go to file
2022-08-09 11:10:06 +10:00
.github Bump GHC 9.2 version 2022-08-09 11:10:06 +10:00
airship Add 0.9.5 changelog. 2022-04-11 13:56:05 +10:00
doc Update versioning document. 2015-10-26 11:49:32 +11:00
example Regenerate travis config with a newer version of haskell-ci. 2020-02-25 20:09:34 +11:00
_config.yml Set theme jekyll-theme-slate 2022-04-07 12:00:38 +10:00
.gitignore Update ci.yml 2021-06-17 12:18:53 +10:00
cabal.project Initial trigger for Github Actions based CI. 2021-06-17 10:25:37 +10:00
README.md Update bounds for GHC 9.2.2 2022-04-11 13:14:42 +10:00

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.