Hello all. About a year and a half ago I built a p...
# server
d
Hello all. About a year and a half ago I built a pure Kotlin SQL DSL (not an ORM) with a focus on supporting some complex SQL not supported by Exposed or Ktorm. This includes things like windows, CTEs, values relations and so on. I also tried to address design and quality-of-life issues in Exposed's SQL layer. This includes reliance on thread local state, awkward support for custom columns, mutable DSL elements and inconsistent casing of identifiers. The library has been used in production by myself and at least one other company for about a year without headaches. Anyone who is interested in this niche can find the project here: https://github.com/mfwgenerics/koala We also have a Slack channel #koalaql. I'd love to support any new users or contributors to the project
🙌 1
c
The docs could explain how it is different from jOOQ. Sure jOOQ's not in Kotlin, but it has Kotlin support (for generating) and integrates "quite well" in Kotlin code.
d
the docs are fairly incomplete at the moment but I intend to write a comparison to jOOQ later on. jOOQ is a much more mature and complete project as you'd expect
in terms of fundamental philosophy, the big difference might be that Koala is designed to be used without any code generation, no XML/YAML configuration or extra build steps. similar to Exposed it treats table definitions in code as more like a source of truth, and includes state-based database migrations similar to Exposed's SchemaUtils. it is written to be an alternative to Exposed's SQL DSL layer rather than to be an alternative to jOOQ
c
Thanks!