Ktor 2023 Roadmap
We’ve been working on defining our roadmap for Ktor for 2023, and much like we did for 2022, we’d like to share our plans with you and what we have in store.
One of the things we’re planning on doing this year is releasing 3.0.0. While major versions generally indicate a breaking change, most of the changes are in regards to API and packaging. In particular
- We’re going to release the new simplified routing API that we’ve been working on.
- We’re switching to Tomcat 11, Jetty 11, and upgrading Apache Client to support version 5.
- We’re extracting the IO functionality into a separate library. This is a long-standing task that we’ve been working on gradually, and aim to finalize in 2023.
Long standing issues
Talking about long-standing issues, we went from the 150 issues that we had in 2022, down to 17. We will continue to address these until we reach zero. In addition we managed to do some housekeeping, reducing the number of flaky tests to three. We also aim to tackle these last remaining ones this year.
Bootstrapping and onboarding
One of our goals continues to be simplifying boilerplate code and getting applications up and running with little effort. In this regard, we made some progress in 2022, including easier bootstrapping of not only server, but also client applications. Next year we want to continue down this path and focus on areas such as:
- Getting up and running easily with frameworks and libraries for data access. In particular we’ll be working on simplifying things for Exposed, JDBC, and MongoDB
- Working on new plugins for metrics, telemetry, retrofit, and Zipkin amongst others.
- Simplifying support for authorization and authentication. Providing end-to-end support for database authentication and session management, as well as role-based authorization.
- Route support, including refactoring such as extracting routes, generation of routes, as well as improved navigation and route look-up.
- Improved completion for hooks and other areas of Ktor code.
- Support for debugging microservices, providing transparent stacktraces between client and server requests.
In addition to the higher-level areas of focus and some key functionality in each of these, we plan to work on many more things, not just those listed. As always, our issue tracker provides you the latest information on our progress.
We’re very excited about the road ahead for 2023 and we’ll continue to work on making Ktor a truly pleasurable framework to create your client and server applications!
Finally, we want to thank you for all the feedback you’ve provided, not only on YouTrack and our Slack channel, but also for filling out our annual survey! All these channels are important for us to help shape the direction of Ktor and make sure that what we’re working on is aligned with the needs of our users.
Moving to the Kotlin Blog
As part of the many projects we are working on at JetBrains under the umbrella of the Kotlin Ecosystem, we feel that it wouldn't make sense or be of great benefit to you, our users, to have individual blogs per product/library. As such, we will be consolidating all the information under the Kotl…
Ktor 2.3.0 Released
We are pleased to announce the release of Ktor 2.3.0. This update brings numerous new features and improvements to the Ktor ecosystem. The following sections provide a brief overview of the major changes in this release: Core Improvements Explicit type for WebSockets ContentNegotiation Plugin The W…
Ktor 2.2.1 (and 2.2.0) released
Important: Yesterday we released 2.2.0 to Maven Central, but immediately after we noticed a critical issue of AtomicFu that needed addressing, and as a consequence shortly after we pushed 2.2.1. As such, if you are using 2.2.0, we strongly advise moving to 2.2.1. We've released Ktor 2.2.0/2.2…
Ktor 2.1.0 Released and It Comes With Goodies!
We’ve just released Ktor 2.1.0, and in addition to the new features and bug fixes, we have a few new things we’d love for you to try out. In particular, we are releasing betas of three new tools: Command Line toolYeoman GeneratorGradle Deployment PluginYAML configuration support Let’s take a l…