Description
Object oriented web framework for Kotlin/JS.
https://kvision.io
KVision allows you to build modern web applications with the Kotlin language,
without any use of HTML, CSS or JavaScript. It gives you a rich hierarchy of ready to use GUI components,
which can be used as builder blocks for the application UI.
KVision fully supports both reactive and imperative programming models. It gives you everything you may need for the state management of your apps.
KVision contains innovative connectivity interface for Ktor, Jooby, Spring Boot,
Javalin, Vert.x and Micronaut frameworks on the server side, which
allows to build fullstack applications with shared code for data model and business logic.
KVision is being actively developed. Please create an issue for any bugs or feature requests.
KVision alternatives and similar libraries
Based on the "Web" category.
Alternatively, view kvision alternatives based on common mentions on social networks and blogs.
-
javalin
DISCONTINUED. A simple and modern Java and Kotlin web framework [Moved to: https://github.com/javalin/javalin] -
apollo-android
:rocket: A strongly-typed, caching GraphQL client for the JVM, Android, and Kotlin multiplatform. -
http4k
The Functional toolkit for Kotlin HTTP applications. http4k provides a simple and uniform way to serve, consume, and test HTTP services. -
skrape.it
A Kotlin-based testing/scraping/parsing library providing the ability to analyze and extract data from HTML (server & client-side rendered). It places particular emphasis on ease of use and a high level of readability by providing an intuitive DSL. It aims to be a testing lib, but can also be used to scrape websites in a convenient fashion. -
hexagon
Hexagon is a microservices toolkit written in Kotlin. Its purpose is to ease the building of services (Web applications or APIs) that run inside a cloud platform. -
firefly
Firefly is an asynchronous web framework for rapid development of high-performance web application. -
tekniq
A framework designed around Kotlin providing Restful HTTP Client, JDBC DSL, Loading Cache, Configurations, Validations, and more -
Pellet
An opinionated, Kotlin-first web framework that helps you write fast, concise, and correct backend services 🚀. -
bootique-kotlin
DISCONTINUED. RETIRED. Provides extension functions and features for smooth development with Bootique and Kotlin. -
Zeko-RestApi
Asynchronous web framework for Kotlin. Create REST APIs in Kotlin easily with automatic Swagger/OpenAPI doc generation -
komock
KoMock - Simple HTTP/Consul/SpringConfig http server framework written in Kotlin. Wiremock use cases -
voyager-server-spring-boot-starter
Easily create REST endpoints with permissions (access control level) and hooks includeded
CodeRabbit: AI Code Reviews for Developers
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of KVision or a related project?
README
[KVision Logo](graphics/kvision-logo.png?raw=true "KVision")
KVision
Object oriented web framework for Kotlin/JS.
KVision allows you to build modern web applications with the Kotlin language, without any use of HTML, CSS or JavaScript. It gives you a rich hierarchy of ready to use GUI components, which can be used as builder blocks for the application UI.
KVision fully supports both reactive and imperative programming models. It gives you everything you may need for the state management of your apps.
KVision contains innovative connectivity interface for Ktor, Jooby, Spring Boot, Javalin, Vert.x and Micronaut frameworks on the server side, which allows to build fullstack applications with shared code for data model and business logic.
KVision is being actively developed. Please create an issue for any bugs or feature requests.
Sample code
class App : Application() {
val state = ObservableValue("Hello world")
override fun start() {
root("root") {
vPanel {
h1(state) {
+it
}
button("Add an exclamation mark").onClick {
state.value += "!"
}
}
}
}
}
Features
- 100% type safe and fully compiled dev environment.
- Type safe DSL builders.
- Based on Bootstrap styles, typography and components.
- Utilizes Snabbdom fast virtual DOM implementation.
Integrates with a lot of libraries and components:
Includes sophisticated layout containers, including CSS flexbox, CSS grid and Bootstrap responsive 12 columns grid.
Includes convenient forms implementation, with support for many different input components and easy to use validation.
Support for observer pattern, data binding, event Flows and StateFlow for observables.
Supports React components with KVision DSL and built-in state management.
Full support for Onsen UI mobile web components with type-safe Kotlin API and DSL builders.
Internationalization support based on gettext translations and gettext.js library.
Easy to use Drag & Drop support.
Support for jQuery animations and effects.
Type-safe REST connectivity.
Innovative integration interface for Ktor, Jooby, Spring Boot, Javalin, Vert.x and Micronaut frameworks on the server side, including support for type-safe websockets connections.
Support for building hybrid mobile applications with Apache Cordova.
Support for building cross-platform, desktop applications with Electron.
KVision applications are built with Gradle with support for Webpack's Hot Module Replacement (HMR) and Kotlin JavaScript DCE (dead code elimination). Kotlin compiler plugin for Gradle is available to automatically generate boilerplate code for server-side interfaces.
Karma testing framework support.
IDE support (IntelliJ IDEA). The KVision Project Wizard is being developed as a separate project (thanks to @JakubNeukirch).
Examples and documentation
Ready to explore, rich set of KVision examples is available in the separate project.
See also the complete frontend implementation of RealWorld example application and a fullstack version built with Spring Webflux and R2DBC.
The comprehensive KVision guide is published on GitBook.
The API documentation, generated with new Dokka 1.4, is available at https://rjaros.github.io/kvision/index.html.
You can also look at KVision blog posts at dev.to and you can talk with KVision users and developers on Kotlin Slack #kvision channel and on the Discord server.
Quickstart
Development
Download KVision examples from GitHub:
git clone https://github.com/rjaros/kvision-examples.git
Enter one of the examples directory:
cd kvision-examples/showcase (on Linux) cd kvision-examples\showcase (on Windows)
Run Gradle incremental build with:
./gradlew -t run (on Linux) gradlew.bat -t run (on Windows)
Open http://localhost:3000/ in your browser.
Play with the code and see your changes immediately in the browser.
Production
To build complete application optimized for production run:
./gradlew zip (on Linux)
gradlew.bat zip (on Windows)
Application package will be saved as build/libs/showcase-1.0.0-SNAPSHOT.zip.
Leave us a star
If you like this project, please give it a star on GitHub. Thank you!
*Note that all licence references and agreements mentioned in the KVision README section above
are relevant to that project's source code only.