Ktorはいくつかのモジュールに分割されており、必要な機能だけ依存関係に追加することができます。
典型的なKtorアプリケーションは ktor-server-core
を必要とし、自己ホスト型とするか別途アプリケーションサーバを用いるかによって、
必要なモジュールが変わります。
Ktorのすべてのアーティファクトは io.ktor
パッケージ配下に属し、JCenterとMaven Centralから取得可能です。
プレリリース版はBintrayから取得可能です。
Ktorのモジュールはいくつかのグループに分類されます。
ktor-server
は、Netty、Jetty、Tomcat、および汎用サーブレットといった複数のエンジン上でKtorアプリケーションが動作するためのモジュール群です。
また、実サーバを起動させることなくアプリケーションのテストが可能なTestEngineも含んでいます。
ktor-server-core
: ほとんどすべてのアプリケーションで必要な API と実装を持つコアパッケージktor-server-jetty
: Jetty サーバ用、または Jetty 内包アプリケーション用ktor-server-netty
: Netty 内包アプリケーション用ktor-server-tomcat
: Tomcat サーバ用ktor-server-servlet
: Jetty と Tomcat でも用いられている、汎用サーブレットコンテナ用ktor-server-test-host
: 実アプリケーションの起動不要な、テスト実行環境用ktor-features
: 一部のアプリケーションで必要とされる、追加機能のモジュール群
ktor-auth
: Basic 認証、 Digest 認証、 Forms 認証、 OAuth 1a, OAuth 2 といった、様々な 認証システム を提供ktor-auth-jwt
: JWT (JSON Web Token) 認証を提供ktor-auth-ldap
: LDAP を用いた認証を提供ktor-freemarker
: テンプレートエンジン FreeMaker 向けの機能を提供ktor-velocity
: テンプレートエンジン Velocity templates 向けの機能を定期用ktor-gson
: Gson と JSON コンテンツネゴシエーションを提供ktor-jackson
Jackson と JSON コンテンツネゴシエーションを提供ktor-html-builder
: テンプレートエンジン kotlinx.html builders 向けの機能を提供ktor-locations
: typed locations を提供 (experimental)ktor-metrics
: サーバの メトリクス を取得するための機能を提供ktor-server-sessions
: サーバに保存された Stateful Session を利用するための機能を提供ktor-websockets
: Websockets 用の機能を提供ktor-client
: HTTP クライアント モジュール群
ktor-client-core
: ほとんどすべての HTTP クライアント API で必要とさせるモジュールktor-client-apache
: Apache asynchronous HttpClient を提供ktor-client-cio
: Kotlin Coroutine ベースの非同期 I/O を行う HttpClient を提供ktor-client-jetty
: Jetty HTTP client を提供ktor-client-okhttp
: クライアントで利用される HTTP クライアント OkHttp を提供ktor-client-auth-basic
: クライアントサイドの 認証 機能を提供ktor-client-json
: クライアントサイドの JSON コンテンツネゴシエーション 機能を提供ktor-network
: クライアントサイド、サーバサイド両用の、TCP/UDP を用いた 生ソケット通信 機能を提供
ktor-network-tls
生ソケット通信用の TLS 通信向けの機能を提供各プロジェクト管理ツール向けのセットアップ手順を参照してください。