Radically Simple. Fast. ST/ORM for Kotlin.

A modern alternative to Hibernate, built for agentic coding and performance.

Your data class is the type-safe model. Your agent gets the exact details it needs to act on, and your queries generally run faster than with any other ORM.

Entities.kt

        
↳ generated sql

      
Benchmark againstSee the benchmarks →
11 of 12

workloads faster than Hibernate

Level on the dynamic query; Storm is behind on none of the twelve, and leads by up to 1.5x.

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.

Agentic coding

Good for your agent. Good for you.

A coding agent is only as right as what it can read. In Storm every detail lives in the model: your data classes define the tables, keys and relations, and the queries follow from them. Underneath is a thin layer over JDBC, so nothing sits between the model and the database. The agent reads the model and has everything it needs, and the code it reads is exactly what runs.

What you see is what runs

No proxies, no lazy loading, no persistence context, no flush. An entity is a value, and every database call is a visible line of code. Nothing happens that the agent cannot see.

All in one place

One data class is the table, its keys and its relations. No second table definition beside it, and no session state deciding at runtime what a field holds. The agent reads one file and has the full picture.

Queries come from the domain

Your entities already give you one-line, type-safe queries across relations, with the whole graph loaded in one statement. Less for the agent to write, and fewer joins and mappings to get wrong.

Set up your agent in one minute

The Storm CLI installs rules and skills for Claude Code, Cursor, GitHub Copilot, Windsurf and Codex, plus an optional MCP server that runs on your machine and is read-only. The agent sees your schema, never your credentials, and sees data only if you allow it. The agent then checks its own work: validateSchema() proves the entities match the database, and SqlCapture shows the SQL a query really runs.

Runs locallyRead-onlySchema only by defaultCredentials never reach the AI
Agentic coding guide → How access is secured →
Install the Storm CLI once.
In your project: rules, skills and schema access for your agent. Run storm update later to refresh them.
In an empty directory: your agent builds a demo app on Storm.

Needs Node.js 18 or later.

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.1
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 →
Get in touch

Talk to the engineers behind Storm

Evaluating Storm for your team or project, stuck on a mapping, or missing a feature? Write to us directly.

Already using Storm? Tell us what you built, and we will gladly list your company or project on this site.

hello@orm.st