Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Clojure
  3. Korma

Korma

Clojure

A Clojure library for building and executing SQL queries with a composable, functional DSL.

Visit WebsiteGitHubGitHub
1.5k stars217 forks0 contributors

What is Korma?

Korma is a SQL domain-specific language for Clojure that provides a functional, composable way to build and execute database queries. It allows developers to interact with relational databases using Clojure data structures and functions, avoiding raw SQL strings and improving code maintainability. The library supports features like entity definitions, relationships, and expressive query conditions.

Target Audience

Clojure developers working with relational databases who want a functional, idiomatic way to construct SQL queries without writing raw SQL strings.

Value Proposition

Developers choose Korma for its seamless integration with Clojure's functional programming style, offering a composable DSL that makes complex query generation straightforward and maintainable compared to string-based SQL or heavier ORMs.

Overview

Tasty SQL for Clojure.

Use Cases

Best For

  • Building composable SQL queries in Clojure applications
  • Interacting with PostgreSQL or other JDBC databases functionally
  • Defining database entities and relationships with Clojure data structures
  • Writing maintainable database code without raw SQL strings
  • Constructing complex query conditions with Clojure expressions
  • Functional programming enthusiasts needing a lightweight SQL DSL

Not Ideal For

  • Projects requiring complex, vendor-specific SQL features not abstracted by the DSL
  • Teams that prioritize raw SQL for full control and transparency over query execution
  • High-performance applications where DSL abstraction might add latency or overhead
  • Environments using non-JDBC databases or needing extensive ORM-like features

Pros & Cons

Pros

Composable Query Building

Allows building SQL queries through functional composition, enabling chained operations like where, order, and limit for complex SQL generation without raw strings, as shown in the README examples.

Clojure Idiomatic Design

Treats SQL queries as Clojure data structures, avoiding raw SQL strings and improving maintainability by integrating with functional programming principles, making code more expressive.

Expressive Condition Syntax

Supports Clojure expressions for where clauses, including or, and, like, and not=, providing flexible query construction directly in code, as demonstrated in the condition examples.

Easy Entity Definitions

Enables defining database tables as entities with relationships like has-one, facilitating structured data modeling and automatic JOIN handling, simplifying data access patterns.

Cons

Immature Release Status

The current version is 0.5.0-RC1 as of 2018, indicating it's not yet stable and may have bugs or breaking changes, posing risks for production deployments.

Complex Setup and Logging

Requires additional dependencies like log4j and configuration to manage verbose logging, adding overhead to project initialization and maintenance, as noted in the README.

Limited Ecosystem and Support

Documentation is hosted externally (sqlkorma.com) and may be outdated; the project's slow development pace suggests limited community updates and support for modern SQL features.

Frequently Asked Questions

Quick Stats

Stars1,470
Forks217
Contributors0
Open Issues73
Last commit5 years ago
CreatedSince 2011

Tags

#query-builder#functional-programming#orm#database#sql-dsl#postgresql#clojure#jdbc

Built With

C
Clojure
P
PostgreSQL
J
JDBC

Links & Resources

Website

Included in

Clojure2.8k
Auto-fetched 18 hours ago

Related Projects

honeysqlhoneysql

Turn Clojure data structures into SQL

Stars1,905
Forks174
Last commit1 day ago
ToucanToucan

A classy high-level Clojure library for defining application models and retrieving them from a DB

Stars573
Forks48
Last commit2 years ago
WalkableWalkable

A Clojure(script) SQL library for building APIs: Datomic® (GraphQL-ish) pull syntax, data driven configuration, dynamic filtering with relations in mind

Stars452
Forks15
Last commit4 years ago
sqlingvosqlingvo

A Clojure & ClojureScript DSL for SQL

Stars210
Forks23
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub