Radically Simple. Fast. ST/ORM for Kotlin.

A modern alternative to Hibernate.

Immutable data-class entities. Concise queries checked at compile time. No proxies, persistence context, or accidental N+1 queries.

Entities.kt

        
generated sql

      
Benchmark againstSee the benchmarks →
9 of 12

workloads faster than Hibernate

Level on the other three; Storm is behind on none of the twelve, and leads by up to 1.6x.

78%

fewer entity lines

The five-table model: 31 lines in Storm, 141 in Hibernate.

14%

fewer query lines

All twelve workloads: 161 lines in Storm, 188 in Hibernate, with no query strings.

Optimized for
PostgreSQLMySQLMariaDBOracleSQL ServerSQLiteH2
Integrates with
KtorSpring BootGraalVM

Evaluating Storm for production

Storm is developed and maintained as an independent open-source project. Applications built with Storm have been running in commercial production since May 2024, supporting services delivered to some of the world’s largest technology companies.

Current release
1.14.0
Published to Maven Central as st.orm:storm-bom.
View on Maven Central →
License
Apache 2.0
One license for the whole framework, database dialects included. No commercial tier and no separate terms per database.
Read the license →
Runtime
JDK 21+
Kotlin 2.0 through 2.4. Runs on any JVM 21 or later.

Databases

Dialect modules for PostgreSQL, MySQL, MariaDB, Oracle, SQL Server, SQLite and H2, each with its own upsert, paging and identity handling. Any other JDBC database runs on the generic dialect.

Dialect support →

Integrations

Spring Boot 3 and 4 (starter, auto-configuration, repository scanning, test slices), Ktor (plugin, coroutine-native transactions), GraalVM native images, Micrometer metrics, Jackson and kotlinx.serialization.

Spring integration → Ktor integration →

Questions and feedback

Ask in Discord for a quick answer, or open a discussion when it is worth keeping searchable. Feedback on the docs and the quickstart is especially welcome.

Join the Discord → Discussions →