Hi folks,
It's been a while since there's been much obvious development work on
Compojure, and I've had some questions on what my plans are for the
future of the framework.
==== Factoring out functionality ====
The main plan is to factor functionality out to separate libraries,
and much of the work I've been doing recently has been in some way
related to this. The final goal is to turn Compojure into a thin
wrapper around a collection of specialised libraries that can be
maintained separately, and be used by other web frameworks.
Future versions of Compojure will use the following libraries:
== Clout (
http://github.com/weavejester/clout) ==
A library for parsing routes, derived from compojure.http.routes. Uses
the Rails-derived "keyword" syntax that Compojure currently uses, but
allows keywords to have custom regular expressions. In future this
will also support the syntax from Python's Routes library.
== Hiccup (
http://github.com/weavejester/hiccup) ==
I've yet to release a working version of this, but will be a library
for generating HTML, derived from compojure.html. I'm hoping to make
it opportunistically pre-compile, so it should be as fast as clj-html,
but retain the benefits of being dynamically generated. It'll also
include all the helper functions currently in Compojure.
== Ring (
http://github.com/mmcgrana/ring) ==
Compojure will start using the Ring libraries directly, discarding
compojure.http.servlet in favour of ring.util.servlet, amongst other
changes.
I'm also thinking about factoring out a lot of middleware and the
Jetty server interface into separate libraries, but I haven't thought
as much about that as yet.
As the number of dependencies for Compojure increase, I'm going to
experiment with Capra, my nearly-complete dependency management system/
package repository.
==== Website ====
For the Compojure website, I've decided to start a wiki:
http://wiki.compojure.org/
It's still rather rough around the edges, but it's taking shape pretty
quickly. It's too much of a pain to try to maintain documentation made
up of static pages, so I'm going to phase out
preview.compojure.org
and make
wiki.compojure.org the main site, once I've moved all the
documentation across and fixed the style and layout of the wiki.
- James