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
RedisPubSubEventthat 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
Loggerinstance to all method calls
- It is now expected for you to explicitly provide a
Minor
RedisByteDecodernow conforms toNIOSingleStepByteToMessageDecoder!185- Added new
RedisGracefulConnectionCloseEventmarker type that Redis channels will respond to for shutting down connections !190
Patch
- Fix deprecation warning by switching from
LocktoNIOLock!180 - Fix deprecation warning by switching from
NIOAtomictoManagedAtomic!179 - Connections will no longer send
QUITcommands to Redis as part of the shutdown process !187 RPOPLPUSHandBRPOPLPUSHcommands 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.ConfigurationandRedisConnectionPool.ConfigurationAPIs !176 - Refactored Pub/Sub
onSubscribe/onUnsubscribecallbacks to provide greater context to unsubscribe events !171 - Swift 5.5 is now the minimum supported version !178
Minor
- Added overload of
PINGcommand with no message arguments !172
Patch
addPubSubHandlernow 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
RedisPubSubHandlerfrom aChannelPipeline(!174)channel.pipeline.removeRedisPubSubHandler(handler)
- Deprecated
Channel.addRedisBaseHandlers()andChannel.addPubSubHandler()(!174)- These methods are now on
ChannelPipelineitself addPubSubHandleris 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
RedisClienttypes now support an optionalEventLoopandLoggerinstance when invoking commands to use (#92)
Minor
- Added an optional callback closure to
RedisConnectionto be invoked when unexpected closures happen to the connection (#95) - Added the
STRLENcommand (!163) - Added the
KEYScommand (#101) RedisCommandis 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
EventLoopFutureAPIs #102
RediStack 1.2.0
API Docs are always available at docs.redistack.info
Minor
RedisConnectionnow has anonUnexpectedClosurecallback 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
RedisKeyLifetimeandRedisKeyLifetime.Lifetimefor their renaming !143- These typealiases will be removed in the next major version
- Backport unit test for
PUBSUB CHANNELSfrom !152 - Backport fix and unit test for
PUBSUB NUMSUBfrom !153 - Backport unit test for
PUBSUB NUMPATfrom !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!