Skip to content

Releases: valkey-io/valkey-swift

v1.3.2

28 Apr 21:50
770f6de

Choose a tag to compare

Patch release changes

  • Add missing @available attributes we removed by mistake in v1.3.1. #387

Other changes

  • Update documentation to use code snippets throughout. #385

v1.3.1

28 Apr 09:22
8d186a8

Choose a tag to compare

Patch release changes

  • Split MGET and MSET commands that cross multiple hash keys in cluster client. #369, #378
  • Merge in latest connection pool changes from PostgresNIO, including continuation leak fix from @ltetzlaff. #382

Other changes

  • Update GitHub action soundness.yml to version 0.0.11. #375

v1.3.0

17 Apr 09:32
05fee0e

Choose a tag to compare

Minor release changes

  • Improve hash command APIs when editing fields. #376

Patch release changes

  • TLS port selection for cluster nodes is based on client configuration and not what is available. #370
  • Clean up error reporting in ValkeyCLI. #371

Other changes

  • Added documentation for migrating from RediStack. #374 from @heckj

v1.2.0

02 Apr 13:59
c355756

Choose a tag to compare

BREAKING CHANGES!!

  • The ValkeySearch module changed its reported interface considerably in valkey-search 1.2.0. This meant it was too hard to remove all the breaking changes from the generated source files. This should be a one off event and won't occur again. Sorry

Other changes

  • Added Swift 6.3 to CI

v1.1.0

20 Mar 07:44

Choose a tag to compare

Minor release changes

  • Add support for retrying pipelined commands on failure in ValkeyClient. #353
  • Add graceful shutdown support to ValkeyClusterClient. #362
  • Add a regular topology refresh to ValkeyClient. #361
  • During topology refresh verify replicas are replicas. #366
  • Add Valkey command line tool written using valkey-swift. #368

Patch release changes

  • Convert TimerFiredAction returned from ValkeyClusterClientStateMachine to enum. #352
  • Added ValkeyClusterTopology to describe cluster topology. #351
  • Replace invalid precondition in PoolStateMachine.connectionIdleTimerTriggered with a reschedule idle timer. #356
  • Remove invalid precondition in PoolStateMachine.connectionKeepAliveTimerTriggered
  • Add timers to ValkeyClient. #360
  • Add generic parameter topology type to ValkeyTopologyElection. #364
  • Include dependency swift-configuration with no traits enabled. #365

Other changes

  • Documentation edits. #357 from @heckj
  • Cleanup ValkeyClient mock tests. #367

v1.0.0

24 Feb 09:42
8492225

Choose a tag to compare

🎉 This is the first major release of valkey-swift 🎉

Features

  • Client with persistent connection pool
  • Supports all the latest Valkey commands (v9.0.2)
  • Command pipelining
  • Subscriptions
    • Multiple subscriptions on a single connection
    • Client subscription connection management
  • Transactions
  • Standalone clients with replicas
    • Run readonly commands on replicas
    • Replica redirection to primary via CLIENT CAPA redirect errors
  • Client supporting cluster deployment
    • Automatic command routing
    • Connection pooling
    • Command redirection via MOVED, ASK errors
    • Regular cluster topology refresh
    • Run readonly commands on replicas

Breaking changes since 1.0.0-rc.1

  • Add ValkeyClientSubscription for client and cluster client subscriptions. #344
  • Update commands to Valkey v9.0.2, HRANDFIELD can return nil. #345
  • Remove default version of Commands.keysAffected. #347

Minor release changes since 1.0.0-rc.1

  • Enable upcoming feature ExistentialAny. #343
  • Fix Swift 6.3 compile crash. #348
  • Fix resource leak. Cancel timer tasks once one of them has finished. #349

v1.0.0 Release Candidate 1

19 Feb 09:47
87f5604

Choose a tag to compare

Pre-release

Minor release changes

  • Added support for CLIENT CAPA redirect in standalone mode (Pipelined commands not supported yet). #318, #324
  • Add custom response for INFO. #319
  • Add maxAttemtps to RetryConfiguration. #320
  • Add call site info to ValkeyClientError. #327
  • Add support for swift-configuration. #328 from @hamzahrmalik
  • Add ValkeyClusterClientConfiguration. #335

Patch release changes

  • Cluster: Fix shard failover logic. #329
  • Cluster: Retry command if underlying connection is closing/closed or connection pool is shutdown. #336
  • Cluster: Don't add failed connections to connection pool array. #339, #341
  • Cluster: Pre-emptively added connection pools when we receive a MOVED error. #341
  • Correctly destroy a backing off connection. #337

Other changes

  • Add MockServerConnections to mock multiple Valkey servers. Add tests for standalone with replicas, and cluster. #331

v1.0.0 Alpha 1

27 Jan 08:15
9815255

Choose a tag to compare

v1.0.0 Alpha 1 Pre-release
Pre-release

