skunk
doobie
Our great sponsors
skunk | doobie | |
---|---|---|
4 | 12 | |
1,549 | 2,117 | |
1.5% | - | |
9.2 | 8.8 | |
2 days ago | 15 days ago | |
Scala | Scala | |
MIT License | MIT License |
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.
skunk
-
New to Scala;
The major performance issue with Skunk is tracked here. tl;dr prepared statements currently take a horrifying number of network round-trips to the database. I'm sympathetic to Rob's "what you see is what you get" priorities for Skunk. But I'm glad to see an outline of a plan that sounds like it would satisfy those objectives without being so, for lack of a better term, naïve in their pursuit.
-
Pleasant to use Scala libraries
The same creator is working on skunk, which is very exciting. Only works for Postgres though.
-
Zio / Zionomicon : is it worth it ?
The libraries doobie and skunk are more closely associated with cats. They both use cats-effect and fs2 for implementing database connectiona and input-output operations. The doobie library is a wrapper on JDBC, and as such is compatible with many DBMS, such as MySQL, PostgreSQL, H2, Oracle... Whereas skunk is specific to PostgreSQL, and is based on using the server protocol of that database.
doobie
-
Grasping the concepts and getting them down to earth
Most important/known: * https://http4s.org/ - an HTTP client/server * https://github.com/typelevel/fs2 - streaming * https://github.com/tpolecat/doobie - JDBC
-
doobie map to PostGIS Point
So you need to use PGgeography scala type and import another set of implicits: https://github.com/tpolecat/doobie/blob/main/modules/postgres/src/main/scala/doobie/postgres/pgisgeographyinstances.scala
-
mod team resignation by BurntSushi · Pull Request #671 · rust-lang/team
Developer removing a library integration due to above politics
- Remove Quill Integration
-
It's unsafe to depend on Typelevel Libraries
Doobie removes Quill integration in order to make some sort of political protest. The Quill developers are harassed on Twitter.
- Why is tpolecat against ZIO?
- Removes integration with Quill, which is now part of the ZIO organization, which I will not support
-
Zio / Zionomicon : is it worth it ?
The libraries doobie and skunk are more closely associated with cats. They both use cats-effect and fs2 for implementing database connectiona and input-output operations. The doobie library is a wrapper on JDBC, and as such is compatible with many DBMS, such as MySQL, PostgreSQL, H2, Oracle... Whereas skunk is specific to PostgreSQL, and is based on using the server protocol of that database.
-
Hiding Doobie's ConnectionIO implementation detail
You may find this issue helpful. tl;dr you can easily make a Transactor with the void Strategy that just ignores the null Connection. But I’m with Rob: at that point, you’re not actually testing anything.
What are some alternatives?
doobie-quill - Integration between Doobie and Quill libraries
Slick - Slick (Scala Language Integrated Connection Kit) is a modern database query and access library for Scala
zio-magic - Construct ZLayers automagically (w/ helpful compile-time errors)
Quill - Compile-time Language Integrated Queries for Scala
fly4s - A lightweight, simple and functional wrapper of Flyway using cats effect.
ScalikeJDBC - A tidy SQL-based DB access library for Scala developers. This library naturally wraps JDBC APIs and provides you easy-to-use APIs.
pfps-examples - :izakaya_lantern: Standalone examples shown in the book "Practical FP in Scala: A hands-on approach"
Anorm - The Anorm database library
fs2-kafka - Functional Kafka Streams for Scala
Clickhouse-scala-client - Clickhouse Scala Client with Reactive Streams support
pencil - Simple smtp client
PostgreSQL and MySQL async