Releases: swift-server/RediStack
RediStack 1.3.1
The latest master
, pre-release, and release API Docs are always available at docs.redistack.info
Misc
- Add support for Swift Package Index documentation hosting for 1.x (254e3e78b32b2f332e6c8f010f5b8a92646c4632)
RediStack 2.0.0 Gamma 1
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 closurelet 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)") } }
- This introduces the type
RedisClient.logging(to:)
has been removed #115- It is now expected for you to explicitly provide a
Logger
instance to all method calls
- It is now expected for you to explicitly provide a
Minor
RedisByteDecoder
now conforms toNIOSingleStepByteToMessageDecoder
!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
toNIOLock
!180 - Fix deprecation warning by switching from
NIOAtomic
toManagedAtomic
!179 - Connections will no longer send
QUIT
commands to Redis as part of the shutdown process !187 RPOPLPUSH
andBRPOPLPUSH
commands no longer fail to convert responses on keys that are empty #116
Misc
RediStack 2.0.0 Beta 1
API Docs are always available at docs.redistack.info
DocC documentation is now available from Swift Package Index.
Major
- Significantly refactored the
RedisConnection.Configuration
andRedisConnectionPool.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
The latest master
API Docs are always available at docs.redistack.info
Minor
- Added new API for safely removing the
RedisPubSubHandler
from aChannelPipeline
(!174)channel.pipeline.removeRedisPubSubHandler(handler)
- Deprecated
Channel.addRedisBaseHandlers()
andChannel.addPubSubHandler()
(!174)- These methods are now on
ChannelPipeline
itself addPubSubHandler
is now namedaddRedisPubSubHandler()
- These methods are now on
Patch
- Fixed the race condition in
Channel.addPubSubHandler()
(#100)
RediStack 2.0.0 Alpha 4
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 optionalEventLoop
andLogger
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 nowEquatable
(498b6a5)- Added basic support for DocC (d5f38b7)
Patch
RediStack 1.2.2
API Docs are always available at docs.redistack.info
Patch
- Use correct base method for zrevrange overload methods #104
RediStack 1.2.1
API Docs are always available at docs.redistack.info
Patch
- Remove usage of deprecated NIO
EventLoopFuture
APIs #102
RediStack 1.2.0
API Docs are always available at docs.redistack.info
Minor
RedisConnection
now has anonUnexpectedClosure
callback property that can be used to respond to unexpected connection closures #95let connection: RedisConnection connection.onUnexpectedClosure = { cleanup() }
RediStack 1.1.2
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
andRedisKeyLifetime.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
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!