Ktor 分为多个模块,以便根据所需功能实现细粒度的依赖关系。
典型的 Ktor 应用需要 ktor-server-core
以及一个相应的引擎,具体取决于它是自托管的还是使用应用服务器(Application Server)。
Ktor 中的所有构件都属于 io.ktor
group 并且托管在 JCenter 与 Maven Central。预览版发布在 Bintray
Ktor 分为以下几组模块:
ktor-server
包含支持使用不同引擎运行 Ktor 应用程序的模块:Netty、Jetty、Tomcat 以及通用 servlet。它还包含了一个用于设置应用测试而不真正启动服务器的 TestEngine
ktor-server-core
是大多数应用 API 与实现所在的核心包ktor-server-jetty
支持部署版或内嵌版 Jetty 实例ktor-server-netty
支持嵌入模式的 Nettyktor-server-tomcat
支持 Tomcat 服务器ktor-server-servlet
由 Jetty 与 Tomcat 使用,并允许在通用的 servlet 容器中运行ktor-server-test-host
允许在不启动完整主机的情况下更快地运行应用测试ktor-features
为并非每个应用都需要的可选特性分组的模块
ktor-auth
为不同的身份认证系统如 Basic、 Digest、 表单、 OAuth 1a 与 OAuth 2 提供支持ktor-auth-jwt
添加针对 JWT 认证的能力ktor-auth-ldap
添加针对 LDAP 实例认证的能力ktor-freemarker
将 Ktor 与 Freemarker 模板集成ktor-velocity
将 Ktor 与 Velocity 模板集成ktor-gson
与 Gson 集成并添加 JSON 内容协商ktor-jackson
与 Jackson 集成并添加 JSON 内容协商ktor-html-builder
将 Ktor 与 kotlinx.html 构建器集成ktor-locations
包含对类型化 location 的实验性的支持ktor-metrics
添加了为服务器添加一些指标的能力ktor-server-sessions
添加使用服务器存储的有状态会话的能力ktor-websockets
提供 Websockets 支持ktor-client
包含执行 http 请求的模块
ktor-client-core
是大多数 http HttpClient API 所在的核心包ktor-client-apache
添加对 Apache 异步 HttpClient 的支持ktor-client-cio
添加对纯 Kotlin 基于协程的 I/O 异步 HttpClient 的支持ktor-client-jetty
添加对 Jetty HTTP 客户端的支持ktor-client-okhttp
添加对 OkHttp 客户端后端的支持ktor-client-auth-basic
添加对认证的支持ktor-client-json
添加对 json 内容协商的支持ktor-network
包含用于客户端/服务器的原始套接字与 TCP/UDP
ktor-network-tls
包含对原始套接字的 TLS 支持参见使用以下这些搭建项目的说明