Introduction

Kuzzle is a ready-to-use, on-premises backend that enables you to manage your persistent data and be notified in real-time on whatever happens to it. It also provides you with a flexible and powerful user-management system.

Kuzzle enables you to build modern web applications and complex IoT networks in no time.

  • Persisted data: store your data and perform advanced searches on it.
  • Real-time notifications: subscribe to fine-grained subsets of data.
  • User Management: login, logout and security rules are no more a burden.
  • Extensible: fit Kuzzle to your needs by leveraging the plugin system.

Persistent data

Kuzzle relies on Elasticsearch to store and fetch persistent data. You can perform a variety of CRUD and fine-grained search operations on persistent data. Please refer to the dedicated section for more details.

Real-time notifications

Kuzzle enables you to set up subscriptions to sets of data, in order to be notified in real-time about whatever happens to them. You can create a subscription by selecting a set of data. Selections (also called filters) are expressed in a Domain-specific Language (DSL) that we tailored for this purpose. Please refer to the dedicated section for more details.

SDK

Kuzzle ships with a set of open-source SDK for a variety of languages:

Supported protocols

Kuzzle supports a variety of communication protocols.
For the time being, Kuzzle supports the following protocols:

  • HTTP
  • Websocket
  • Socket.io
  • MQTT (via plugin)

You can directly interact with Kuzzle using the Kuzzle API reference.

Authentication

Kuzzle supports a variety of authentication strategies via PassportJS. Local and OAuth-based authentication is natively supported, but you can also add your own custom strategy.

Please refer to the dedicated section for more details.

Plugins

Kuzzle is extensible in many ways. Plugins enable you to

  • trigger actions on data-related events,
  • intercept the data flow at any point of its lifecycle,
  • add custom methods to the public API,
  • add new communication protocols,
  • add new authentication strategies.

Please refer to the dedicated section for more details.