An amazing, simple and fun database for humans
- Coding is fun, so databases must be fun too.
- Data is the king.
- Data should be stored in the system as a file whenever a change happens.
- Data storage in the system must be hackable.
- The database can lead or connect your server components.
- Events are great... because we are asynchronous.
- We prefer facts over promises: facts are there, promises maybe yes or not. In fact, we're talking about callbacks.
- Data is not the only stuff that can be store in a database.
- We prefer ambush functions over lambda functions. As you know... we're talking about anonymous functions.
GobliDB is not ready for production. It is an experimental database, most of the features are under development... You can use it now, but there is a lot of work pending.
We will release a production ready version soon, please keep in touch
var GDB = require("goblindb");
var goblinDB = GDB();
console.log("Fear the Goblin!")
// Events supported
goblinDB.on('change', function(changes){
console.log("-- change detected!:", changes)
console.log("====================")
});
// Read all Database...
var originalData = goblinDB.get();
console.log("originalData:", originalData);
// Store data...
goblinDB.set({"data": "world!", "data2": "Hiiiii"});
// Update date...
goblinDB.update({"new data": "hellooo....", "new array": ["aaaa", true, 2], "data": "cambiado!"})
// Read all Database...
var currentData = goblinDB.get();
console.log("currentData:", currentData)
Check the official documentation in our website
You can run a demo in 4 steps!
- Clone this repository
git clone https://github.com/UlisesGascon/GoblinDB
- Enter in the folder
cd GoblinDB
- Install the dependencies
npm install
- Run fear_the_goblin.js
node demo/fear_the_goblin.js
You can test your changes...
npm test
- Support multidimensional navigation in the database (.ref() method).
- Support to chain methods.
- Plugin documentation example
- Add basic query methods as a plugin.
- Add Avance query methods as a plugin.
- Add support to .once() method for events.
- Add support to UID in events.
- Additional events to support (config changes, etc...).
- Add additional support to Backup Goblin with other databases like Firebase, Mongo... in real time as a plugin.
- Full documentation in JSDoc.
- Gulp Tasks Improvement.
- Test support for Events using Sinon.
- Test refactor in order to separate more the test cases.
- GoblinSocket. WebSocket interface for GoblinDB using SocketIO
Main target:
- Refactor the main structure to improve maintainability.
- Improve all the test cases, to cover well all the code.
Bug fixes:
- Lot of bugs when adding or updating ambush functions.
- Improved error messages and reasons (some of them was not consistent).
Features:
- Travis added to the project
- Silence mode.
- Production mode.
- Development mode.
- New code structure (feature only for developers), wich improve stability.
Notices:
- Great job and support from @Sediug (now in GoblinDB team)
- This version is a good candidate for v0.1.0
- Evangelization process has been started (Talks, documentation, workshops...)
- We are looking for active evangelists, ping us ;-)
Main target:
- Improve architecture & compatibility
Features:
- Native Events now supported.
- No need to use Object.observe or proxy ECMA6 alternatives.
Main target:
- Ambush support
Bugs Fixed:
- No need to require http module, in documentation examples
Features:
- Database testing improved
- Added optional features like parameters and callbacks for Ambush (lambda) functions
- Added automatic save for Ambush
- Added .goblin extension in order to store ambush operations
- Added Testing to support ambush features
- Added goblin.ambush as container
- Added goblin.ambush.add(),
- Added goblin.ambush.remove(),
- Added goblin.ambush.update(),
- Added goblin.ambush.list(),
- Added goblin.ambush.details(),
- Added goblin.ambush.run()
- Readme improved
Features:
- Documentation improved
Bugs Fixed
Notes: Just to solve issues with NPM.
Main target:
- Develop the basics key functionalities (methods)
- Key/Value operative database
- Event support
- Database recorded as file
- Minimum config setup
Features:
- Added support to JSDoc
- Added Gulp Tasks
- Added Basic Testing with Mocha, Chai and Istanbul
- Added .editorconfig
- Added esLint support
- Roadmap added
- Added File structure
- Added minimal validation
- Added basic documentation
- Added GoblinDB as Module
- Added GoglinDB Helpers as an independente module
- Added support to store the data on demand as JSON
- Added full support to events
- Added support to key changes in events
- Added Method on
- Added Method off
- Added Method getConfig
- Added Method setConfig
- Added Method stopStorage
- Added Method startStorage
- Added Method get
- Added Method push
- Added Method set
- Added Method update
Features:
Notes: Just a "Hello world"