JugglingDB(3) - cross-database ORM for nodejs and browser ========================================================= ## DESCRIPTION JugglingDB is cross-db ORM for nodejs, providing **common interface** to access most popular database formats. Currently supported are: mysql, sqlite3, postgres, couchdb, mongodb, redis, neo4j and in-memory-storage. JugglingDB also works on client-side (using WebService and Memory adapters), which allows to write rich client-side apps talking to server using JSON API. ## INSTALLATION Use npm to install core package: npm install jugglingdb --save Alternatively you can install jugglingdb core from github: npm install 1602/jugglingdb Then install adapter for specific database, for example `jugglingdb-redis`: npm install jugglingdb-redis See [ADAPTERS][] for list of available adapters. ## DOCUMENTATION Autogenerated documentation available at [jsdoc.info/1602/jugglingdb]. Human-written manual sections are: * jugglingdb-schema(3): Everything about schema, data types and model definition. * jugglingdb-model(3): Model methods, features and internals. * jugglingdb-validations(3): Built-in validators, creating custom validations, syncronous and asyncronous object validation. * jugglingdb-hooks(3): Hooks and object lifecycle. * jugglingdb-adapter(3): Adapter API explained. ## ADAPTERS All adapters available as separate packages at [github.com/jugglingdb] and published in npm. * MySQL: [github][jugglingdb-mysql] [npm][mysql-adapter-npm] * SQLite3: [github][jugglingdb-sqlite3] [npm][sqlite3-adapter-npm] * Postgres: [github][jugglingdb-postgres] [npm][postgres-adapter-npm] * Redis: [github][jugglingdb-redis] [npm][redis-adapter-npm] * MongoDB: [github][jugglingdb-mongodb] [npm][mongodb-adapter-npm] * CouchDB/nano: [github][jugglingdb-nano] [npm][nano-adapter-npm] * Firebird: [github][jugglingdb-firebird] [npm][firebird-adapter-npm] ## CONTRIBUTION TODO: briefly describe contribution ## FUTURE See jugglingdb-roadmap(3) and [github issues][issues] to catch up current development and see how you can help jugglingdb to grow up. ## BUGS When you find issues, please report them: * github/core: * github/adapters: * email: Provide test case for reproducing error. When reporting issue to core mention adapter where problem could be reproduced. ## HISTORY See jugglingdb-changelog(3) ## COPYRIGHT JugglingDB is Copyright (C) 2011 Anatoliy Chakkaev http://anatoliy.in ## AUTHOR * [blog](http://anatoliy.in/) * [github/1602](https://github.com/1602/) * [github/anatoliychakkaev](https://github.com/anatoliychakkaev/) * [twitter@1602](http://twitter.com/1602) * ## CONTRIBUTORS ### core contributors (more than 1%) 410 Anatoliy Chakkaev 73.9% 31 Sebastien Drouyer 5.6% 25 1602 4.5% 9 Muneeb Samuels 1.6% 6 Henri Bergius 1.1% ### adapters maintainers * [jugglingdb-nano] - [Nicholas Westlake](https://github.com/nrw) * [jugglingdb-mysql] - [dgsan](https://github.com/dgsan) * [jugglingdb-firebird] - [Henri Gourvest](https://github.com/hgourvest) *NOTE:* Other adapters waits for their maintainers, drop a line to if you want to maintain some adapter on regular basis. ## SEE ALSO jugglingdb-schema(3)