OSS探訪

Kotlin coroutineを軸にHTTP server・Web APIを小さなpluginとDSLで組み立てる

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
14,532
主要言語
Kotlin
ライセンス
Apache-2.0
リポジトリ最終更新
2026/09/29
ページ内ナビ

概要

KtorはKotlinで書かれた非同期Web frameworkです。Netty等のembedded serverを起動し、routing DSLとpluginを組み合わせてHTTP APIやmicroserviceを構築できます。Kotlin coroutineによる非同期I/Oと、networkを使わないtest environmentを特徴とします。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

embedded serverとrouting DSLでHTTP endpointを構築する

embeddedServer(Netty, 8080)とroutingを使い、Kotlin DSLでHTTP methodやresponseを定義できます。Servlet containerや別engineを選ぶこともできます。

出典:[2]

pluginとcoroutineで必要な機能だけを組み込む

logging、serialization、templating等を固定せず、必要な機能をpluginとしてapplication pipelineへ追加します。APIはKotlin coroutineを使った非同期I/Oを前提にしています。

出典:[2]

向いている用途

KotlinでWeb APIやmicroserviceを軽量に組み立てたい場合に向く

Spring等の大きなapplication frameworkより構成自由度を高く保ち、routing・server engine・pluginを用途に合わせて選びたいKotlin serviceに向きます。

出典:[2]

導入前の確認

安定版3.6.0を基準にdependency versionを揃える

latest GitHub releaseは3.6.0です。README内には古いGradle plugin versionの例も残るため、productionでは3.6.0のBOMまたは同一versionのKtor moduleへ揃えます。

出典:[4][2]

server engineとplugin構成をproject側で明示する

unopinionatedな設計のため、Netty・Jetty・Servlet container等のhosting方式やserialization、DI、logging等はproject側の選択になります。運用標準を先に決めておくと構成差を抑えられます。

出典:[2]

参考にした公式資料

  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)
編集部からの補足

KtorはJetBrainsが開発するKotlin向けframeworkで、3.6.0が安定版です。server構成を強く固定せず、routingやserialization等をpluginとして選ぶ設計なので、既存のKotlin architectureへ必要な機能だけ組み込みやすい一方、採用するengineやpluginの組み合わせはproject側で明示する必要があります。

3ステップで試す

  1. 1

    Ktor 3.6.0のNetty serverを追加

    既存Kotlin/Gradle applicationのdependenciesへstable版Ktor serverを追加します。

    implementation("io.ktor:ktor-server-netty:3.6.0")
  2. 2

    最小HTTP endpointを定義

    READMEの構成を基に、Netty上でroot endpointを返すserverを作成します。

    embeddedServer(Netty, 8080) { routing { get("/") { call.respondText("Hello, world!") } } }.start(wait = true)
  3. 3

    applicationを起動

    Gradle applicationを起動し、localhost:8080へGETしてresponseを確認します。

    ./gradlew run
公式READMEで確認

成長

成長の推移 · 直近30日

14,532 Stars

推移データを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • async
  • asynchronous
  • kotlin
  • web
  • web-framework
Stars
14,532
Forks
1,311
Watchers
171
Open Issues
198
所有者種別
Organization
主要言語
Kotlin
ライセンス
Apache-2.0
リポジトリ最終更新
2026/09/29

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?