We are excited to officially announce the open source release of our REST framework
rest is a set of packages used to write, document, and use RESTful applications. You write your API in Haskell using
If you want to start using
rest, check out the tutorial or the example application. You can also come to the Haskell Exchange 2014 where Erik will give a talk about
rest. We’d also be happy to answer any questions you have, shoot us an e-mail!
The most important packages are:
- rest-core: A DSL for defining versioned and web server agnostic REST resources. This is the workhorse of the framework
- rest-snap, rest-happstack, rest-wai: Drivers for running resources using the web server of your choice
We have also released other packages that are either used by or can be used with
- rest-client: Used by haskell clients generated by rest-gen
- rest-types: Types used by the other rest packages
- json-schema: Define and derive schemas for JSON serializations
- generic-aeson: Generically derives JSON serializations for data types minimalistically
- regular-xmlpickler: Generically derives XML serializations for data types
- aeson-utils: Utilities for working with Aeson.
- hxt-pickle-utils: Utility functions for using HXT picklers
- multipart: HTTP Multipart implementation forked from the cgi package
- rest-stringmap: Maps with string-like keys with built-in serialization to XML and JSON (since JSON doesn’t allow arbitrary keys)
- code-builder: String manipulation library for code generation
We had a great time working on rest at ZuriHac (thanks for organizing, Better!) and we are happy to see that a lot of people were interested in our work. We got a lot done, here are some highlights:
- Erik wrote an introductory tutorial to
- Håkan Thörngren rewrote the rest-gen Haskell code generator to use haskell-src-exts, it was released in rest-gen-0.14
- Christian Berentsen did several things:
- Cleaned up the interface of json-schema, it was released in json-schema-0.6
- Added support for outputing Fay compatible json as a separate output type (we want to make it easier to extend rest with more output types so things like this can go in external packages)
- Implemented a generic API discovery resource that you can hook into your API with no configuration
- Tom Lokhorst helped out with some always appreciated bug fixing
- Sebas wrote the rest-wai driver to make sure everyone can use the web server they prefer together with rest
- Adam worked on the rest-example application and rewrote parts of rest-gen to make the code generator and the library interface simpler
- wiz did performance benchmarks and created a script to generate haddocks for rest itself
I hope I didn’t forget anyone. A big thanks to everyone who participated!
All the mentioned projects are available on hackage and in public repositories on github. We also created a public mailing list for all our open source projects.
Join our team if you enjoy this stuff too, we’re hiring!