Skip to content

Releases: ghostdogpr/sage

v0.2.0

Choose a tag to compare

@ghostdogpr ghostdogpr released this 30 Jun 02:52
5f346c1

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).
Screenshot 2026-06-29 at 17 53 04

  • The ZIO and Kyo integrations now expose a precise exception type SageException rather than Throwable since 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 CommandTracer and 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

Choose a tag to compare

@ghostdogpr ghostdogpr released this 23 Jun 01:31

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

v0.1.0

Choose a tag to compare

@ghostdogpr ghostdogpr released this 19 Jun 00:29
abfe6fb

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.