A Clojure library for building and executing SQL queries with a composable, functional DSL.
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.
Clojure developers working with relational databases who want a functional, idiomatic way to construct SQL queries without writing raw SQL strings.
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.
Tasty SQL for Clojure.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
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.
Treats SQL queries as Clojure data structures, avoiding raw SQL strings and improving maintainability by integrating with functional programming principles, making code more expressive.
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.
Enables defining database tables as entities with relationships like has-one, facilitating structured data modeling and automatic JOIN handling, simplifying data access patterns.
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.
Requires additional dependencies like log4j and configuration to manage verbose logging, adding overhead to project initialization and maintenance, as noted in the README.
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.