KVision 7.0.0 is released
Tags: kvision, kotlin, sse
Published: 2023-08-17 12:02:20

---
title: KVision 7.0.0 is released
published: true
description: KVision is an open source web framework created for Kotlin/JS.
tags: kvision,kotlin,sse
---

[KVision](https://kvision.io) is an open source web framework created for Kotlin/JS. It allows developers to build modern web applications with the Kotlin language.

I have released KVision 7.0.0. This is a major upgrade bringing new features and some breaking changes.

Highlights of this release include:

- Upgraded dependencies (Kotlin 1.9.0, Coroutines 1.7.3, Serialization 1.6.0-RC, KSP 1.0.13, Jooby 3.0.2, Spring Boot 3.1.2, Ktor 2.3.3, Micronaut 4.0.3, Koin 3.4.3, kotlin-wrappers 615, Gradle 8.3-rc-3, npm-publish 3.4.1, Bootstrap 5.3.1, Chart.js 4.3.3, Tempus dominus 6.7.11, Electron 25.5.0, Fontawesome 6.4.2, Handlebars 4.7.8, Imask 7.1.3, Tabulator 5.5.1, Tom Select 2.2.5).
- Migration from Kotlin JS to Kotlin Multiplatform gradle plugin for both KVision itself and all example and template projects.
- Integrated custom gradle tasks with KVision gradle plugin for all fullstack apps, to simplify and unify application build files.
- Support Server-Sent Events connections in fullstack applications for all supported backend servers.

For more details about this release see the [changelog](https://github.com/rjaros/kvision/releases/tag/7.0.0).

## Multiplatform plugin

Since Kotlin 1.9.0 `Kotlin("js")` Gradle plugin is deprecated and KVision is no longer using it. Only `Kotlin("multiplatform")` is supported. The migration is quite easy and well documented in [the official guide](https://kotlinlang.org/docs/multiplatform-compatibility-guide.html#migration-from-kotlin-js-gradle-plugin-to-kotlin-multiplatform-gradle-plugin). In general you just need to rename your source sets and source directories.

## Fullstack changes

All custom Gradle tasks for fullstack applications are now integrated with KVision Gradle plugin. Also the source sets names are changed to standard `jsMain` and `jvmMain` (instead of `frontendMain` and `backendMain`). This makes KVision build files way simpler and unified. It's also a lot easier to convert a frontend-only project to a fullstack application.

KVision 7 allows you to use [SSE](https://en.wikipedia.org/wiki/Server-sent_events) (server-sent events) with all supported backend servers. Just like with KVision websockets connection, the implementation is fully type-safe and is based on Kotlin coroutines channels.

## New examples

There are new examples in the repo. The [template-fullstack-ktor-koin-annotations](https://github.com/rjaros/kvision-examples/tree/master/template-fullstack-ktor-koin-annotations) project shows you how to use Koin Annotations. And the [tweets-fullstack-spring-boot-sse](https://github.com/rjaros/kvision-examples/tree/master/tweets-fullstack-spring-boot-sse) project implements a very simple chat application with server-sent events.

## Migration

As with any other major release there are breaking changes in 7.0.0. [A dedicated migration guide](https://kvision.gitbook.io/kvision-guide/migration/migration-from-6.x-to-7.x) is available, so be sure to read it before upgrading.

Don't forget to ⭐️ my [project](https://github.com/rjaros/kvision) if you like it!

As always, any feedback is appreciated!