It's been a long time since we wrote a post to talk about the new features and products available in the Kuzzle ecosystem, but I promise you that we haven't been idle, far from it!
Kuzzle as a Framework
We have been developing this new feature since last July but we officially released it with Kuzzle 2.8.0.
It is now possible to write applications with Kuzzle in a more intuitive way, getting closer to the way other frameworks of the Node.js ecosystem work.
Kuzzle is now available as an NPM package to develop your applications:
import { Backend, KuzzleRequest } from 'kuzzle'; import PluginOAuth from 'kuzzle-plugin-auth-passport-oauth'; // Instantiate the backend const app = new Backend('iot-sensors'); // Use an external plugin app.plugin.use(new PluginOAuth()); // Register an API controller app.controller.register('iot', { actions: { measure: { handler: async (request: KuzzleRequest) => { await app.sdk.document.create('iot', 'measures', request.input.body); return { status: 'created' }; } } } }); // Start the application app.start() .then(() => { app.log.info('Application started'); });
The entire programming interface has been written in Typescript to reduce the learning curve.
You can try to get started now with our Getting Started
Admin Console Revival
The redesign of our main application has been a long term subject that was born from a reflection based on two fundamental points: User Experience & UI Design.
This 4th version of the Admin Console is more than a graphical redesign, it is also an internal redesign for better stability and performance. Above all, it comes with a lot of new features!
You can now use the official online version: http://console.kuzzle.io
To discover the new features, you can read our dedicated article
Java / Kotlin SDK
In order to better support native Android developers, we decided to release a new SDK entirely written in Kotlin.
This SDK is available on Maven and is designed to be used in any Java or Android project.
We have chosen to develop an SDK compatible with all the languages of the JVM in order to offer to the developers of this ecosystem the possibility to work more easily with Kuzzle.
Dart SDK
The Dart SDK continues to progress with the implementation of the HTTP protocol in addition to the already available WebSocket protocol.
This protocol is available since version 2.2 of the SDK and will allow mobile developers to connect to Kuzzle in HTTP in order to save the battery of the terminals.
See the HTTP protocol documentation for Dart
Golang SDK
Since Kuzzle v2, our Golang SDK had not yet been ported to the new version of the Kuzzle API.
This SDK allows developers to use Kuzzle in the high performance environment of the Golang ecosystem.
Version 3 is now available on Github
Kuzzle Core Features in a Nutshell
Many new features have been added to Kuzzle in the last few months.
In particular, there are 5 new API actions:
- document:upsert: updates a document, or creates it with default content
- auth:checkRights: checks if the current user can execute a query
- security:checkRights : checks if a user can execute a query
- document:deleteFields : deletes fields from a document
- security:getUserStrategies: lists the authentication policies available for a user
A new way to use Kuzzle in HTTP is available. Instead of using URLs and query strings, it is now possible to send directly a JSON payload representing the standard request format used with other protocols.
Discover the JSON Query Endpoint
Programming in cluster mode is also simplified for developers using Kuzzle:
- cluster.broadcast, cluster.on, ... : methods to send events to other cluster nodes
- Mutex: synchronization class between cluster nodes
Many other improvements and bug fixes have been made with the latest versions, you can discover the complete list on Github: https://github.com/kuzzleio/kuzzle/releases
Complete Typescript Support
Typescript has recently established itself as the new development standard in Javascript, thanks in particular to its type checking system.
In addition, auto-completion and auto-documentation greatly facilitates adoption by allowing developers to learn the framework more quickly.
So we decided to convert all the interfaces of our Javascript projects to Typescript:
- Kuzzle Core
- Javascript SDK
You can already take advantage of this Typescript conversion by installing the latest versions of our products.
Brand New Documentation
In December, we released a brand new version of our documentation.
This one has been completely redesigned and all the guides have been rewritten for a better understanding and handling.
These new features include:
- A Getting Started in 9 steps (You Won’t Believe What Happens Next!)
- The explanation of the Main Concepts in 6 guides ( …too good to be true!)
- 5 guides to learn how to use the new framework (Only the people with an IQ above 160 can solve these)
Also, the search has also been redesigned with Algolia Doc Search in order to navigate more easily through the documentation.
Incoming for 2021
The year 2020 has been rich in novelties, but the year 2021 promises to be even busier!
New Cluster Architecture
The first of the big new features will be the new cluster, directly integrated into the core, which promises much greater scalability and stability for an application deployed on several nodes.
We are confident that this new cluster architecture will make Kuzzle able to support several million users.
Support for PostgreSQL
Since the beginning of Kuzzle, we made the choice of NoSQL with Elasticsearch.
In order to support new use cases requiring a relational database, we have decided to start working to support PostgreSQL as a database.
It is indeed a huge project but we will keep you informed!
Full Featured IoT Platform
We have been specializing in IoT applications for 3 years now, with dozens of projects to our credit, thousands of cities equipped with Kuzzle-based solutions and hundreds of thousands of sensors sending their data to Kuzzle applications.
We are currently developing a new Kuzzle specialization around IoTs, with the same promise as Kuzzle: reduce the amount of code needed and develop your IoT applications faster.
Of course we are talking about Device Management, Workflows, Data Enrichment, Open Data and many other topics ;-)
Questions? Don't hesitate to join us on http://join.discord.kuzzle.io/ !