OSS Tanbou

build HTTP servers and web APIs in Kotlin with coroutine-based I/O, routing DSLs, and composable plugins

About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
14,532
Primary language
Kotlin
License
Apache-2.0
Repository last updated
Sep 29, 2026
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.

Sources: [4][2]

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. [1]ktorio/ktor repository(2026-09-30)
  2. [2]Ktor README(2026-09-30)
  3. [3]Ktor VERSION file(2026-09-30)
  4. [4]Ktor 3.6.0 release(2026-09-30)
  5. [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. 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. 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. 3

    Run the application

    Start the Gradle application and send a GET request to localhost:8080 to verify the response.

    ./gradlew run
Check the official README

Growth

Growth trends · Last 30 days

14,532 Stars

Trend data is still being collected.

Built with

Categories and tags

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
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?