Ktor logo

Ktor

Building Asynchronous Servers and Clients in Kotlin

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.

Tooling

We’re going to provide a bunch of new functionality when it comes to tooling support including updates to our CLI clients as well as our IDE support. In particular we’ll be

  • 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.

And more…

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.