• Stars
    star
    242
  • Rank 167,048 (Top 4 %)
  • Language
    Haskell
  • Created almost 10 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Helium + Webmachine = Airship. A toolkit for building declarative, RESTful web apps.

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.

More Repositories

1

postgresql-transactional

Transactional monadic actions on top of PostgreSQL.
Haskell
59
star
2

ocaml-gitlab

Native OCaml bindings to Gitlab REST API v4
OCaml
27
star
3

tiger

Compiler for Tiger language from "Modern Compiler Implementation in ML"
OCaml
17
star
4

sloop

RAFT implementation in Erlang
Erlang
8
star
5

simple_irix_driver

Simple IRIX Device Driver
C
8
star
6

simple_cache

simple_cache application from Erlang and OTP in Action
Erlang
7
star
7

transformers-either

transformers-either
Haskell
6
star
8

hedgehog-corpus

Collections of strings for testing things.
5
star
9

pcl-ocaml

A parsec-style parser combinator library for ocaml
OCaml
4
star
10

scheme

Write Yourself a Scheme in 48 Hours
Haskell
4
star
11

roy-rails

Ruby gem to bundle the Roy language as an alternate JavaScript Engine for Rails.
Ruby
4
star
12

ocaml-2022-submission

Talk submission to OCaml workshop 2022 at ICFP
TeX
4
star
13

webmachine_talk

Slides for a talk about WebMachine that I gave to the Sydney Erlang group on April 3, 2012
JavaScript
3
star
14

erlio

Erlang url shortener
Erlang
3
star
15

llvm-tutorial

Toy language implemented on LLVM
Ruby
3
star
16

slide_machine

Erlang + Webmachine + Riak = Slide presentation web app
JavaScript
2
star
17

riak_ripple_talk

Talk I gave at RoRo Sydney, Tuesday March 13th
JavaScript
2
star
18

ocaml-changes

Parse an OCaml community style changelog
OCaml
2
star
19

ocaml-jack

QuickCheck with shrinking for free
OCaml
2
star
20

ruby-roy

Ruby Roy is a bridge to the Roy JS compiler.
JavaScript
2
star
21

.emacs.d

Tim's Emacs configuration
Emacs Lisp
2
star
22

beaterl

An Erlang Music Library
JavaScript
2
star
23

otp_rebar_sample

Erlang/OTP Rebar Application
Erlang
2
star
24

cothreads

Fork of cothreads library from source forge
OCaml
2
star
25

cog

CMU 15-411 Compiler Design Labs
Shell
1
star
26

milliner

Small ML for Erlang
Erlang
1
star
27

erlang_from_scratch

Source code for Webmachine and Erlang workshop at Yow LambdaJam 2014
Erlang
1
star
28

idris-ocaml

OCaml back end for Idris
1
star
29

kahvemill

Ruby
1
star
30

ocaml-formlets

The Essence of Form Abstraction
OCaml
1
star
31

study

Notes from reading academic papers
1
star
32

huck

'Cause just like in the classic mis-adventure, Tom doesn't really pull his weight. So Huck is gathering all the toml parsers and making them betterer.
Haskell
1
star