Compile-time Language Integrated Queries for Scala
APACHE-2.0 License
Quill provides a Quoted Domain Specific Language (QDSL) to express queries in Scala and execute them in a target language.
The library's core is designed to support multiple target languages, currently featuring specializations for Structured Query Language (SQL) and Cassandra Query Language (CQL).
quote
block. Quill parses each quoted block of code (quotation) at compile time and translates them to an internal Abstract Syntax Tree (AST)ctx.run
call reads the quotation's AST and translates it to the target language at compile time, emitting the query string as a compilation message. As the query string is known at compile time, the runtime overhead is very low and similar to using the database driver directly.Scala 3 Support
ProtoQuill provides Scala 3 support for Quill rebuilding on top of new metaprogramming capabilities from the ground > up! It is published to maven-central as the
quill-<module>_3
line of artifacts.
Doobie Support
See here for Doobie integration instructions.
Note: The GIF example uses Eclipse, which shows compilation messages to the user.
Learn more on the ZIO Quill homepage!
For the general guidelines, see ZIO contributor's guide.
See the Code of Conduct
Come chat with us on .
You can notify all current maintainers using the handle @getquill/maintainers
.
The project was created having Philip Wadler's talk "A practical theory of language-integrated query" as its initial inspiration. The development was heavily influenced by the following papers: