<commit_before>#Dulcimer

Dulcimer is an ORM for an embedded keystore in your Node.js app.

Features Include:

* Models
* Ordered Objects
* Lookup by Index
* Retrieving Models sorted by Index
* Retrieve index ranges
* Retrieve with filters
* Foreign Keys and Foreign Collections
* Children
* Pagination
* Counts
* Buckets
* onSave & onDelete Model Events
* derived fields
* field types and validation

The models in this ORM use [VeryModel](https://github.com/fritzy/verymodel). Dulcimer modeels extend the definitions and methods.

## A Quick Example

```js
var dulcimer = require('dulcimer');
var levelup = require('levelup');
var db = levelup('./test.db');

var PersonFactory = new dulcimer.Model({
    firstName: {},
    lastName: {},
    fullName: {derive: function () {
        return this.firstName + ' ' + this.lastName;
    }},<commit_msg>note in readme about levelup support<commit_after>#Dulcimer

Dulcimer is an ORM for an embedded keystore in your Node.js app.

Features Include:

* Models
* Ordered Objects
* Lookup by Index
* Retrieving Models sorted by Index
* Retrieve index ranges
* Retrieve with filters
* Foreign Keys and Foreign Collections
* Children
* Pagination
* Counts
* Buckets
* onSave & onDelete Model Events
* derived fields
* field types and validation

The models in this ORM use [VeryModel](https://github.com/fritzy/verymodel). Dulcimer modeels extend the definitions and methods.

:point\_up: Currently Dulcimer supports LevelUp based backends. Work for Riak support is nearly finished using [levelup-riak](https://github.com/fritzy/levelup-riak) with more to come.

## A Quick Example

```js
var dulcimer = require('dulcimer');
var levelup = require('levelup');
var db = levelup('./test.db');

var PersonFactory = new dulcimer.Model({
    firstName: {},
    lastName: {},
    fullName: {derive: function () {
        return this.firstName + ' ' + this.lastName;
    }},
{'fraction_non_alphanumeric': 0.10131233595800525, 'fraction_numerical': 0.0, 'mean_word_length': 4.221917808219178, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 3, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3154256', 'n_tokens_mistral': 595, 'n_tokens_neox': 572, 'n_words': 205}