programs-as-values
skunk
Our great sponsors
programs-as-values | skunk | |
---|---|---|
2 | 4 | |
5 | 1,549 | |
- | 1.5% | |
3.2 | 9.2 | |
over 1 year ago | 6 days ago | |
Scala | Scala | |
- | 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.
programs-as-values
-
typelevel
Go straight to the "programs as values" paradigm and its main data type; IO - I have a small repo with concrete examples and resources here: https://github.com/pslcorp/programs-as-values note however it is not intended as a tutorial on its own since I use it as support for my talks, but the linked resources are helpful.
-
How can effect system ever become mainstream?
Finally, while I get the point / joke, I just want to show how easy is to write something like a high-low priority scheduler using IO just because we can manipulate programs as values: https://github.com/pslcorp/programs-as-values/blob/main/src/main/scala/example/priority/HighLowPriorityRunner.scala
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.
What are some alternatives?
MacWire - Lightweight and Nonintrusive Scala Dependency Injection Library
doobie - Functional JDBC layer for Scala.
natchez - functional tracing for cats
doobie-quill - Integration between Doobie and Quill libraries
zio-magic - Construct ZLayers automagically (w/ helpful compile-time errors)
fly4s - A lightweight, simple and functional wrapper of Flyway using cats effect.
pfps-examples - :izakaya_lantern: Standalone examples shown in the book "Practical FP in Scala: A hands-on approach"
fs2-kafka - Functional Kafka Streams for Scala
pencil - Simple smtp client
toolkit - A Scala 3, lightweight and functional non-intrusive library to build typed and declarative Scala application with managed resources and dependencies
sbt-tpolecat - scalac options for the enlightened
slick - the last carousel you'll ever need