The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
RediStack 1.5.1
7 weeks ago
### SemVer Patch
- Mark `RedisConnectionPool` as final (#83)
- Cherry pick GitLab 187: Graceful connection close without sending QUIT command (#85)
- Close connection pool even if some connections are leased/in creation (#86)
RediStack 1.5.0
10 weeks ago
### SemVer Minor
- Conform `RedisByteDecoder` to `NIOSingleStepByteToMessageDecoder` (#63)
- Delay connection attempts without addresses (#64)
- Require Swift 5.6 (#65)
- Implement a basic `RESP3Token` parser (#71)
- Add support for usernames (#72)
- Add `NIOSSL` dependency (#74)
- Make `RedisConnection.Configuration.defaultPort` thread safe (#81)
### SemVer Patch
- Explicitly depend on `Atomics` (#57)
- Remove reliance on the NIO umbrella module (#60)
- Add `RedisCommandEncoder` (#69)
- Remove `Context`, use `Logger` everywhere (#70)
- Move `RESP3TokenDecoder` into its own file (#75)
- Move `ConnectionPool` files into the ConnectionPool folder (#76)
- Split up Configuration file into two: `RedisConnectionPool` & `RedisConnection` (#78)
### Other Changes
- Fix crash in tests: Use explicit `RedisCommand` instead of tuple (#52)
- Add swift-server CI (#54, #58, #66)
- Remove codeclimate (#55)
- Update for new maintainers, switch mirroring around (#53, #56, #62, #67)
- Add release.yml for better generated release notes (#80)
RediStack 1.4.1
15 weeks ago
The latest `master`, pre-release, and release API Docs are always available at [docs.redistack.info](http://docs.redistack.info)
### Semver Patch
- Fix compiler error for pre Swift 5.7 versions [!201](https://gitlab.com/swift-server-community/RediStack/-/merge_requests/201)
RediStack 1.4.0
15 weeks ago
The latest `master`, pre-release, and release API Docs are always available at [docs.redistack.info](http://docs.redistack.info)
## Minor
- Add onUnexpectedConnectionClose callback to pool [!200](https://gitlab.com/swift-server-community/RediStack/-/merge_requests/200)
RediStack 2.0.0 Gamma 1.1
17 weeks ago
_The latest `master`, pre-release, and release API Docs are always available at [docs.redistack.info](http://docs.redistack.info)_
## Patch
- Fix Thread Sanitizer races caused by lazy one-time initialization of RedisClientErrors [!196](https://gitlab.com/swift-server-community/RediStack/-/merge_requests/196)
RediStack 1.3.3
17 weeks ago
_The latest `master`, pre-release, and release API Docs are always available at [docs.redistack.info](http://docs.redistack.info)_
## Patch
- Fix Thread Sanitizer races caused by lazy one-time initialization of RedisClientErrors [!197](https://gitlab.com/swift-server-community/RediStack/-/merge_requests/197)
RediStack 1.3.2
35 weeks ago
The latest `master`, pre-release, and release API Docs are always available at [docs.redistack.info](http://docs.redistack.info)
## Patch
- This is a re-release of [1.3.1](https://gitlab.com/swift-server-community/RediStack/-/releases/1.3.1), which was improperly tagged from `master`
RediStack 1.3.1
36 weeks ago
The latest `master`, pre-release, and release API Docs are always available at [docs.redistack.info](http://docs.redistack.info)
## Misc
- Add support for Swift Package Index documentation hosting for 1.x ([254e3e78b32b2f332e6c8f010f5b8a92646c4632](https://gitlab.com/swift-server-community/RediStack/-/tree/254e3e78b32b2f332e6c8f010f5b8a92646c4632))
RediStack 2.0.0 Gamma 1
41 weeks ago
API Docs are always available at [docs.redistack.info](http://docs.redistack.info)
# Announcement
:loudspeaker: **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](https://gitlab.com/swift-server-community/RediStack/-/merge_requests/181)
- This introduces the type `RedisPubSubEvent` that you can now explicitly handle in a single closure
```swift
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](https://gitlab.com/swift-server-community/RediStack/-/issues/115)
- It is now expected for you to explicitly provide a `Logger` instance to all method calls
## Minor
- `RedisByteDecoder` now conforms to `NIOSingleStepByteToMessageDecoder` [!185](https://gitlab.com/swift-server-community/RediStack/-/merge_requests/185)
- Added new `RedisGracefulConnectionCloseEvent` marker type that Redis channels will respond to for shutting down connections [!190](https://gitlab.com/swift-server-community/RediStack/-/merge_requests/190)
## Patch
- Fix deprecation warning by switching from `Lock` to `NIOLock` [!180](https://gitlab.com/swift-server-community/RediStack/-/merge_requests/180)
- Fix deprecation warning by switching from `NIOAtomic` to `ManagedAtomic` [!179](https://gitlab.com/swift-server-community/RediStack/-/merge_requests/179)
- Connections will no longer send `QUIT` commands to Redis as part of the shutdown process [!187](https://gitlab.com/swift-server-community/RediStack/-/merge_requests/187)
- `RPOPLPUSH` and `BRPOPLPUSH` commands no longer fail to convert responses on keys that are empty [#116](https://gitlab.com/swift-server-community/RediStack/-/issues/116)
## Misc
- **RediStack** now explicitly depends on **SwiftAtomics** [!184](https://gitlab.com/swift-server-community/RediStack/-/merge_requests/184)
- **RediStack** now explicitly depends on individual NIO modules, rather than the umbrella module [!186](https://gitlab.com/swift-server-community/RediStack/-/merge_requests/186)
RediStack 2.0.0 Beta 1
1 year ago
API Docs are always available at [docs.redistack.info](http://docs.redistack.info)
DocC documentation is now available from [Swift Package Index](https://swiftpackageindex.com/Mordil/RediStack/master/documentation/redistack).
## Major
- Significantly refactored the `RedisConnection.Configuration` and `RedisConnectionPool.Configuration` APIs [!176](https://gitlab.com/Mordil/RediStack/-/merge_requests/176)
- Refactored Pub/Sub `onSubscribe`/`onUnsubscribe` callbacks to provide greater context to unsubscribe events [!171](https://gitlab.com/Mordil/RediStack/-/merge_requests/171)
- Swift 5.5 is now the minimum supported version [!178](https://gitlab.com/Mordil/RediStack/-/merge_requests/178)
## Minor
- Added overload of `PING` command with no message arguments [!172](https://gitlab.com/Mordil/RediStack/-/merge_requests/172)
## Patch
- `addPubSubHandler` now properly checks if handlers have been added/removed before executing logic to avoid deadlocks [!173](https://gitlab.com/Mordil/RediStack/-/merge_requests/173)