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.
Level on the dynamic query; Storm is behind on none of the twelve, and leads by up to 1.5x.
The five-table model: 31 lines in Storm, 141 in Hibernate.
All twelve workloads: 161 lines in Storm, 188 in Hibernate, with no query strings.
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.
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.
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.
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.
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.
storm update later to refresh them.Needs Node.js 18 or later.
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.
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 →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 →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 →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