async-redis 0.11.0 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/async/redis/cluster_client.rb +5 -3
- data/lib/async/redis/context/generic.rb +1 -1
- data/lib/async/redis/context/transaction.rb +1 -1
- data/lib/async/redis/version.rb +1 -1
- data/license.md +2 -1
- data/readme.md +18 -0
- data/{changes.md → releases.md} +12 -6
- data.tar.gz.sig +0 -0
- metadata +5 -9
- metadata.gz.sig +0 -0
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 1a6afd9e0917905a3ac88663aab6185431af4f90230a160439131b137611a072
         | 
| 4 | 
            +
              data.tar.gz: 503e41aea7adc5f2f103d442db5be4c37f9299c9fb9bbba33b040f8200237511
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 459502e1c7c5cfbb6250a4460f1dfa4b5e0cd2386e056f77696883521274d3ad0b6c25cd5a1e6ee3db393d18703782c643c1fe6b39e4cf22292cd26417b6af9b
         | 
| 7 | 
            +
              data.tar.gz: 3119cf4d3b60ed724b68ed9fa2fc9dee2729a27657ebf1460453d236426d8e1c19f3f1717c5d0266fb85a9c7f821ca1e74f3e1e2321750b71805ecbefe084387
         | 
    
        checksums.yaml.gz.sig
    CHANGED
    
    | Binary file | 
| @@ -1,7 +1,8 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 |  | 
| 3 3 | 
             
            # Released under the MIT License.
         | 
| 4 | 
            -
            # Copyright, 2024, by Samuel Williams.
         | 
| 4 | 
            +
            # Copyright, 2024-2025, by Samuel Williams.
         | 
| 5 | 
            +
            # Copyright, 2025, by Travis Bell.
         | 
| 5 6 |  | 
| 6 7 | 
             
            require_relative "client"
         | 
| 7 8 | 
             
            require "io/stream"
         | 
| @@ -56,6 +57,7 @@ module Async | |
| 56 57 | 
             
            			# @property endpoints [Array(Endpoint)] The list of cluster endpoints.
         | 
| 57 58 | 
             
            			def initialize(endpoints, **options)
         | 
| 58 59 | 
             
            				@endpoints = endpoints
         | 
| 60 | 
            +
            				@options = options
         | 
| 59 61 | 
             
            				@shards = nil
         | 
| 60 62 | 
             
            			end
         | 
| 61 63 |  | 
| @@ -93,7 +95,7 @@ module Async | |
| 93 95 | 
             
            				end
         | 
| 94 96 |  | 
| 95 97 | 
             
            				if node = nodes.sample
         | 
| 96 | 
            -
            					return (node.client ||= Client.new(node.endpoint))
         | 
| 98 | 
            +
            					return (node.client ||= Client.new(node.endpoint, **@options))
         | 
| 97 99 | 
             
            				end
         | 
| 98 100 | 
             
            			end
         | 
| 99 101 |  | 
| @@ -101,7 +103,7 @@ module Async | |
| 101 103 |  | 
| 102 104 | 
             
            			def reload_cluster!(endpoints = @endpoints)
         | 
| 103 105 | 
             
            				@endpoints.each do |endpoint|
         | 
| 104 | 
            -
            					client = Client.new(endpoint)
         | 
| 106 | 
            +
            					client = Client.new(endpoint, **@options)
         | 
| 105 107 |  | 
| 106 108 | 
             
            					shards = RangeMap.new
         | 
| 107 109 | 
             
            					endpoints = []
         | 
    
        data/lib/async/redis/version.rb
    CHANGED
    
    
    
        data/license.md
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            # MIT License
         | 
| 2 2 |  | 
| 3 | 
            -
            Copyright, 2018- | 
| 3 | 
            +
            Copyright, 2018-2025, by Samuel Williams.  
         | 
| 4 4 | 
             
            Copyright, 2018, by Huba Nagy.  
         | 
| 5 5 | 
             
            Copyright, 2019-2020, by David Ortiz.  
         | 
| 6 6 | 
             
            Copyright, 2019, by Pierre Montelle.  
         | 
| @@ -13,6 +13,7 @@ Copyright, 2021, by Troex Nevelin. | |
| 13 13 | 
             
            Copyright, 2022, by Tim Willard.  
         | 
| 14 14 | 
             
            Copyright, 2022, by Gleb Sinyavskiy.  
         | 
| 15 15 | 
             
            Copyright, 2024, by Joan Lledó.  
         | 
