Source: https://seerepo.com/compare/ktorio/ktor/vs/spring-projects/spring-boot
Markdown source: https://seerepo.com/compare/ktorio/ktor/vs/spring-projects/spring-boot.md
Description: ktor and spring-boot share 8 technologies: tomcat-embed-core, jakarta.servlet:jakarta.servlet-api, org.freemarker:freemarker, Thymeleaf, slf4j-simple, org.slf4j:slf4j-api, ch.qos.logback:logback-classic, and io.micrometer:micrometer-core. ktor is written in Kotlin and spring-boot in Java.

# ktor vs spring-boot

ktor and spring-boot share 8 technologies: tomcat-embed-core, jakarta.servlet:jakarta.servlet-api, org.freemarker:freemarker, Thymeleaf, slf4j-simple, org.slf4j:slf4j-api, ch.qos.logback:logback-classic, and io.micrometer:micrometer-core. ktor is written in Kotlin and spring-boot in Java.

- [ktorio/ktor](https://seerepo.com/r/ktorio/ktor): Framework for quickly creating connected applications in Kotlin with minimal effort
- [spring-projects/spring-boot](https://seerepo.com/r/spring-projects/spring-boot): Spring Boot helps you to create Spring-powered, production-grade applications and services with absolute minimum fuss.

## What they share and what sets them apart

- In common: tomcat-embed-core, jakarta.servlet:jakarta.servlet-api, org.freemarker:freemarker, Thymeleaf, slf4j-simple, org.slf4j:slf4j-api, ch.qos.logback:logback-classic, io.micrometer:micrometer-core
- Only in ktor: Ktor, apacheds-server-integ, org.apache.directory.server:apacheds-core-integ, http2-server, jetty-alpn-java-server, jetty-ee10-servlets, jetty-ee10-websocket-jakarta-server, jetty-http2-server, org.jetbrains.kotlin:kotlin-stdlib, javax.servlet:javax.servlet-api, org.eclipse.jetty:jetty-server, Tokio, org.eclipse.jetty:jetty-servlet, org.eclipse.jetty.ee10:jetty-ee10-servlet, java-jwt, jwks-rsa, compiler, org.jetbrains.kotlinx:kotlinx-html, org.apache.velocity:velocity-engine-core, gg.jte:jte, io.pebbletemplates:pebble, io.swagger.parser.v3:swagger-parser, metrics-core, metrics-jvm, tracing-subscriber
- Only in spring-boot: JAX-RS, org.springframework.boot:spring-boot-starter-web, H2 Database, lettuce-core, Liquibase, MongoDB, org.apache.artemis:artemis-jakarta-client, org.springframework:spring-messaging, r2dbc-postgresql, spring-amqp-client, spring-data-ldap, spring-jms, spring-kafka, spring-r2dbc, spring-rabbit, spring-rabbitmq-client, io.r2dbc:r2dbc-spi, jakarta.jms:jakarta.jms-api, Neo4j, com.zaxxer:HikariCP, com.hazelcast:hazelcast, org.apache.activemq:activemq-client, Couchbase, Flyway, org.springframework.pulsar:spring-pulsar, org.springframework.ldap:spring-ldap-core, io.r2dbc:r2dbc-pool, org.apache.qpid:protonj2-client, grpc-services, jersey-container-servlet, jersey-media-json-jackson, jersey-spring6, jetty-ee11-websocket-jetty-server, org.apache.tomcat.embed:tomcat-embed-websocket, org.jetbrains.kotlin:kotlin-stdlib-jdk8, servlet-api, Spring Boot, spring-data-rest-webmvc, spring-graphql, tomcat-embed-el, Spring, org.springframework.grpc:spring-grpc-core, org.glassfish.jersey.core:jersey-server, org.eclipse.jetty.ee11:jetty-ee11-webapp, org.springframework.ws:spring-ws-core, org.springframework.integration:spring-integration-core, org.eclipse.jetty.ee11.websocket:jetty-ee11-websocket-jakarta-server, org.eclipse.jetty.compression:jetty-compression-gzip, org.eclipse.jetty.compression:jetty-compression-server, org.springframework.hateoas:spring-hateoas, org.springframework.data:spring-data-commons, spring-data-cassandra, spring-data-couchbase, spring-data-elasticsearch, spring-data-jpa, spring-data-mongodb, spring-data-neo4j, spring-data-r2dbc, org.jooq:jooq, jakarta.persistence:jakarta.persistence-api, org.hibernate.orm:hibernate-core, org.springframework.security:spring-security-crypto, spring-security-oauth2-authorization-server, spring-security-oauth2-client, spring-security-saml2-service-provider, spring-session-data-redis, spring-session-jdbc, org.springframework.session:spring-session-core, angus-mail, groovy-templates, com.samskivert:jmustache, jakarta.mail:jakarta.mail-api, com.sendgrid:sendgrid-java, org.glassfish.jersey.ext:jersey-bean-validation, Hibernate, jul-to-slf4j, micrometer-jakarta9, micrometer-tracing-bridge-brave, micrometer-tracing-bridge-otel, org.apache.logging.log4j:log4j-slf4j2-impl, zipkin-reporter-brave, io.micrometer:micrometer-observation, org.apache.logging.log4j:log4j-core, io.micrometer:micrometer-tracing, OpenTelemetry, io.opentelemetry:opentelemetry-sdk, org.apache.logging.log4j:log4j-api, io.opentelemetry:opentelemetry-exporter-otlp, io.micrometer:micrometer-registry-otlp, io.opentelemetry.instrumentation:opentelemetry-logback-appender-1.0, org.apache.logging.log4j:log4j-jul

## Side by side

| | ktor | spring-boot |
|---|---|---|
| Size | 301,366 lines written, 1,642 code files | 759,628 lines written, 4,267 code files |
| Who writes it | 0.7% of its commits signed by AI. With Claude Code, CodeRabbit, Cursor, Codex, and GitHub Copilot | 0% of its commits signed by AI. With Claude Code |
| Activity | Last push November 7, 2026, 6,943 commits, 14,562 stars | Last push November 9, 2026, 42,460 commits, 81,789 stars |
| Tests | 780 test files. 53.5% of its code files have a test that imports them | 4,558 test files. 55.8% of its code files have a test that imports them |

- Size: Lines written by people and agents, without generated ones; code files, without tests.
- Who writes it: A commit counts as AI's when it carries its signature: a Co-Authored-By line, its author name or the merge of its branch.
- Activity: From GitHub and its history, on the day SeeRepo read it.
- Tests: The files that test the code, and the share of code files a test imports.

## Frequently asked questions

### Which is bigger, ktor or spring-boot?

spring-boot, with 759,628 lines written; ktor has 301,366.

The proof: [spring-projects/spring-boot's code at commit bafb112](https://github.com/spring-projects/spring-boot/tree/bafb11263aca6686585eb654f9129dc3ee4e6482)

### Which has more GitHub stars, ktor or spring-boot?

spring-boot, with 81,789 stars; ktor has 14,562.

The proof: [spring-projects/spring-boot on GitHub](https://github.com/spring-projects/spring-boot)

### Which has more tests, ktor or spring-boot?

spring-boot, with 4,558 test files; ktor has 780.

The proof: [spring-projects/spring-boot's code at commit bafb112](https://github.com/spring-projects/spring-boot/tree/bafb11263aca6686585eb654f9129dc3ee4e6482)

### Which was updated more recently, ktor or spring-boot?

spring-boot: its last push was on November 9, 2026, and ktor's on November 7, 2026.

The proof: [spring-projects/spring-boot's commits on GitHub](https://github.com/spring-projects/spring-boot/commits)

### Which has more commits signed by AI, ktor or spring-boot?

ktor: an AI signed 0.7% of its commits, with Claude Code, CodeRabbit, Cursor, Codex, and GitHub Copilot.

The proof: [the commits each tool signed in ktorio/ktor](https://seerepo.com/r/ktorio/ktor/ai)

## Sources

- ktorio/ktor: Read on November 9, 2026, at commit f5d66c2 (https://github.com/ktorio/ktor/tree/f5d66c268e001b378c24d15cfe2e3d6af5487d0a)
- spring-projects/spring-boot: Read on November 9, 2026, at commit bafb112 (https://github.com/spring-projects/spring-boot/tree/bafb11263aca6686585eb654f9129dc3ee4e6482)

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
