Exoskeleton
Exoskeleton is a faster and leaner Backbone for your HTML5 apps.
http://exosjs.com
What already works
All features you need for real-world app are working.
All software tests are passing: (libs = underscore and jquery)
- Backbone: with and without libs
- Chaplin: with and without libs
Marionette and other popular plugins: WIP.
Building
Default and custom builds:
make # Will create exoskeleton.js
make noutils # If you want to use Underscore and jQuery
# and don't want to include `Exoskeleton.utils`.
# Custom, like this:
cat lib/{header,events,collection,sync,history,footer}.js > exoskeleton.js
Current features
- Custom build (you can
cat
stuff now)
- No hard dependencies on underscore or jquery
- Query-string router
- Speed: blazing fast when used without jQuery.
View#delegateEvents
has keepOld
option that allows to preserve old events.
- All params are allowed for model attributes, for example
model.get('constructor')
(jashkenas/backbone#1495)
- Support for Bower and Component(1)
- AMD support
- Declaratively defined view events which point to
non-existing handler functions are no longer tolerated / skipped.
Early error is thrown instead.
Differences
-
In no-underscore environment, there are no underscore-inspired
Collection methods (each, pluck etc.), but there are ES5-inspired methods:
forEach, map, filter, some, every, reduce, reduceRight, indexOf, lastIndexOf
Also, no underscore-inspired Model methods at all.
-
emulateHTTP and emulateJSON were removed
Exoskeleton 0.5.0 (2 November 2013)
- Fixed behaviour in node.js environment.
Backbone.Deferred
now must return actual Deferred
({promise, resolve, reject}
object).
- Removed
Backbone.resolveDeferred
.
- Added
beforeSend
option to utils.ajax
.
- Moved
utils.ajax({method})
option to {type}
.
- When used with custom build of lodash, Collection and Model
will now use all existing methods.
- Improved performance of event triggering.