Concise web framework for Clojure and Google app engine
Pull request Compare This branch is 41 commits ahead of nateroling:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



compojure for google app engine - out of the box

forked cemerick / compojure (April 18th 2010); a compojure 0.3.3

Compojure is an open source web framework for the Clojure programming language. It emphasizes a thin I/O layer and a functional approach to web development.

What differs from the forked version?

The forked version includes multipart with FileUpload. This causes on google app engine an error: java.rmi.server.UID is a restricted class.

Alternatively, you can use a "normal" compojure and define the compojure.http usage more specific: (:use [compojure.http servlet routes helpers])

What happened with build.xml?

"And now I’m ready for anything and everything – including your ants." -- Leiningen Versus the Ants by Carl Stephenson

Leiningen can do anything and everything: lein jar

Yes, fine, but how can I use it?

Just add this in your project.clj file under :dependencies [compojure-gae "0.3.3"]

The jar file is hosted by

Why not compojure 0.4.x?

Compojure 0.4.x uses ring as library and therefore another different namespace is required.

Sample Code

Here's a small web application written in Compojure:

(use 'compojure)

(defroutes my-app
  (GET "/"
    (html [:h1 "Hello World"]))
  (ANY "*"

(run-server {:port 8080}
  "/*" (servlet my-app))


To run Compojure, you'll need:

These dependencies can be downloaded automatically using:

ant deps


For information on how to get started and use Compojure, please see our Wiki.

There is also a rough draft of a Compojure Tutorial available to read.


The Compojure Group is the best place to ask questions about Compojure, suggest improvements or to report bugs.


Eric Lavigne has written a series of excellent tutorials on Compojure:

John Hume has written about: