On this page
Overview
Ktor is an asynchronous web framework written in Kotlin. It can launch embedded servers such as Netty, define HTTP APIs through a routing DSL, and add capabilities through plugins. Its APIs are built around Kotlin coroutines and include a test environment that can validate application calls without real networking.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Build HTTP endpoints with an embedded server and routing DSL
Use embeddedServer(Netty, 8080) and routing to define HTTP methods and responses in Kotlin. Ktor can also run with other engines or servlet containers.
Sources: [2]
Compose features as plugins on a coroutine-based pipeline
Logging, serialization, templating, and other features are not imposed globally; applications install the plugins they need while the framework uses asynchronous I/O with Kotlin coroutines.
Sources: [2]
Best fit
Fits Kotlin services that want a lightweight and configurable web stack
It works well for APIs and microservices where teams prefer explicit choices for routing, hosting engines, and plugins over a larger opinionated application framework.
Sources: [2]
Before adoption
Keep dependencies on the stable 3.6.0 release line
The latest GitHub release is 3.6.0. Some examples in the main README still show older Gradle plugin versions, so production projects should align Ktor modules through a 3.6.0 BOM or consistent explicit versions.
Standardize the server engine and plugin choices at the project level
Because the framework is intentionally unopinionated, hosting, serialization, dependency injection, and logging remain application decisions. Defining a team baseline helps avoid configuration drift.
Sources: [2]
Official sources
- [1]ktorio/ktor repository(2026-09-30)
- [2]Ktor README(2026-09-30)
- [3]Ktor VERSION file(2026-09-30)
- [4]Ktor 3.6.0 release(2026-09-30)
- [5]Ktor Apache 2.0 license(2026-09-30)
Supplemental curator note
Ktor is a JetBrains-developed Kotlin framework with 3.6.0 as the current stable release. Its unopinionated plugin model makes it easy to add only the capabilities a service needs, but teams should explicitly standardize the server engine and plugin stack they adopt.
Try it in 3 steps
- 1
Add the Ktor 3.6.0 Netty server
Add the stable Ktor server dependency to an existing Kotlin Gradle application.
implementation("io.ktor:ktor-server-netty:3.6.0") - 2
Define a minimal HTTP endpoint
Follow the README pattern to serve a root endpoint through Netty.
embeddedServer(Netty, 8080) { routing { get("/") { call.respondText("Hello, world!") } } }.start(wait = true) - 3
Run the application
Start the Gradle application and send a GET request to localhost:8080 to verify the response.
./gradlew run
Growth
Growth trends · Last 30 days
14,532 Stars
Trend data is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- async
- asynchronous
- kotlin
- web
- web-framework
- Stars
- 14,532
- Forks
- 1,311
- Watchers
- 171
- Open issues
- 198
- Owner type
- Organization
- Primary language
- Kotlin
- License
- Apache-2.0
- Repository last updated
- Sep 29, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- Express69,502 Stars
2 shared tag(s) · 1 shared category(s)
Build Node.js APIs and web backends by composing routing and middleware into a thin HTTP layer
JavaScript - REST Assured7,141 Stars
2 shared tag(s) · 1 shared category(s)
test REST APIs from Java with a DSL for requests, status, headers, and JSON/XML assertions
Java - Eclipse Jetty4,096 Stars
2 shared tag(s) · 1 shared category(s)
Serve HTTP/1, HTTP/2, HTTP/3, WebSocket, and Servlet workloads in standalone or embedded Java deployments
Java - NGINX31,766 Stars
2 shared tag(s)
run web delivery, reverse proxying, and load balancing while choosing between mainline and stable streams
C - FastAPI102,717 Stars
1 shared tag(s) · 2 shared category(s)
Unify validation, dependency injection, and OpenAPI around Python type declarations
Python - Hono32,387 Stars
1 shared tag(s) · 2 shared category(s)
a lightweight Web Standards framework spanning Cloudflare, Deno, Bun, Node, and Lambda runtimes
TypeScript
Report incorrect information
Tell us if any listing information is incorrect or outdated.