Clojure Web Infrastructure
Thanks for visiting. Since originally creating this page I’ve created a new site for tracking Clojure Libraries. You can find it over at http://clojure-libraries.appspot.com. In particular the ‘Web Server Libraries‘ section would be of interest to those looking for libraries for use in web development with Clojure.
Additional entries:
Templating: http://bitbucket.org/kumarshantanu/clj-stringtemplate/src
Databases: https://github.com/brentonashworth/carte
Nice post.
Pallet and jclouds are definitely worth a mention in the ‘infrastructure’ layer of that cake:
http://cemerick.com/2010/11/02/continuous-deployment-of-clojure-web-applications/
For routing there’s also Clout on the routing side. It only does the matching portion, but it’s very handy. https://github.com/weavejester/clout
There might be another new addition getting open sourced in a few days time that will be worth adding here.
Wow, I can write redundantly with the best of them: “for routing… on the routing side.” haha
Great article!
I’d also like to throw in a suggestion for the templating section: https://github.com/chaslemley/slim.clj
Obviously not a prime concert, but boy does this create a high barrier-to-entry for us Clojure newbs wanting to make some interwebs!
For the generating the proper HTTP response codes there is also plugboard:
https://github.com/malcolmsparks/plugboard/
Don’t forget Brenton’s Sandbar library, which most likely fits under “Validation” above:
https://github.com/brentonashworth/sandbar
There’s also rest-serv for providing a RESTful interface to stored resources. Useful for interfacing between a k/v store and a web or mobile app.
https://github.com/clj-sys/rest-serv
Another option for web app deployment is Crane.
https://github.com/clj-sys/crane
For NoSQL database access (CouchDB in particular) you can use clojure-couchdb: https://github.com/joubertnel/clojure-couchdb
Thanks for the feedback everyone. I’ve updated the article with all the new links everyone has provided. Let me know if you have any more.
In addition to clojure-couchdb there is clutch, which once upon a time (months ago) was said to have more complete features.
We just released a new tool for making RESTful APIs. It’s a Clojure port of WebMachine called Clothesline, and the source is up at http://github.com/BankSimple/Clothesline
It acts as a ring handler (so some of the states and functions in Webmachine are only vestigial), but the webmachine model does have a lot of perks even if it sits underneath middleware.
I’ll try to get another update out today. There are a bunch of NoSQL projects that I’m missing as well. I’ve been surprised by the number of projects that are out there. There is certainly plenty of choice.
So great a post that helpful for clojure beginners
Glen, you rock, as usual.
Great to see folks embracing a truly de-coupled approach to building web applications. IMHO, we have too many frameworks that are billed as “silver bullets” for web application development; this kind of list should be seen as a challenge to that notion.
Thanks for compiling this information!
Thank you for the descriptions and chart – great resource.
Clothesline would better fit under REST (rather than validation).
Thanks.