{"id":228027,"date":"2022-02-11T10:40:46","date_gmt":"2022-02-11T09:40:46","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=ktor&#038;p=228027"},"modified":"2025-09-19T09:46:23","modified_gmt":"2025-09-19T08:46:23","slug":"ktor-roadmap-what-s-next","status":"publish","type":"ktor","link":"https:\/\/blog.jetbrains.com\/en\/ktor\/2022\/02\/11\/ktor-roadmap-what-s-next","title":{"rendered":"Ktor Roadmap &#8211; What\u2019s Next"},"content":{"rendered":"\n<p>We\u2019re one month into 2022, and on the Ktor team we\u2019re focusing on finalizing the little that is left from our side on 2.0 and waiting for Kotlin 1.6.20 to be released so as to release 2.0. At the same time, we&#8217;re planning the next things to be worked on.&nbsp;<\/p>\n\n\n\n<p>As some of you know, we had published our <a href=\"https:\/\/blog.jetbrains.com\/ktor\/2020\/08\/10\/ktor-roadmap-for-2020-2021\/\">roadmap for 2020-2021<\/a> and while we didn\u2019t manage to deliver on everything on it, <a href=\"https:\/\/blog.jetbrains.com\/ktor\/2021\/08\/10\/an-update-on-our-2020-2021-roadmap\/\">we weren\u2019t far off<\/a>. However we also realized that we did in fact bite off more than we could chew.&nbsp;<\/p>\n\n\n\n<p>This led us to try and figure out whether the whole approach to a roadmap where you have a fixed timeline actually works. It definitely is an industry standard, and even at JetBrains many folks practice it, but at the same time it does have its own issues. In particular, it\u2019s based on the idea that not only can we estimate things quite well, but it also doesn\u2019t account for external factors or disruptions that could cause us to change course.&nbsp;<\/p>\n\n\n\n<p>Looking at the purpose of the roadmap, which is providing not only focus to the team on what we\u2019re working on next, but also let all of you, our customers know what we&#8217;re working on, we decided to address these aspects as opposed to tie ourselves to a specific year. <\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>As such, moving forward we will no longer be aligning our roadmap with natural years, but focusing on three different timeframes: <strong>short-term<\/strong>, <strong>mid-term<\/strong>, and <strong>long-term<\/strong>. The first of these is what our immediate focus is going to be on, and what we\u2019ll be sharing publicly. As and when we complete things, we\u2019ll move things from the mid-term to the short-term.&nbsp;<\/p>\n\n\n\n<p>Given that, let\u2019s focus on what we have lined up next!&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"our-short-term-plans\">Our short-term plans<\/h2>\n\n\n\n<p>The plan is distributed amongst different areas. In particular:<\/p>\n\n\n\n<p><strong>Infrastructure<\/strong><\/p>\n\n\n\n<p>From the infrastructure perspective, we still have a few areas that need addressing. We want to add YAML support for configuring applications, which is not only demanded by many of our users, but also already supported in the IDE. We also want to work on fixing some performance issues with Netty, as well as extract and implement a proper IO library with network support.&nbsp;<\/p>\n\n\n\n<p><strong>Long standing issues<\/strong><\/p>\n\n\n\n<p>We have 150 issues that are long-standing (many of them imported from GitHub). While it is impossible to resolve all of them, we do intend to address them and fix\/schedule accordingly. One issue that definitely will be worked on is <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/KTOR-774\" target=\"_blank\" rel=\"noopener\">Swagger support<\/a>.&nbsp;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"bootstrapping-applications\">Bootstrapping applications<\/h4>\n\n\n\n<p>We\u2019ve made good efforts in making it easy to create new applications, but there are still many areas that need to be addressed. We are working on some cool things that will make starting with Ktor even easier for newcomers to the framework and to the JVM. We\u2019ll be working on minimizing the amount of boilerplate code and set-up that needs to be done when it comes to working with databases.&nbsp;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"deployment\">Deployment<\/h4>\n\n\n\n<p>We currently provide steps and guides on how to deploy Ktor applications, but we want to make it smoother by automating deployment configurations.&nbsp;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"tooling-support\">Tooling Support<\/h4>\n\n\n\n<p>Over the past year we\u2019ve managed to add quite a bit of <a href=\"https:\/\/ktor.io\/idea\/\" target=\"_blank\" rel=\"noopener\">support for IntelliJ IDEA<\/a>. We want to build on this and provide even more functionality that is specific for Ktor, such as endpoint view, allowing you to get a better overview of the application architecture, helpers for creating plugins, and of course swagger support inline with our support for Swagger.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"documentation\">Documentation<\/h3>\n\n\n\n<p>We\u2019re still <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/KTOR-1677\" target=\"_blank\" rel=\"noopener\">continuing to work<\/a> on documentation. We now provide both the current release version as well as the next EAP version. In addition we have plans to review and update our API docs to make these more descriptive.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/09\/i5ilhKXP6iQTAFgh_C62HUnqhWn6aQSih2p8DAuLzp3ypqRjY2tUShB-l0scDcZkFhpBAnha61c-GpwhyQlE0K4Rl1r2O7dQazsk5cNgitIh_RtrQZkKMe0lguDfDnfd1CkG57N7.png\" alt=\"\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"release-lifecycle\">Release Lifecycle<\/h2>\n\n\n\n<p>The release lifecycle will still remain the same. We still plan on releasing monthly patches, and committed to one major and several minor releases per year.&nbsp;<\/p>\n\n\n\n<p>The above is what we\u2019ll be working on in the short term. We\u2019ll keep you updated!&nbsp;<\/p>\n","protected":false},"author":1142,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","categories":[],"tags":[76,477],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/ktor\/228027"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/ktor"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/types\/ktor"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/users\/1142"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/comments?post=228027"}],"version-history":[{"count":5,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/ktor\/228027\/revisions"}],"predecessor-version":[{"id":634967,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/ktor\/228027\/revisions\/634967"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/media?parent=228027"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/categories?post=228027"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/tags?post=228027"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/cross-post-tag?post=228027"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}