Releases: swift-server/RediStack
RedisNIO 1.0.0 Alpha 3
Major
NIOis no longer exported, you will need to explicitlyimport NIO!57errorCaughtinRedisCommandHandlernow fails all pending responses, and does not incrementRedisMetrics.commandFailureCount!59EventLoopFuture.mapFromRESPhas been renamed to `EventLoopFuture.convertFromRESPValue !60
Minor
- The
APPENDcommand is now available with theappend(_:to:)method !61
RedisNIO 1.0.0 Alpha 2.1
Minor
- Added new
RedisConnection.defaultPortstatic property set to6379for users to reference !51
RedisNIO 1.0.0 Alpha 2
Major
- Added explicit conformance to
RESPValueConvertibleforFoundation.Datato 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-niotoswift-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-redistoswift-redis-nio-client - Renamed the package from
nio-redistoredis-nio - Renamed the
NIORedismodule toRedisNIO - Renamed
NIORedisErrortoRedisNIOError - Changed references to
NIORedistoRedisNIOin 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
SwiftMetricsdependency (#41) - Changed
ChannelPipelineregistration of handlers forRedisConnectionto now have a reliable name (d0da3e7)
Minor
- Added
bzpopminandbzpopmaxconvenience methods for sorted sets (#42) - Added
brpop,blpop, andbrpoplpushconvenience methods for lists (#43)
Patch
NIORedis 0.7.0: The Proposal
Breaking Changes
- Static factory methods for building a default Redis
Channelpipeline andRedisConnectionhave been moved to a newRedisenum namespace (#38)- Their method signatures have also seen some changes
- Encoding / Decoding RESP has been separated from the Channel pipelines (#39)
RESPTranslatoris a new type that implements the encoding/decoding of RESP formatted bytes to Swift typesRESPDecoderhas been renamed toRedisByteDecoderand is just aByteToMessageDecoderRESPEncoderhas been renamed toRedisMessageEncoderand is just aMessageToByteEncoder
- Error handling is now more straight forward (#37)
RedisErroris to represent only errors returned by Redis itself in command responsesNIORedisErrorrepresents errors thrown within the libraryRESPTranslator.ParsingErrorrepresents errors thrown while parsing bytes
RedisPipelinehas been removed (#36)- This feature may be re-introduced in the future, but for now is left up to higher level packages to implement
RESPValuenow holds references toByteBuffersrather thanData(#34)Foundation.Datais no longerRESPValueConvertible(#30)
Additions
RedisConnectionnow has a propertysendCommandsImmediatelythat 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
RESPValuenow 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.integerstorage instances)
Implementation Changes
SwiftLoghas been anchored to version1.0.0RESPTranslatornow usesByteBufferViews andByteBufferSlices internally, so there should be a performance increase (#34)