Major release changes

  • Added option to ValkeyClient to use replicas for read only commands. PR #287, #289
  • Added custom responses for
    • CLUSTER NODES PR #290
    • XINFO GROUPS, XINFO CONSUMERS, XINFO STREAM` PR #293
    • WAITAOF PR #296
    • GEOSEARCH, GEORADIUS, GEORADIUSRO, GEORADIUSBYMEMBER, GEORADIUSBYMEMBERRO PR #291
    • TIME, MODULE LIST, COMMAND GETKEYSANDFLAGS PR #297
    • PUBSUB NUMSUB, PUBSUB SHARDNUMSUB PR #298
    • ACL GETUSER PR #303
    • MEMORY STATS PR #302
    • CLIENT TRACKINGINFO PR #300
    • ZRANDMEMBER PR #307
    • CLIENT LIST PR #313
  • Add typed throw (RESPDecodeError) to RESPTokenDecodable.init. PR #311
  • Add typed throw (ValkeyClientError) to single command ValkeyClientProtocol.execute(). PR #311
  • Add typed throw (ValkeyClientError) to subscription and generated commands. PR #312
  • Pipeline and transaction functions return [RESPToken: ValkeyClientError]. PR #314
  • Removed commands referencing slave, there are alternatives using the word replica. PR #292
  • Make XCLAIM and XPENDING response structs. PR #308
  • Make ValkeyClusterNode.Flag a struct so it can be extended in the future. PR #305
  • Remove public from custom response initialisers that don't take a RESPToken parameter. PR #310

Minor release changes

  • Add ValkeySearch commands. PR #263 from @eric-musliner
  • Add RESPBulkString.span to return a Span<UInt8>. PR #288

Patch release changes

  • Add tracing spans for pipelined commands and transactions. PR #284
  • Call READONLY always on cluster nodes, regardless of whether they are primary or replica. PR #317
  • Use RESPToken.decodeMapValues in cluster command response decoding. PR #294

Other changes

  • Command generator can override the response name for custom response types. PR #306

v0.5.0

20 Dec 15:02
e4bbdd1

Choose a tag to compare

v0.5.0 Pre-release
Pre-release

Major release changes

  • Add RESPBulkString to represent bulk string types. #271, #276
  • Remove fromRESP parameter label from RESPTokenDecodable.init(_:). #275

Minor release changes

  • Add ValkeyConnection.triggerGracefulShutdown. #207
  • Add support for setting up READONLY replicas. #255
  • Add support for numbered databases. #259 from @nilanshu-sharma
  • Readonly replica selection for clusters. #253
  • Add custom response type for cluster commands. #260 from @nilanshu-sharma
  • Add custom response type for HRANDFIELD. #262 from @nilanshu-sharma
  • Require swift-nio-transport-services 1.26.0. #264
  • Add support for command array parameters that render with a token for each element. #269
  • Rewrite LCS response type. #267
  • Replace ValkeyClusterParseError with RESPDecodeError. #265
  • Add RESPDecodeError typed throws where we can. #266
  • Adopt NonIsolatedNonSendingByDefault. #272 from @fabianfett
  • Conform ValkeyClusterClient to Service from swift-service-lifecycle. #282
  • Replace ValkeyClusterError.clientRequestCancelled with ValkeyClientError.cancelled. #283
  • Catch ConnectionPoolError and replace with equivalent ValkeyClientError. #283
  • ConnectionPool changes including
    • Tidy up triggerForceShutdown to ensure pool cleans up after itself
    • Add circuit breaker for when connection requests keep failing
    • Add limit to how many connection requests we can have at any time

Patch release changes

  • Cache static tracing parameters at startup. #278

Other changes

v0.4.0

18 Oct 16:03
f065fc2

Choose a tag to compare

v0.4.0 Pre-release
Pre-release

Breaking changes

  • Add protocol requirement ValkeyClientProtocol.execute(_:). #235
  • Add subscribe functions to ValkeyClientProtocol along with requirement ValkeyClientProtocol.subscribe(command:isolation:process:). #237
  • Remove Array.decode(as:).
  • Add custom Response types for SCAN, HSCAN, ZSCAN, BLPOP, BRPOP. #244 from @natanrolnik , #247
  • Add custom Response types for script and function commands. #216
  • Rewrite transaction code to make it easier to share among clients and add to ValkeyClient, ValkeyClusterClient and add protocol requirementValkeyClientProtocol.transaction(_:). #232, #249

Minor release changes

  • Throw ValkeyDecodeError when decoding RESPToken's instead of RESPParsingError. #233
  • Add RESPToken.Array.decodeAsKeyValuePairs(as:).

Patch release changes

  • Add upcoming feature ExistentialAny and fix issues: #240
  • Add upcoming feature MemberImportVisibility and fix issues. #241
  • Re-organize pipeline execute to share common functionality. #239
  • Add associated type NodeDescription to protocol ValkeyNodeConnectionPoolFactory. #230
  • Fix compiler crash on macOS open source toolchains. #251 from @NeedleInAJayStack

Documentation changes

  • Fix minor typo in README. #242 from @natanrolnik
  • Add article on decoding RESPTokens to docc documentation. #245