On this page
Overview
Ktorm is a lightweight Kotlin ORM built directly on pure JDBC. It combines a strongly typed SQL DSL with entity sequence APIs, giving Kotlin applications detailed control over generated SQL while keeping queries idiomatic.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Build queries with a strongly typed SQL DSL
Table schemas are represented as Kotlin objects and queries can express filters, joins, aggregation, unions, inserts, updates, and deletes through typed DSLs.
Sources: [1]
Use entity APIs modeled after Kotlin sequences
Entity sequence APIs provide operations such as filter, map, and sortedBy, mirroring familiar Kotlin collection and sequence patterns.
Sources: [1]
Best fit
Fits Kotlin/JVM backends that want ORM conveniences without hiding SQL
It works well when teams want entity mapping and query composition while retaining fine-grained control over generated SQL without mandatory XML or annotations.
Sources: [1]
Before adoption
Treat database access as blocking because the core is pure JDBC
The README describes Ktorm as built directly on JDBC. Coroutine-based applications should still isolate database calls appropriately and size connection pools for blocking I/O.
Sources: [1]
Version 4.2.1 fixes an NPE in the KSP Maven plugin
The v4.2.1 release specifically fixes an NPE in the KSP Maven plugin, which matters for builds using that integration.
Sources: [2]
Official sources
- [1]Ktorm README(2026-10-06)
- [2]Ktorm v4.2.1 release(2026-10-06)
Supplemental curator note
It fits Kotlin/JVM backends that want ORM conveniences while retaining fine-grained SQL control. It is built on JDBC rather than R2DBC, so plan for blocking I/O.
Try it in 3 steps
- 1
Get the source
git clone --depth 1 https://github.com/kotlin-orm/ktorm.git - 2
Enter the repository
cd ktorm - 3
Check the official steps
Continue with the commands in the README Installation, Quick Start, or Getting Started section.
find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
Growth
Growth trends · Last 30 days
2,345 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 0
- Open PRs
- 7
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- kotlin
- orm
- sql
- ktorm
- Stars
- 2,345
- Forks
- 160
- Watchers
- 31
- Open issues
- 96
- Contributors
- 29
- Owner type
- Organization
- Primary language
- Kotlin
- License
- Apache-2.0
- Repository last updated
- Jun 20, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- mysql22,274 Stars
2 shared tag(s) · 2 shared category(s)
connect Ruby to MySQL or MariaDB and handle SQL queries, prepared statements, and streaming results
Ruby - Spring Data Redis1,874 Stars
2 shared tag(s) · 2 shared category(s)
integrate Redis into Spring through templates, repositories, Pub/Sub, and reactive APIs
Java - DuckDB41,928 Stars
2 shared tag(s) · 1 shared category(s)
Run analytical SQL directly over CSV, Parquet, and DataFrames inside the application process without a database server
C++ - Kotlin JDSL825 Stars
4 shared tag(s) · 2 shared category(s) · Same language
build JPA queries from ordinary Kotlin classes without generated metamodels
Kotlin - Komapper344 Stars
4 shared tag(s) · 2 shared category(s) · Same language
unify JDBC and R2DBC with a Kotlin DSL and compile-time metamodels
Kotlin - Spring Data JPA3,287 Stars
4 shared tag(s) · 2 shared category(s)
derive JPA CRUD, finder, pagination, and auditing behavior from repository interfaces
Java
Report incorrect information
Tell us if any listing information is incorrect or outdated.