Ktor is divided into modules to allow fine-grained inclusion of dependencies based on the functionality required.
The typical Ktor application would require ktor-server-core and a corresponding engine depending on whether it’s self-hosted
or using an Application Server.
All artifacts in Ktor belong to io.ktor group and hosted on JCenter and Maven Central. Pre-release versions are published at Bintray
Ktor is split into several groups of modules:
ktor-server contains modules that support running the Ktor Application with different engines: Netty, Jetty, Tomcat, and
a generic servlet. It also contains a TestEngine for setting up application tests without starting the real server
ktor-server-core is a core package where most of the application API and implementation is locatedktor-server-jetty supports a deployed or embedded Jetty instancektor-server-netty supports Netty in embedded modektor-server-tomcat supports Tomcat serversktor-server-servlet is used by Jetty and Tomcat and allows running in a generic servlet containerktor-server-test-host allows running application tests faster without starting the full hostktor-features groups modules for features that are optional and may not be required by every application
ktor-auth provides support for different authentication systems like Basic, Digest, Forms, OAuth 1a and 2ktor-auth-jwt adds the ability to authenticate against JWTktor-auth-ldap adds the ability to authenticate against LDAP instancektor-freemarker integrates Ktor with Freemarker templatesktor-velocity integrates Ktor with Velocity templatesktor-gson integrates with Gson adding JSON content negotiationktor-jackson integrates with Jackson adding JSON content negotiationktor-html-builder integrates Ktor with kotlinx.html buildersktor-locations contains experimental support for typed locationsktor-metrics adds the ability to add some metrics to the serverktor-server-sessions adds the ability to use stateful sessions stored on a serverktor-websockets provides support for Websocketsktor-client contains modules for performing http requests
ktor-client-core is a core package where most of the http HttpClient API is locatedktor-client-apache adds support for the Apache asynchronous HttpClientktor-client-cio adds support for a pure Kotlin Corutine based I/O asynchronous HttpClientktor-client-jetty adds supportktor-client-auth-basic adds support for authenticationktor-client-json adds support for json content negotiationktor-network includes raw sockets for client/server, and TCP/UDP
ktor-network-tls contains TLS support for raw socketsSee instructions for setting up a project with