Overview
PGMQ is a lightweight message queue built on top of PostgreSQL — no extra infrastructure, just your existing database. Keep It Simple Stupid, use postgres.
pgmq4s (codename: Dutchie) is a Scala 3 client for PGMQ, supporting JVM, Scala.js, and Scala Native.
Requires PGMQ v1.11.0+ (topic-based routing). Core messaging works with v1.10.0.
Note
This library is under active development. The API may contain breaking changes between releases.
Features
- Effect-agnostic — tagless final
PgmqClient[F]andPgmqAdmin[F]with no required effect dependency; bring your own viaPgmqEffect[F], with aFutureinstance built in, a Cats adapter (pgmq4s-cats) for Cats Effect, and native Kyo support inpgmq4s-kyo - Multiple backends — Doobie, Skunk, Anorm, Slick, Kyo
- Multiple JSON codecs — Circe, Jsoniter-scala, uPickle, Play JSON, Spray JSON
- Cross-platform — Skunk and Kyo backends plus Circe/Jsoniter/uPickle codecs work on JVM, JS, and Native
Work-in-progress 🚧
- Streaming (fs2)
- Native ZIO support (Quill)
In this article
