Javalin is a very lightweight Web framework for Kotlin and Java that supports WebSockets, HTTP2 and async requests. Javalin's main goals are simplicity, excellent development experience and first class interoperability between Kotlin and Java. Javalin is more library than framework.
The team responsible for its development announced the availability of version 2.0 of Javalin and made a list of changes since version 1.7 that was released in May:
Support WebJars client-side Web libraries
modularization of JSON features and templates, so developers can connect their own renderers / mappers;
adding a CRUDhandler to remove the functionality of creating standard CRUD APIs (create, read, update, delete);
enhanced support for single-page applications;
better exception handling for asynchronous requests;
Javalin now has an implementation of the Pac4 security library;
the template functionality has been reduced to a single ctx.render () function that uses the correct engine based on the file extension;
a rewrite of the WebSocket implementation;
a RequestLogger interface has been added;
the team has added a set of default responses, so you can run the throw BadRequestResponse () command (optional message);
the team added the option to return 405 instead of 404, listing the methods available for the path.
"There are also many improvements in the development experience, such as List returning functions instead of Array, returning empty collections instead of nulls, better default values, and a package structure, setting visibility from Java, and many more, "explained the officials.
Rather than being a complete Web framework, Javalin is a lightweight REST API library or a microframe. Although Javalin has no concept of MVC, its support for WebSockets, template engines and static file service allows Javalin to be used to create a RESTful backend API and serve index.html with static resources , in the case of a development of a single-page application.
To create a more traditional website, model engine envelopes can be used. The framework started as a fork of the Spark framework for Java and Kotlin but has been rewritten, influenced by the web framework Koa.js.