node package manager


Closure Compiler optimized, disposable, reactive models


Closure Compiler optimized, disposable, reactive models

rep.js is to be a reactive modeling engine compatible with the Google Closure Ecosystem (Compiler, Library, and Templates).

It is inspired by backbone.js, but secretly wants to play with the cool kids Meteor and knockout.js.

Getting started

(Requires npm & node.js)

Run make serve to get running (C-c exits). Requires a make command with the -j parallelization feature.

From another terminal, make test will run the tests (on a system with an open-equivalent command). Or, just open each of the following in a web browser (while plovr is running):


It's really close to backbone currently, though far less featureful. Backbone's string-based values mapping is replaced with one based on the uid of the attribute object, so we maintain semantic integrity through the inheritance chain.

Using formal attribute objects allows us to do formal validation, selectively add only keyed attributes to exported json, and refer to model attributes in a way that will compress nicely while enforcing the conceptual divide between model attributes and object properties. It also makes computed and cascading attributes a lot more fun.

State of the code

Unproven -- not yet used in a serious project.

The tests and features are far enough along to replace what I generally use backbone.js for in my work.

Disposability needs some more tests and probably a bit of love.

The state of packaging and project management for google closure open source projects is quite sad still, or else I'm missing something. Perhaps this will motivate me to work on that.

See for some additional thoughts.