Releases: swift-server/RediStack
RedisNIO 1.0.0 Alpha 3
Major
NIO
is no longer exported, you will need to explicitlyimport NIO
!57errorCaught
inRedisCommandHandler
now fails all pending responses, and does not incrementRedisMetrics.commandFailureCount
!59EventLoopFuture.mapFromRESP
has been renamed to `EventLoopFuture.convertFromRESPValue !60
Minor
- The
APPEND
command is now available with theappend(_:to:)
method !61
RedisNIO 1.0.0 Alpha 2.1
Minor
- Added new
RedisConnection.defaultPort
static property set to6379
for users to reference !51
RedisNIO 1.0.0 Alpha 2
Major
- Added explicit conformance to
RESPValueConvertible
forFoundation.Data
to resolve a bug where it received conformance fromCollection
(!50)
RedisNIO 1.0.0 Alpha 1.1.1
Patch
- Fix warning from default in switch (788f69de)
RedisNIO 1.0.0 Alpha 1.1
Minor
- Improve debugging of
RESPValue
(d4584924)
RedisNIO 1.0.0 Alpha 1
RedisNIO 0.10.0
This release introduces a "minor" breaking change that is large enough that it warrants releasing it as a major revision.
SE-0226 Package Manager Target Dependency Resolution introduces a change to expected form of packages and their naming.
To be compliant with future changes to SPM - it was decided to rename the package from redis-nio
(matching the module name) to swift-redis-nio-client
to match the repo instead.
Major
- Renamed package from
redis-nio
toswift-redis-nio-client
!47
RedisNIO 0.9.0: Renaming
This release brings a major breaking change. GitHub will forward most requests from the previous repository URL to the new one - but in code it has more specific ramifications.
This is necessary to align with the goals of the SSWG and to solve problems that will exist in the future before it causes real issues.
For further context into the discussion, see the following threads on the Swift Forums:
Major
- Renamed the repo in GitHub from
nio-redis
toswift-redis-nio-client
- Renamed the package from
nio-redis
toredis-nio
- Renamed the
NIORedis
module toRedisNIO
- Renamed
NIORedisError
toRedisNIOError
- Changed references to
NIORedis
toRedisNIO
in object labels such as NIO Channel Handlers & Loggers
Minor
- Changed all references in copyright blocks, project files (README, LICENSE, etc.) to refer to the project as
RedisNIO
NIORedis 0.8.0: Blocking & Pub/Sub
Major
- Added
SwiftMetrics
dependency (#41) - Changed
ChannelPipeline
registration of handlers forRedisConnection
to now have a reliable name (d0da3e7)
Minor
- Added
bzpopmin
andbzpopmax
convenience methods for sorted sets (#42) - Added
brpop
,blpop
, andbrpoplpush
convenience methods for lists (#43)
Patch
NIORedis 0.7.0: The Proposal
Breaking Changes
- Static factory methods for building a default Redis
Channel
pipeline andRedisConnection
have been moved to a newRedis
enum namespace (#38)- Their method signatures have also seen some changes
- Encoding / Decoding RESP has been separated from the Channel pipelines (#39)
RESPTranslator
is a new type that implements the encoding/decoding of RESP formatted bytes to Swift typesRESPDecoder
has been renamed toRedisByteDecoder
and is just aByteToMessageDecoder
RESPEncoder
has been renamed toRedisMessageEncoder
and is just aMessageToByteEncoder
- Error handling is now more straight forward (#37)
RedisError
is to represent only errors returned by Redis itself in command responsesNIORedisError
represents errors thrown within the libraryRESPTranslator.ParsingError
represents errors thrown while parsing bytes
RedisPipeline
has been removed (#36)- This feature may be re-introduced in the future, but for now is left up to higher level packages to implement
RESPValue
now holds references toByteBuffers
rather thanData
(#34)Foundation.Data
is no longerRESPValueConvertible
(#30)
Additions
RedisConnection
now has a propertysendCommandsImmediately
that controls the timing of when commands written to the network socket should be flushed and sent to Redis. (#36)- The default is
true
, which means every command will trigger a flush.
- The default is
RESPValue
now has the following computed properties converted from the underlying storage (#30, #34):bytes: [UInt8]?
data: Data?
string: String?
(this isn't new, but now also works with.integer
storage instances)
Implementation Changes
SwiftLog
has been anchored to version1.0.0
RESPTranslator
now usesByteBufferView
s andByteBufferSlice
s internally, so there should be a performance increase (#34)