Skip to content

RediStack 1.0.0 Alpha 5

Pre-release
Pre-release
Compare
Choose a tag to compare
@Mordil Mordil released this 11 Jul 21:44
· 191 commits to master since this release

API Docs are always available at docs.redistack.info

Major

  • The library module was renamed from RedisNIO to RediStack !73
  • RedisNIOError was renamed to RedisClientError !72
    • .responseConversion(to:) was renamed to .failedRESPConversion(to:)
    • .unsupportedOperation(method:message:) was removed
  • RedisCommandHandler is no longer open (now public final) !55
  • RedisCommandContext was renamed to RedisCommand !66
  • RedisCommand.command was renamed to message and the initializer signature updated to match its properties (2605763)
  • RedisCommandHandler.init(logger:) is now .init(initialQueueCapacity:logger:) !66
  • The names for the ChannelPipeline handlers are now explicitly named !66
    • RediStack.OutgoingHandler
    • RediStack.IncomingHandler
    • RediStack.CommandHandler
  • The Redis namespace enum was removed !71
    • The makeConnection factory method was moved to RedisConnection.connect
      • This method now requires a NIO.EventLoop instance, no longer creating a MultiThreadedEventLoopGroup for you
      • This method also now supports overriding the default NIO.ClientBootstrap and is the preferred way of building your own pipelines
  • RedisConnection.init is now internal, all connections are made with RedisConnection.connect !71
  • A few different logs have had their severity adjusted
    • Sending a command while the connection is closed is now a warning !71
  • Sorted Set methods zadd, zunionstore, and zinterstore, have stronger type safety with options defined as enums !70 and (0ecb3c1)
  • RESPValueConvertible is no longer used as an existential !69
    • This also changes RedisConnection.send(command:with:) to require the RESPValue arguments up front, rather than doing the conversion for you
  • RESPValue and RESPValueConvertible had many internal implementations changed !67
    • RESPValue.array no longer uses ContiguousArray
    • ContiguousArray is no longer RESPValueConvertible
    • several of the computed properties on RESPValue will no longer behave exactly the same, or have moved to the new RediStackTestUtils module
  • Redis.makeDefaultClientBootstrap(using:) was renamed and moved to ClientBootstrap.makeRedisTCPClient(group:) !64
    • The implementation for adding the "default" RESP handlers is now publicly available with Channel.addBaseRedisHandlers()
  • RESPTranslator saw a major refactor !63
    • It is now a struct instead of an enum
    • ByteBuffer.writeRESPValue(_:) is a new method carrying most of the implementation for writing out RESPValue
    • RESPTranslator.ParsingResult was removed
    • RESPTranslator now updates the passed in ByteBuffer.readerIndex on successful parses
    • RESPTranslator.parseBytes(from:) uses the passed in ByteBuffer entirely for position and recursion
  • RESPValueConvertible.init(_:) was renamed to .init(fromRESP:) !56

Minor

  • A new module RediStackTestUtils is available for some helpers with writing tests for RediStack !67

Patch

  • The observable behavior of closing a channel should be more straight forward and dependable !71