Skip to content

Releases: swift-server/RediStack

RediStack 1.3.1

20 Jan 04:46
aa185a0
Compare
Choose a tag to compare

The latest master, pre-release, and release API Docs are always available at docs.redistack.info

Misc

RediStack 2.0.0 Gamma 1

13 Dec 03:30
3f7fedb
Compare
Choose a tag to compare
Pre-release

API Docs are always available at docs.redistack.info

Announcement

📢 RediStack is back in an alpha phase where breaking changes are being allowed in the 2.x release.

This is due to the additional help and insight into the library's needed evolution by @fabianfett.

Given that SemVer rules state that pre-release identifiers are resolved in lexicographical order, and RediStack has already used alpha, beta, and experimental, RediStack will use the following names for the "new" alpha & beta releases:

  • alpha => Gamma
  • beta => Lambda

Changes

Major

  • Pub/Sub message and subscription handlers are now unified into a single closure !181
    • This introduces the type RedisPubSubEvent that you can now explicitly handle in a single closure
      let handler: RedisPubSubEventReceiver = { event in
          switch event {
          case let .subscribed(subscriptionKey, connectionCount):
              print("new subscription to \(subscriptionKey). This connection now has \(connectionCount) subscriptions")
      
          case let .unsubscribed(subscriptionKey, connectionCount, unsubscribeEventSource):
              print("unsubscribed from \(subscriptionKey) due to \(unsubscribeEventSource). This connection still has \(connectionCount) subscriptions")
      
          case .message(let publisher, let message):
              print("message from \(publisher): \(message)")
          }
      }
  • RedisClient.logging(to:) has been removed #115
    • It is now expected for you to explicitly provide a Logger instance to all method calls

Minor

  • RedisByteDecoder now conforms to NIOSingleStepByteToMessageDecoder !185
  • Added new RedisGracefulConnectionCloseEvent marker type that Redis channels will respond to for shutting down connections !190

Patch

  • Fix deprecation warning by switching from Lock to NIOLock !180
  • Fix deprecation warning by switching from NIOAtomic to ManagedAtomic !179
  • Connections will no longer send QUIT commands to Redis as part of the shutdown process !187
  • RPOPLPUSH and BRPOPLPUSH commands no longer fail to convert responses on keys that are empty #116

Misc

  • RediStack now explicitly depends on SwiftAtomics !184
  • RediStack now explicitly depends on individual NIO modules, rather than the umbrella module !186

RediStack 2.0.0 Beta 1

15 Aug 04:10
0465b34
Compare
Choose a tag to compare
Pre-release

API Docs are always available at docs.redistack.info

DocC documentation is now available from Swift Package Index.

Major

  • Significantly refactored the RedisConnection.Configuration and RedisConnectionPool.Configuration APIs !176
  • Refactored Pub/Sub onSubscribe/onUnsubscribe callbacks to provide greater context to unsubscribe events !171
  • Swift 5.5 is now the minimum supported version !178

Minor

  • Added overload of PING command with no message arguments !172

Patch

  • addPubSubHandler now properly checks if handlers have been added/removed before executing logic to avoid deadlocks !173

RediStack 1.3.0

24 Apr 04:27
5458d64
Compare
Choose a tag to compare

The latest master API Docs are always available at docs.redistack.info

Minor

  • Added new API for safely removing the RedisPubSubHandler from a ChannelPipeline (!174)
    channel.pipeline.removeRedisPubSubHandler(handler)
  • Deprecated Channel.addRedisBaseHandlers() and Channel.addPubSubHandler() (!174)
    • These methods are now on ChannelPipeline itself
    • addPubSubHandler is now named addRedisPubSubHandler()

Patch

  • Fixed the race condition in Channel.addPubSubHandler() (#100)

RediStack 2.0.0 Alpha 4

18 Apr 04:48
9da5773
Compare
Choose a tag to compare
Pre-release

API Docs are always available at docs.redistack.info

Major

  • Swift 5.3 is now the minimum required version (5ed6375)
  • All commands methods on RedisClient types now support an optional EventLoop and Logger instance when invoking commands to use (#92)

Minor

  • Added an optional callback closure to RedisConnection to be invoked when unexpected closures happen to the connection (#95)
  • Added the STRLEN command (!163)
  • Added the KEYS command (#101)
  • RedisCommand is now Equatable (498b6a5)
  • Added basic support for DocC (d5f38b7)

Patch

  • Ensured the zrevrange bug will not regress (6c4ca52, #104)

RediStack 1.2.2

15 Mar 04:52
b277715
Compare
Choose a tag to compare

API Docs are always available at docs.redistack.info

Patch

  • Use correct base method for zrevrange overload methods #104

RediStack 1.2.1

03 Jan 20:15
Compare
Choose a tag to compare

API Docs are always available at docs.redistack.info

Patch

  • Remove usage of deprecated NIO EventLoopFuture APIs #102

RediStack 1.2.0

17 Aug 05:08
Compare
Choose a tag to compare

API Docs are always available at docs.redistack.info

Minor

  • RedisConnection now has an onUnexpectedClosure callback property that can be used to respond to unexpected connection closures #95
    let connection: RedisConnection
    connection.onUnexpectedClosure = { cleanup() }

RediStack 1.1.2

05 May 04:38
edadec9
Compare
Choose a tag to compare

API Docs are always available at docs.redistack.info

Patch

Thanks to @PeterAdams-A for this release's PubSub bug fix & unit tests!

  • Added deprecation warnings to RedisKeyLifetime and RedisKeyLifetime.Lifetime for their renaming !143
    • These typealiases will be removed in the next major version
  • Backport unit test for PUBSUB CHANNELS from !152
  • Backport fix and unit test for PUBSUB NUMSUB from !153
  • Backport unit test for PUBSUB NUMPAT from !154

RediStack 2.0.0 Alpha 3

05 May 04:18
Compare
Choose a tag to compare
Pre-release

API Docs are always available at docs.redistack.info

Major

The logs generated by this package have been audited to adhere to the SSWG's guidelines for log levels

As a consequence a handful of prior error logs have been dropped to lower levels. If you are no longer seeing them, and would like to, review the Logger.LogLevel configuration in your connection initializers.

In addition, one prior error log message has been changed as well.

If you feel these are the incorrect levels, or that any others should be adjusted - please open an issue.

  • Audit and adjust log levels across the package !149

Patch

Thanks to @PeterAdams-A for this release's PubSub bug fixes!

  • Fixed PUBSUB CHANNELS !152
  • Fixed PUBSUB NUMSUB !153
  • Fixed PUBSUB NUMPAT !154