18

I'm trying to choose a library for client-side MVC in ClojureScript. Here's are the ClojureScript libraries I've found so far:

  1. WebFUI (https://github.com/drcode/webfui)
  2. Enfocus: (http://ckirkendall.github.io/enfocus-site/)
  3. Pedestal (http://pedestal.io)
  4. Ducttape (https://github.com/hozumi/ducttape.cljs)
  5. C2 (http://keminglabs.com/c2/) It seems this can be used as a DOM framework.

How should I choose between them? Also, how will they compare to using AngularJS or Backbone from ClojureScript?

Gordon Gustafson
  • 40,133
  • 25
  • 115
  • 157
Jonovono
  • 3,437
  • 5
  • 42
  • 64
  • So you're not interested in comments why angular may be better than clojure counterparts? ;-) – om-nom-nom Apr 09 '13 at 21:39
  • 1
    hah. I am open to that too! I have just read in a few places that using backbone/angular with clojurescript may not be preferred. But I have worked with angular before in JS and enjoy it but want to do things the 'clojure way' right now. – Jonovono Apr 09 '13 at 21:43
  • Now there is also Clojure on Coils at coils.cc – yazz.com Sep 10 '13 at 17:00
  • https://github.com/zubairq/coils – yazz.com Aug 06 '14 at 07:29

3 Answers3

6

This is not exactly a complete framework, maybe just the V of the client side MVC but it worth to keep an eye of it.

https://github.com/swannodette/om

A ClojureScript interface to Facebook's React

Om allows users to represent their UIs simply as EDN. Because ClojureScript data is immutable data, Om can always rapidly re-render the UI from the root. Thus Om UIs are out of the box snapshotable and undoable and these operations have no implementation complexity and little overhead.

Please don't miss this read http://swannodette.github.io/2013/12/31/time-travel/

Jaime Agudo
  • 8,076
  • 4
  • 30
  • 35
3

Ganelon (which I am author of) is a Clojure web microframework built on top of Ring/Compojure.

It is not exactly client-side MVC, as in general it provides a simple mechanism, that allows us to:

  1. invoke XHR request from a thin JavaScript layer (e.g. on link click or form submit)
  2. return JSON response containing operations to be performed (e.g. update DIV, display modal, etc.)
  3. perform operations from step 2 through a thin JavaScript layer

Docs & demo are available here: http://ganelon.tomeklipski.com.

Tomek Lipski
  • 166
  • 4
  • Thanks! I actually meant to include yours. I was checking it out awhile ago and it seems interesting. – Jonovono Apr 10 '13 at 19:16
1

I am the author of Coils, another Client Side Clojure framework:

https://github.com/zubairq/coils

yazz.com
  • 57,320
  • 66
  • 234
  • 385