arche - a Hypermedia Discovery Service written in Clojure

Posted: 29 Jul 2015

Nearly a year ago, I started a project to teach myself Clojure. It’s been feature complete for a very long time now. I had just neglected to announce its availability.

The project is called arche. It is a hypermedia resource discovery service. A full description of the design is described here. (The project itself, incidentally, is an exact duplicate of a project I wrote in Ruby on Rails for my current company).

The following Clojure libraries were used to build the Clojure version:

  1. liberator - state-machine API framework
  2. compojure - Equivalent to Ruby’s Sinatra micro-framework
  3. ring - Equivalent to Ruby’s Rack
  4. speclj - like Rspec
  5. lein-cucumber
  6. environ - instant 12-factor app-ness

The overall experience was fantastic. I’ve programmed in Scheme, Racket, and Emacs Lisp, and Clojure was a pleasure. Clojure’s syntax and the APIs of it’s data structures are clear and concise. Its Java interop mode is suprisingly pleasant. A programmer literally needs some Lisp background and this cheatsheet and the rest is fairly straightforward.