Releases: ghostdogpr/sage
Releases · ghostdogpr/sage
Release list
v0.2.0
Release Notes
This release brings two nice improvements:
- Added an OpenTelemetry integration module to get traces for each command automatically (tested with the Datadog agent on a real project, see below).
- The ZIO and Kyo integrations now expose a precise exception type
SageExceptionrather thanThrowablesince they have a specific channel for typed errors.
// ZIO
val res = client.set("greeting", "hello") // ZIO[Any, SageException, Boolean]
// Kyo
val res = client.set("greeting", "hello") // Boolean < (Abort[SageException] & Async)What's Changed
- Add
CommandTracerand OpenTelemetry tracing module by @ghostdogpr in #138 - Expose typed errors (
SageException) on the ZIO and Kyo backends by @ghostdogpr in #136 - Parse bracketed IPv6 hosts in fromUri and reject ambiguous authorities by @ghostdogpr in #141
- Mark a dedicated connection dead when its queued work is dropped by @ghostdogpr in #142
- Back off increasingly when a connection flaps by @ghostdogpr in #140
- Reject sub-millisecond config durations instead of truncating to 0ms by @ghostdogpr in #143
- Reject out-of-range ROLE replica ports instead of wrapping by @ghostdogpr in #144
- Reduce allocations in decoding by @ghostdogpr in #145
- Avoid per-command Set and repeated cache-key hashing on routing/cache paths by @ghostdogpr in #146
v0.1.1
Release Notes
By popular demand, Sage received a fifth backend, this time for Pekko. The base effect type for it is Future, and Pekko's Source is returned for streams.
What's Changed
- Add a Pekko/Future backend by @ghostdogpr in #134
- Bump Scala version and use the future-proof version of lazy vals by @ghostdogpr in #127
v0.1.0
Release Notes
This is the first ever release of Sage, a Redis & Valkey client for Scala 3. It is one client for any effect system, built on a from-scratch native Redis protocol implementation.
Highlights
- Use any effect system: first-class ZIO, Cats Effect, Kyo, and Ox artifacts, each exposing its ecosystem's native types with no wrapper visible.
- Fast, native Redis protocol: RESP3, commands, and codecs implemented directly in Scala 3, with no Java client wrapped underneath and fast by design.
- Modern and feature-rich: Redis 8+ and Valkey 8+ with auto-pipelining, transactions, cluster, sharded pub/sub, streams, client-side caching, and TLS.
- Observable: a built-in listener SPI for metrics, tracing, and connection-lifecycle events.
Runs on Scala 3.3.x LTS and later, and requires JDK 21+.
See the Documentation to get started.