/kuzzle

Open-source Back-end, self-hostable & ready to use - Real-time, storage, advanced search - Web, Apps, Mobile, IoT -

Primary LanguageJavaScriptApache License 2.0Apache-2.0

Build Status codecov.io Dependency Status

Join the chat at https://gitter.im/kuzzleio/kuzzle

![logo](http://kuzzle.io/guide/images/kuzzle.svg)

About Kuzzle

For UI and linked objects developers, Kuzzle is an open-source solution that handles all the data management (CRUD, real-time storage, search, high-level features, etc;).

Kuzzle features are accessible through a secured API. It can be used through a large choice of protocols such as REST, Websocket or MQTT.

Kuzzle uses Elasticsearch filter DSL (see filters syntax for more details) as filtering language, and Redis to manage filters cache.

Installation

Using the all-in-one Docker recipe

If you are running Docker and just want to get your own Kuzzle running, you can use the provided docker-compose file.

Prerequisites:

From Kuzzle's root directory:

$ docker-compose up

Note: Kuzzle need an access to the web to download plugins. If you are behind a proxy, you may use this container to configure docker accordingly.
More information about plugins here

Using Vagrant

If you are not running Docker on your system, you can pop a virtual machine to run Kuzzle.

Prerequisites:

From the root directory:

$ vagrant up

Advanced installation

Take a look at the documentationfor more installation ways. (Manual installation, update, add fixture, database reset and more):

Using Kuzzle

Your applications can now connect to Kuzzle. We provide a few ways to do this:

  • Using one of our SDK (Javascript, Android, more coming soon...).
  • Directly, by accessing one of our API (REST, WebSocket, AMQP, MQTT or STOMP)

You can also play with our demos for a quick Kuzzle overview.

Running Tests

$ npm test

Because functional tests need to be done in a running Kuzzle environment, it is recommended to run these tests from a Kuzzle container.

Using Compose:

    $ docker-compose -f docker-compose/test.yml up

This command will pop all the stack for running Kuzzle, then execute unit test and functional test. When all tests are done, containers are destroyed.

Using a Vagrant virtual machine:

$ vagrant ssh -c 'cp -fR /vagrant /tmp/ && cd /tmp/vagrant && docker-compose -p kuzzle -f docker-compose/test.yml up'

You may also run unit and functional tests separately, or with additional arguments. For more information, check the unit testing and the functional testing documentation.

Contributing to Kuzzle

See contributing documentation

Full documentation

See full documentation

Acknowledgement

Thanks to Sails project for a good Node.js infrastructure example.

License

Kuzzle is published under Apache 2 License.