Skip to content

Releases: swift-server/RediStack

RedisNIO 1.0.0 Alpha 3

11 Jul 21:35
Compare
Choose a tag to compare
Pre-release

Major

  • NIO is no longer exported, you will need to explicitly import NIO !57
  • errorCaught in RedisCommandHandler now fails all pending responses, and does not increment RedisMetrics.commandFailureCount !59
  • EventLoopFuture.mapFromRESP has been renamed to `EventLoopFuture.convertFromRESPValue !60

Minor

  • The APPEND command is now available with the append(_:to:) method !61

RedisNIO 1.0.0 Alpha 2.1

11 Jul 21:34
Compare
Choose a tag to compare
Pre-release

Minor

  • Added new RedisConnection.defaultPort static property set to 6379 for users to reference !51

RedisNIO 1.0.0 Alpha 2

11 Jul 21:33
Compare
Choose a tag to compare
Pre-release

Major

  • Added explicit conformance to RESPValueConvertible for Foundation.Data to resolve a bug where it received conformance from Collection (!50)

RedisNIO 1.0.0 Alpha 1.1.1

11 Jul 21:33
Compare
Choose a tag to compare
Pre-release

Patch

  • Fix warning from default in switch (788f69de)

RedisNIO 1.0.0 Alpha 1.1

11 Jul 21:28
Compare
Choose a tag to compare
Pre-release

Minor

  • Improve debugging of RESPValue (d4584924)

RedisNIO 1.0.0 Alpha 1

11 Jul 21:27
Compare
Choose a tag to compare

RedisNIO 0.10.0

11 Jul 21:22
Compare
Choose a tag to compare
RedisNIO 0.10.0 Pre-release
Pre-release

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 to swift-redis-nio-client !47

RedisNIO 0.9.0: Renaming

06 Jun 17:06
a765914
Compare
Choose a tag to compare
Pre-release

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 to swift-redis-nio-client
  • Renamed the package from nio-redis to redis-nio
  • Renamed the NIORedis module to RedisNIO
  • Renamed NIORedisError to RedisNIOError
  • Changed references to NIORedis to RedisNIO 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

06 Jun 16:46
7ae2024
Compare
Choose a tag to compare
Pre-release

Major

  • Added SwiftMetrics dependency (#41)
  • Changed ChannelPipeline registration of handlers for RedisConnection to now have a reliable name (d0da3e7)

Minor

  • Added bzpopmin and bzpopmax convenience methods for sorted sets (#42)
  • Added brpop, blpop, and brpoplpush convenience methods for lists (#43)

Patch

  • Update legal notices for SwiftLog & SwiftMetrics (b0d0882)
  • Fixed minor comment issues (d9d61ba)

NIORedis 0.7.0: The Proposal

02 May 02:29
Compare
Choose a tag to compare
Pre-release

Breaking Changes

  • Static factory methods for building a default Redis Channel pipeline and RedisConnection have been moved to a new Redis 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 types
    • RESPDecoder has been renamed to RedisByteDecoder and is just a ByteToMessageDecoder
    • RESPEncoder has been renamed to RedisMessageEncoder and is just a MessageToByteEncoder
  • Error handling is now more straight forward (#37)
    • RedisError is to represent only errors returned by Redis itself in command responses
    • NIORedisError represents errors thrown within the library
    • RESPTranslator.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 to ByteBuffers rather than Data (#34)
  • Foundation.Data is no longer RESPValueConvertible (#30)

Additions

  • RedisConnection now has a property sendCommandsImmediately 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.
  • 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 version 1.0.0
  • RESPTranslator now uses ByteBufferViews and ByteBufferSlices internally, so there should be a performance increase (#34)