Comparison with Alternatives
Library | Language | Effect system | Typed query DSL | Safe SQL string interpolator | Databases supported out of the box |
---|---|---|---|---|---|
Slick | Scala | Future | Yes, compiled to SQL at runtime | Yes, explicitly typed outputs or typechecked against the database at compile time | MySQL, Postgres, IBM DB2, Oracle, SQL Server, H2, HSQLDB, SQLite, Derby |
Quill | Scala | Depends on your choice out of many backends (contexts). | Yes, compiled to SQL at compile time (with exceptions) | Yes, explicitly typed outputs. Fully composable with query DSL. | MySQL, Postgres, SQLite, H2, SQL Server, Oracle, Cassandra, OrientDB |
zio-sql | Scala | ZIO | Yes, compiled to SQL at runtime | false | PostgreSQL, SQL Server, Oracle, MySQL |
jOOQ | Java | None (synchronous) | Yes, compiled to SQL at runtime | false | Aurora MySQL Edition, Aurora PostgreSQL Edition, Azure SQL Data Warehouse (Azure Synapse Analytics), Azure SQL Database, DB2 LUW, Derby, Firebird, H2, HANA, HSQLDB, Informix, Ingres, MariaDB, Microsoft Access, MySQL, Oracle, PostgreSQL, Redshift, SQL Server, SQLite, Sybase Adaptive Server Enterprise, Sybase SQL Anywhere, Teradata, Vertica |
Skunk | Scala | Effect-polymorphic | No | Yes, explicitly typed outputs. | PostgreSQL |
Doobie | Scala | Effect-polymorphic | No | Yes, explicitly typed outputs. | All JDBC |
Anorm | Scala | None (synchronous) | No | Yes, explicitly typed outputs. | All JDBC |
Contents