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 Bintray
Ktor is split into several groups of modules:
ktor-servercontains modules that support running Ktor Application with different engines: Netty, Jetty, Tomcat, and generic servlet. It also contains TestEngine for setting up application tests without starting real server.
ktor-server-coreis a core package where most of the application API and implementation is located.
ktor-server-jettysupport a deployed or embedded Jetty instance
ktor-server-nettysupports Netty in an embedded mode
ktor-server-tomcatsupports Tomcat servers
ktor-server-servletis used by Jetty and Tomcat and allows running in generic servlet container
ktor-server-test-hostallows running application tests faster without starting full host
ktor-featuresgroups modules for features that are optional and may not be required by every application
ktor-authprovides support for different authentication systems like Basic, Digest, Forms, OAuth 1a and 2
ktor-auth-ldapadds ability to authenticate against LDAP instance
ktor-freemarkerintegrates Ktor with Freemarker templates
ktor-html-builderintegrates Ktor with kotlinx.html builders
ktor-locationscontains experimental support for typed locations
ktor-server-sessionsadds ability to use stateful sessions stored on a server
ktor-websocketsprovides support for Websockets
See instructions for setting up a project with