Near-future plans for Compojure

5 views
Skip to first unread message

James Reeves

unread,
Nov 2, 2009, 6:30:46 PM11/2/09
to Compojure
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

Nicolas Buduroi

unread,
Nov 10, 2009, 7:45:25 PM11/10/09
to Compojure
> 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.

Great plan, it's quite a big change for the project structure, but
it's better now than latter like we say. I'm all in favor of breaking
things up for interroperability, so kudos for that decision!

> As the number of dependencies for Compojure increase, I'm going to
> experiment with Capra, my nearly-complete dependency management system/
> package repository.

Looking forward to this, dependency management is great when it's done
for you! ;-)

> For the Compojure website, I've decided to start a wiki:

Funny, I was just working on a (very small) wiki implementation last
week. I see you're using DokuWiki, heard lots of good thing about it.

- budu
Reply all
Reply to author
Forward
0 new messages