Route One is a Clojure DSL for URL/URI/path generation from a route map, compatible with Compojure’s Clout.

1.0.0-rc2 is a development milestone release that further improves Compojure integration.

Changes between Route One 1.0.0-rc1 and 1.0.0-rc2

Tight Compojure integration

It is now possible to define named Compojure routes with Route One:

(ns my-app
  (:require [compojure.core :as compojure :as compojure])
  (:use clojurewerkz.route-one.compojure))

(compojure/defroutes main-routes
  (GET about request (handlers.root/root-page request)) ;; will use /about as a template
  (GET documents request (handlers.root/documents-page request)) ;; will use /documents as a template)

This will generate main-routes in same exact manner Compojure generates them, but will also add helper functions for building urls (about-path, about-url, documents-path, document-url and so on).

To use this feature, you’ll have to bring in Compojure as a dependency to your project:

[compojure "1.1.5"]

Change log

Route One change log is available on GitHub.

Route One is a ClojureWerkz Project

Route One is part of the group of libraries known as ClojureWerkz, together with

  • Langohr, a Clojure client for RabbitMQ that embraces the AMQP 0.9.1 model
  • Elastisch, a small feature complete Clojure client for ElasticSearch
  • Cassaforte, a Clojure Cassandra client
  • Monger, a Clojure MongoDB client for a more civilized age
  • Titanium, a Clojure graph library
  • Neocons, a client for the Neo4J REST API
  • Welle, a Riak client with batteries included
  • Quartzite, a powerful scheduling library

and several others. If you like Elastisch, you may also like our other projects.

Let us know what you think on Twitter or on the Clojure mailing list.

Michael on behalf of the ClojureWerkz Team