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 支持参见使用以下这些搭建项目的说明