Composer.js
-
DOM patching
Only renders the parts of your templates that have changed, batching updates for efficiency. -
List tracking
Mirrors a set of elements in the DOM from models in a collection, preserving sort order. -
Eventing
Loosely tie your app's systems together using the independent eventing module. -
Promise integration
Include your favorite promise library, call one function, and all async functions return promises. -
Router
Easily segment portions of your app by URL. Automatically route links in your app. -
Filtered collections
Create collections that attach to other collections and apply filters and sorting. -
Class system
Use the tiny base class system for making your own extendable modules. -
Controller event merging
Controllers inherit DOM event tracking from the controller they extend. -
Documentation
Easy to understand docs with lots of runnable examples make learning Composer easy.
Composer is framework-agnostic: it does not require jQuery, Mootools, or any other framework to function (however, to support older versions of IE, Mootools is reccommended). As of version 1.1.0, Composer’s only external dependency is History.js (and as of 1.2.0, Composer uses morhpdom for its optional xdom feature).
For the curious, read about the differences between Composer and Backbone.
Also see apps using Composer in production »
Dependencies
Composer’s router requires History.js to function properly. Composer’s xdom system requires some form of DOM diffing/patching library (morphdom is the supported default, although you can provide your own).
Browser support
Composer is tested on recent versions of Firefox, Chrome, Safari, and IE >= 6. Note that IE 6-9 support is dependent on Mootools being present (and will not necessarily be supported in the future). For now, all tests pass in all major browsers.