Composer is a set of stackable libraries for building complex single-page apps. composer-1.3.7.min.js composer-1.3.7.js (dev)

DOM patching Only renders the parts of your templates that have changed, batching updates for efficiency.

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.

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.

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.

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.

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.

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.

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.

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.

Run the test suite now!