1. 26 Dec, 2022 1 commit
    • Nathan Harris's avatar
      Lay groundwork for RESP3 support and flat ChannelHandler hierarchy · aa185a01
      Nathan Harris authored
      ## Motivation
      
      Since Redis 6.0, a new serialization protocol format (v3) is available that gives richer semantic reasoning behind the different types to enable commands to better understand the return types to provide in their programming language.
      
      In addition, the `RESPTranslator` type is going to see more direct usage, and the current API doesn't make read well.
      
      ## Changes
      
      - Add: Internal `RESPVersion` enum that the `RESPTranslator` will start to use
      - Rename: `RESPTranslator.parseBytes` to `RESPTranslator.read(from:)`
      aa185a01
  2. 13 Dec, 2022 2 commits
  3. 07 Dec, 2022 2 commits
  4. 01 Dec, 2022 2 commits
  5. 30 Nov, 2022 3 commits
    • Fabian Fett's avatar
    • Fabian Fett's avatar
      Explicitly depend on Atomics · f6cb83ca
      Fabian Fett authored and Nathan Harris's avatar Nathan Harris committed
      f6cb83ca
    • Nathan Harris's avatar
      Unify PubSub Handler Signature · 00eb9b5e
      Nathan Harris authored
      Motivation
      
      Right now the PubSub handlers are split into three separate closures, with the subscribe/unsubscribe handlers being optional. This won't play well with AsyncStream for being able to respond to all events that a PubSub subscription can cause.
      
      Additionally, the current structure is very verbose in code to maintain - but also adds complexity to developers who are first getting started to understand the lifecycle of PubSub events.
      
      Changes
      
      - Add: New `RedisPubSubEvent` enum that captures the subscribe, unsubscribe, and message lifecycle events
      - Add: New `RedisPubSubEventReceiver` that combines the previous 3 closure types
      - Add: Dedicated DocC Symbol Extension file for `RedisPubSubHandler`
      - Change: `RedisClient.subscribe` and `RedisClient.psubscribe` method signatures to only require a single unlabeled closure
      - Rename: `RedisUnsubscribeEventSource` to `RedisPubSubEvent.UnsubscribeEventSource`
      - Remove: `RedisSubscriptionMessageReceiver`, `RedisSubscriptionChangeDetails`, `RedisSubscribeHandler`, and `RedisUnsubscribeHandler` types
      
      Result
      
      Developers should have a much easier time getting started and understanding PubSub with assistance from the compiler with types to understand
      what they're being given and what's available to them as information to make more informed decisions in their app logic.
      00eb9b5e
  6. 17 Nov, 2022 1 commit
  7. 25 Sep, 2022 1 commit
    • Nathan Harris's avatar
      Add Code Coverage reports in Merge Requests · 922c4f4b
      Nathan Harris authored
      Motivation:
      
      To maintain quality, automated code coverage reports should be generated and archived as build artifacts in CI pipelines.
      
      Modifications:
      
      Update CI config to run a job for running unit tests with code coverage, and exporting the report to GitLab.
      
      Result:
      
      Code coverage will be tracked and history recorded to compare individual code changes.
      922c4f4b
  8. 21 Aug, 2022 1 commit
  9. 15 Aug, 2022 4 commits
  10. 14 Aug, 2022 1 commit
  11. 13 Aug, 2022 1 commit
  12. 25 Apr, 2022 2 commits
    • Nathan Harris's avatar
    • Nathan Harris's avatar
      Significantly Improve the Configuration API for Pools and Connections · 820820d8
      Nathan Harris authored
      ## Motivation
      
      The API for establishing the configuration of a connection pool had a lot of jargon and properties that developers had issues keeping straight and understanding what each does.
      
      This commit provides first-class API support for concepts such as retry strategies, and how the pool handles connection counts.
      
      ## Changes
      
      - Add: New ConnectionCountBehavior for determining leaky / non-leaky behavior
      - Add: New ConnectionRetryStrategy for allowing customization of retry behavior
      - Change: RedisConnection.defaultPort to be a computed property
      - Change: The logging keys of pool connection retry metadata
      - Rename: Several configuration properties to drop prefixes or to be combined into new structures
      
      ## Result
      
      Developers should have a much better experience exploring the available configuration options for pools and connections, being able to understand how each piece works with the underlying system.
      820820d8
  13. 24 Apr, 2022 2 commits
  14. 20 Apr, 2022 1 commit
  15. 04 Apr, 2022 1 commit
    • Nathan Harris's avatar
      92 -- Accept event loop and logger in RedisClient commands · 9da5773e
      Nathan Harris authored
      There are many times that developers want exact control over which EventLoop will be executing their chained EventLoopFuture callbacks
      and which Logger will do the logging in calls deep within RediStack.
      
      All commands will now accept an optional EventLoop and Logger to hop to, and using the logger for desired logs.
      9da5773e
  16. 16 Mar, 2022 7 commits
  17. 15 Mar, 2022 1 commit
  18. 21 Feb, 2022 1 commit
  19. 08 Nov, 2021 1 commit
  20. 03 Nov, 2021 4 commits
  21. 17 Aug, 2021 1 commit