Our great sponsors
|4 days ago||about 21 hours ago|
|Apache License 2.0||Apache License 2.0|
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
I want to move to Scala 3, but I'm not sure what libraries to use
11 projects | /r/scala | 31 Aug 2022
For database access Anorm https://github.com/playframework/anorm
Query DSL in Scala 3
2 projects | /r/scala | 24 Feb 2021
From First Principles: Why Scala?
11 projects | news.ycombinator.com | 11 Feb 2021
I have had poor experiences with "fancy" SQL libraries in multiple languages when I go past basic operations. This includes Slick and Quill in Scala.
I don't remember what the problems were with Slick that leave such a bad feeling when I hear its name -- that was 5 years ago -- but I had problems with Quill just last year. I was trying to use it to generate an efficient "in" query against a two column composite primary key, and nothing seemed to work. Since it uses macro magic, one of my attempts triggered an internal compiler error instead of normal compiler feedback.
I ended up dropping Quill for ScalikeJDBC:
It seems to be less popular/active than other libraries, but it is dead simple to use, even for developers new to Scala. I write exactly the SQL I want just like I would in psql. There is little-to-no magic . I think that the only slightly magical feature I use is ensure that variable interpolation into SQL ("SQLInterpolation") prevents injection attacks.
 It actually has capabilities to automatically map tables/columns into different structures and generate code for you, but my team doesn't use any of that. We just write SQL.
What are some alternatives?
Slick - Slick (Scala Language Integrated Connection Kit) is a modern database query and access library for Scala
doobie - Functional JDBC layer for Scala.
Quill - Compile-time Language Integrated Queries for Scala
Squeryl - A Scala DSL for talking with databases with minimum verbosity and maximum type safety
AnormCypher - Neo4j Scala library based on Anorm in the Play Framework
Relate - Performant database access in Scala
SwayDB - Persistent and in-memory key-value storage engine for JVM that scales on a single machine.
Casbah - Casbah is now officially end-of-life (EOL).