| 16 | 
            +
            Copyright, 2025, by Travis Bell.  
         | 
| 16 17 |  | 
| 17 18 | 
             
            Permission is hereby granted, free of charge, to any person obtaining a copy
         | 
| 18 19 | 
             
            of this software and associated documentation files (the "Software"), to deal
         | 
    
        data/readme.md
    CHANGED
    
    | @@ -4,12 +4,30 @@ An asynchronous client for Redis including TLS. Support for streaming requests a | |
| 4 4 |  | 
| 5 5 | 
             
            [](https://github.com/socketry/async-redis/actions?workflow=Test)
         | 
| 6 6 |  | 
| 7 | 
            +
            ## Support
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            This gem supports both Valkey and Redis. It is designed to be compatible with the latest versions of both libraries. We also test Redis sentinel and cluster configurations.
         | 
| 10 | 
            +
             | 
| 7 11 | 
             
            ## Usage
         | 
| 8 12 |  | 
| 9 13 | 
             
            Please see the [project documentation](https://socketry.github.io/async-redis/) for more details.
         | 
| 10 14 |  | 
| 11 15 | 
             
              - [Getting Started](https://socketry.github.io/async-redis/guides/getting-started/index) - This guide explains how to use the `async-redis` gem to connect to a Redis server and perform basic operations.
         | 
| 12 16 |  | 
| 17 | 
            +
            ## Releases
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            Please see the [project releases](https://socketry.github.io/async-redis/releases/index) for all releases.
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            ### v0.11.1
         | 
| 22 | 
            +
             | 
| 23 | 
            +
              - Correctly pass `@options` to `Async::Redis::Client` instances created by `Async::Redis::ClusterClient`.
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            ### v0.10.0
         | 
| 26 | 
            +
             | 
| 27 | 
            +
              - [Add support for Redis Clusters](https://socketry.github.io/async-redis/releases/index#add-support-for-redis-clusters)
         | 
| 28 | 
            +
              - [Add support for Redis Sentinels](https://socketry.github.io/async-redis/releases/index#add-support-for-redis-sentinels)
         | 
| 29 | 
            +
              - [Improved Integration Tests](https://socketry.github.io/async-redis/releases/index#improved-integration-tests)
         | 
| 30 | 
            +
             | 
| 13 31 | 
             
            ## Contributing
         | 
| 14 32 |  | 
| 15 33 | 
             
            We welcome contributions to this project.
         | 
    
        data/{changes.md → releases.md}
    RENAMED
    
    | @@ -1,10 +1,16 @@ | |
| 1 | 
            -
            #  | 
| 1 | 
            +
            # Releases
         | 
| 2 2 |  | 
| 3 | 
            -
            ##  | 
| 3 | 
            +
            ## v0.11.1
         | 
| 4 | 
            +
             | 
| 5 | 
            +
              - Correctly pass `@options` to `Async::Redis::Client` instances created by `Async::Redis::ClusterClient`.
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            ## v0.10.0
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            ### Add support for Redis Clusters
         | 
| 4 10 |  | 
| 5 11 | 
             
            `Async::Redis::ClusterClient` is a new class that provides a high-level interface to a Redis Cluster. Due to the way clustering works, it does not provide the same interface as the `Async::Redis::Client` class. Instead, you must request an appropriate client for the key you are working with.
         | 
| 6 12 |  | 
| 7 | 
            -
            ```ruby
         | 
| 13 | 
            +
            ``` ruby
         | 
| 8 14 | 
             
            endpoints = [
         | 
| 9 15 | 
             
            	Async::Redis::Endpoint.parse("redis://redis-a"),
         | 
| 10 16 | 
             
            	Async::Redis::Endpoint.parse("redis://redis-b"),
         | 
| @@ -18,11 +24,11 @@ cluster_client.clients_for("key") do |client| | |
| 18 24 | 
             
            end
         | 
| 19 25 | 
             
            ```
         | 
| 20 26 |  | 
| 21 | 
            -
             | 
| 27 | 
            +
            ### Add support for Redis Sentinels
         | 
| 22 28 |  | 
| 23 29 | 
             
            The previous implementation `Async::Redis::SentinelsClient` has been replaced with `Async::Redis::SentinelClient`. This new class uses `Async::Redis::Endpoint` objects to represent the sentinels and the master.
         | 
| 24 30 |  | 
| 25 | 
            -
            ```ruby
         | 
| 31 | 
            +
            ``` ruby
         | 
| 26 32 | 
             
            sentinels = [
         | 
| 27 33 | 
             
            	Async::Redis::Endpoint.parse("redis://redis-sentinel-a"),
         | 
| 28 34 | 
             
            	Async::Redis::Endpoint.parse("redis://redis-sentinel-b"),
         | 
| @@ -41,6 +47,6 @@ slave_client.session do |session| | |
| 41 47 | 
             
            end
         | 
| 42 48 | 
             
            ```
         | 
| 43 49 |  | 
| 44 | 
            -
             | 
| 50 | 
            +
            ### Improved Integration Tests
         | 
| 45 51 |  | 
| 46 52 | 
             
            Integration tests for Redis Cluster and Sentinel have been added, using `docker-compose` to start the required services and run the tests. These tests are not part of the default test suite and must be run separately. See the documentation in the `sentinel/` and `cluster/` directories for more information.
         | 
    
        data.tar.gz.sig
    CHANGED
    
    | Binary file | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: async-redis
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.11. | 
| 4 | 
            +
              version: 0.11.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Samuel Williams
         | 
| @@ -17,7 +17,7 @@ authors: | |
| 17 17 | 
             
            - Pierre Montelle
         | 
| 18 18 | 
             
            - Salim Semaoune
         | 
| 19 19 | 
             
            - Tim Willard
         | 
| 20 | 
            -
             | 
| 20 | 
            +
            - Travis Bell
         | 
| 21 21 | 
             
            bindir: bin
         | 
| 22 22 | 
             
            cert_chain:
         | 
| 23 23 | 
             
            - |
         | 
| @@ -49,7 +49,7 @@ cert_chain: | |
| 49 49 | 
             
              Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
         | 
| 50 50 | 
             
              voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
         | 
| 51 51 | 
             
              -----END CERTIFICATE-----
         | 
| 52 | 
            -
            date:  | 
| 52 | 
            +
            date: 2025-02-28 00:00:00.000000000 Z
         | 
| 53 53 | 
             
            dependencies:
         | 
| 54 54 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 55 55 | 
             
              name: async
         | 
| @@ -121,13 +121,10 @@ dependencies: | |
| 121 121 | 
             
                - - "~>"
         | 
| 122 122 | 
             
                  - !ruby/object:Gem::Version
         | 
| 123 123 | 
             
                    version: '0.9'
         | 
| 124 | 
            -
            description:
         | 
| 125 | 
            -
            email:
         | 
| 126 124 | 
             
            executables: []
         | 
| 127 125 | 
             
            extensions: []
         | 
| 128 126 | 
             
            extra_rdoc_files: []
         | 
| 129 127 | 
             
            files:
         | 
| 130 | 
            -
            - changes.md
         | 
| 131 128 | 
             
            - lib/async/redis.rb
         | 
| 132 129 | 
             
            - lib/async/redis/client.rb
         | 
| 133 130 | 
             
            - lib/async/redis/cluster_client.rb
         | 
| @@ -144,13 +141,13 @@ files: | |
| 144 141 | 
             
            - lib/async/redis/version.rb
         | 
| 145 142 | 
             
            - license.md
         | 
| 146 143 | 
             
            - readme.md
         | 
| 144 | 
            +
            - releases.md
         | 
| 147 145 | 
             
            homepage: https://github.com/socketry/async-redis
         | 
| 148 146 | 
             
            licenses:
         | 
| 149 147 | 
             
            - MIT
         | 
| 150 148 | 
             
            metadata:
         | 
| 151 149 | 
             
              documentation_uri: https://socketry.github.io/async-redis/
         | 
| 152 150 | 
             
              source_code_uri: https://github.com/socketry/async-redis.git
         | 
| 153 | 
            -
            post_install_message:
         | 
| 154 151 | 
             
            rdoc_options: []
         | 
| 155 152 | 
             
            require_paths:
         | 
| 156 153 | 
             
            - lib
         | 
| @@ -165,8 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 165 162 | 
             
                - !ruby/object:Gem::Version
         | 
| 166 163 | 
             
                  version: '0'
         | 
| 167 164 | 
             
            requirements: []
         | 
| 168 | 
            -
            rubygems_version: 3. | 
| 169 | 
            -
            signing_key:
         | 
| 165 | 
            +
            rubygems_version: 3.6.2
         | 
| 170 166 | 
             
            specification_version: 4
         | 
| 171 167 | 
             
            summary: A Redis client library.
         | 
| 172 168 | 
             
            test_files: []
         | 
    
        metadata.gz.sig
    CHANGED
    
    | Binary file |