node package manager


NoCR (like JCR) is content repository API, unlike JCR it's written in CoffeeScript+Node.js instead of Java, and also allows to implement a content repository in javascript or coffee. It helps you to write a good implementation as it provides a full featured test suite.

NoCR - NodeJs Content Repository

It describes objects and method to access data stored in a tree-based Repository.

It brings a vows testSuite for implementations.

It's API is inspired from JCR, and extended for asynchronous model.

API is described with coffeescript, but can be implemented either with coffee or javascript.

Existing implementation :

  • karacos-cr-redis - Content Repository with persistence in a Redis key/value store
  • karacos-nocr-mongodb - Same as above, but using MongoDB Document Database

Basic usage

see example files in toplevel dir

Getting a Repository


Using coffe

api = require('NuQCore')
class Node extends api.Node

Using javascript

more to come here

Testing your implementation

NoCR provides an interface to allow you to inject your implementation instances into a generic testsuite using vows.

npm install vows

Interface is described in module ImplTest, in order to work, you should invoque first :

  • ImplTest.setRepository
  • ImplTest.setSession
  • ImplTest.setNode

then, on a described vows testSuite, invoke : ImplTest.addNoCRBatch(testSuite);

Your implementation must pass all tests of test suite,

Javascript example

what does Nu-Q stands for ?

it's the original project code name. Nu-Q (prononce Nu Q as new Queries) is a content repository API for nodejs.

NUQ is the airport code of Moffett Federal Airfield, next to the Hacker Dojo in bay area where this project was bootstrapped.

NUQ stands also for Nu-Q Uses Queries, but this asserts false beacause Queries are not implemented in API.