├── .editorconfig ├── .github ├── copilot-instructions.md └── workflows │ ├── documentation-coverage.yaml │ ├── documentation.yaml │ ├── rubocop.yaml │ ├── test-cluster.yaml │ ├── test-coverage.yaml │ ├── test-sentinel.yaml │ ├── test-valkey.yaml │ └── test.yaml ├── .gitignore ├── .mailmap ├── .rubocop.yml ├── async-redis.gemspec ├── bake.rb ├── benchmark └── performance.rb ├── cluster ├── docker-compose.yaml ├── node-a │ └── cluster.conf ├── node-b │ └── cluster.conf ├── node-c │ └── cluster.conf ├── readme.md └── test │ └── async │ └── redis │ ├── cluster_client.rb │ └── context │ └── subscription.rb ├── config └── sus.rb ├── context ├── client-architecture.md ├── data-structures.md ├── getting-started.md ├── index.yaml ├── scripting.md ├── streams.md ├── subscriptions.md └── transactions-and-pipelines.md ├── examples ├── auth │ ├── protocol.rb │ └── wrapper.rb ├── redis │ ├── pop.rb │ └── pres │ │ └── pop.rb ├── slow-log │ ├── analysis.rb │ └── queues.rb └── subscribe │ └── pubsub.rb ├── fixtures └── client_context.rb ├── gems.rb ├── guides ├── client-architecture │ └── readme.md ├── data-structures │ └── readme.md ├── getting-started │ └── readme.md ├── links.yaml ├── scripting │ └── readme.md ├── streams │ └── readme.md ├── subscriptions │ └── readme.md └── transactions-and-pipelines │ └── readme.md ├── lib └── async │ ├── redis.rb │ └── redis │ ├── client.rb │ ├── cluster_client.rb │ ├── cluster_subscription.rb │ ├── context │ ├── generic.rb │ ├── pipeline.rb │ ├── subscription.rb │ └── transaction.rb │ ├── endpoint.rb │ ├── key.rb │ ├── protocol │ ├── authenticated.rb │ ├── resp2.rb │ └── selected.rb │ ├── range_map.rb │ ├── sentinel_client.rb │ └── version.rb ├── license.md ├── readme.md ├── release.cert ├── releases.md ├── sentinel ├── docker-compose.yaml ├── readme.md ├── sentinel.conf └── test │ └── async │ └── redis │ └── sentinel_client.rb └── test └── async └── redis ├── client.rb ├── cluster_client.rb ├── context ├── pipeline.rb ├── subscription.rb └── transaction.rb ├── disconnect.rb ├── endpoint.rb ├── methods ├── generic.rb ├── hashes.rb ├── lists.rb └── strings.rb ├── protocol ├── authenticated.rb └── selected.rb └── sentinel_client.rb /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/.editorconfig -------------------------------------------------------------------------------- /.github/copilot-instructions.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/.github/copilot-instructions.md -------------------------------------------------------------------------------- /.github/workflows/documentation-coverage.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/.github/workflows/documentation-coverage.yaml -------------------------------------------------------------------------------- /.github/workflows/documentation.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/.github/workflows/documentation.yaml -------------------------------------------------------------------------------- /.github/workflows/rubocop.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/.github/workflows/rubocop.yaml -------------------------------------------------------------------------------- /.github/workflows/test-cluster.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/.github/workflows/test-cluster.yaml -------------------------------------------------------------------------------- /.github/workflows/test-coverage.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/.github/workflows/test-coverage.yaml -------------------------------------------------------------------------------- /.github/workflows/test-sentinel.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/.github/workflows/test-sentinel.yaml -------------------------------------------------------------------------------- /.github/workflows/test-valkey.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/.github/workflows/test-valkey.yaml -------------------------------------------------------------------------------- /.github/workflows/test.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/.github/workflows/test.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/.gitignore -------------------------------------------------------------------------------- /.mailmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/.mailmap -------------------------------------------------------------------------------- /.rubocop.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/.rubocop.yml -------------------------------------------------------------------------------- /async-redis.gemspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/async-redis.gemspec -------------------------------------------------------------------------------- /bake.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/bake.rb -------------------------------------------------------------------------------- /benchmark/performance.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/benchmark/performance.rb -------------------------------------------------------------------------------- /cluster/docker-compose.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/cluster/docker-compose.yaml -------------------------------------------------------------------------------- /cluster/node-a/cluster.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/cluster/node-a/cluster.conf -------------------------------------------------------------------------------- /cluster/node-b/cluster.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/cluster/node-b/cluster.conf -------------------------------------------------------------------------------- /cluster/node-c/cluster.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/cluster/node-c/cluster.conf -------------------------------------------------------------------------------- /cluster/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/cluster/readme.md -------------------------------------------------------------------------------- /cluster/test/async/redis/cluster_client.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/cluster/test/async/redis/cluster_client.rb -------------------------------------------------------------------------------- /cluster/test/async/redis/context/subscription.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/cluster/test/async/redis/context/subscription.rb -------------------------------------------------------------------------------- /config/sus.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/config/sus.rb -------------------------------------------------------------------------------- /context/client-architecture.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/context/client-architecture.md -------------------------------------------------------------------------------- /context/data-structures.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/context/data-structures.md -------------------------------------------------------------------------------- /context/getting-started.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/context/getting-started.md -------------------------------------------------------------------------------- /context/index.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/context/index.yaml -------------------------------------------------------------------------------- /context/scripting.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/context/scripting.md -------------------------------------------------------------------------------- /context/streams.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/context/streams.md -------------------------------------------------------------------------------- /context/subscriptions.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/context/subscriptions.md -------------------------------------------------------------------------------- /context/transactions-and-pipelines.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/context/transactions-and-pipelines.md -------------------------------------------------------------------------------- /examples/auth/protocol.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/examples/auth/protocol.rb -------------------------------------------------------------------------------- /examples/auth/wrapper.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/examples/auth/wrapper.rb -------------------------------------------------------------------------------- /examples/redis/pop.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/examples/redis/pop.rb -------------------------------------------------------------------------------- /examples/redis/pres/pop.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/examples/redis/pres/pop.rb -------------------------------------------------------------------------------- /examples/slow-log/analysis.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/examples/slow-log/analysis.rb -------------------------------------------------------------------------------- /examples/slow-log/queues.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/examples/slow-log/queues.rb -------------------------------------------------------------------------------- /examples/subscribe/pubsub.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/examples/subscribe/pubsub.rb -------------------------------------------------------------------------------- /fixtures/client_context.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/fixtures/client_context.rb -------------------------------------------------------------------------------- /gems.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/gems.rb -------------------------------------------------------------------------------- /guides/client-architecture/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/guides/client-architecture/readme.md -------------------------------------------------------------------------------- /guides/data-structures/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/guides/data-structures/readme.md -------------------------------------------------------------------------------- /guides/getting-started/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/guides/getting-started/readme.md -------------------------------------------------------------------------------- /guides/links.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/guides/links.yaml -------------------------------------------------------------------------------- /guides/scripting/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/guides/scripting/readme.md -------------------------------------------------------------------------------- /guides/streams/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/guides/streams/readme.md -------------------------------------------------------------------------------- /guides/subscriptions/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/guides/subscriptions/readme.md -------------------------------------------------------------------------------- /guides/transactions-and-pipelines/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/guides/transactions-and-pipelines/readme.md -------------------------------------------------------------------------------- /lib/async/redis.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/lib/async/redis.rb -------------------------------------------------------------------------------- /lib/async/redis/client.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/lib/async/redis/client.rb -------------------------------------------------------------------------------- /lib/async/redis/cluster_client.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/lib/async/redis/cluster_client.rb -------------------------------------------------------------------------------- /lib/async/redis/cluster_subscription.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/lib/async/redis/cluster_subscription.rb -------------------------------------------------------------------------------- /lib/async/redis/context/generic.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/lib/async/redis/context/generic.rb -------------------------------------------------------------------------------- /lib/async/redis/context/pipeline.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/lib/async/redis/context/pipeline.rb -------------------------------------------------------------------------------- /lib/async/redis/context/subscription.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/lib/async/redis/context/subscription.rb -------------------------------------------------------------------------------- /lib/async/redis/context/transaction.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/lib/async/redis/context/transaction.rb -------------------------------------------------------------------------------- /lib/async/redis/endpoint.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/lib/async/redis/endpoint.rb -------------------------------------------------------------------------------- /lib/async/redis/key.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/lib/async/redis/key.rb -------------------------------------------------------------------------------- /lib/async/redis/protocol/authenticated.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/lib/async/redis/protocol/authenticated.rb -------------------------------------------------------------------------------- /lib/async/redis/protocol/resp2.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/lib/async/redis/protocol/resp2.rb -------------------------------------------------------------------------------- /lib/async/redis/protocol/selected.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/lib/async/redis/protocol/selected.rb -------------------------------------------------------------------------------- /lib/async/redis/range_map.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/lib/async/redis/range_map.rb -------------------------------------------------------------------------------- /lib/async/redis/sentinel_client.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/lib/async/redis/sentinel_client.rb -------------------------------------------------------------------------------- /lib/async/redis/version.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/lib/async/redis/version.rb -------------------------------------------------------------------------------- /license.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/license.md -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/readme.md -------------------------------------------------------------------------------- /release.cert: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/release.cert -------------------------------------------------------------------------------- /releases.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/releases.md -------------------------------------------------------------------------------- /sentinel/docker-compose.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/sentinel/docker-compose.yaml -------------------------------------------------------------------------------- /sentinel/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/sentinel/readme.md -------------------------------------------------------------------------------- /sentinel/sentinel.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/sentinel/sentinel.conf -------------------------------------------------------------------------------- /sentinel/test/async/redis/sentinel_client.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/sentinel/test/async/redis/sentinel_client.rb -------------------------------------------------------------------------------- /test/async/redis/client.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/test/async/redis/client.rb -------------------------------------------------------------------------------- /test/async/redis/cluster_client.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/test/async/redis/cluster_client.rb -------------------------------------------------------------------------------- /test/async/redis/context/pipeline.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/test/async/redis/context/pipeline.rb -------------------------------------------------------------------------------- /test/async/redis/context/subscription.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/test/async/redis/context/subscription.rb -------------------------------------------------------------------------------- /test/async/redis/context/transaction.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/test/async/redis/context/transaction.rb -------------------------------------------------------------------------------- /test/async/redis/disconnect.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/test/async/redis/disconnect.rb -------------------------------------------------------------------------------- /test/async/redis/endpoint.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/test/async/redis/endpoint.rb -------------------------------------------------------------------------------- /test/async/redis/methods/generic.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/test/async/redis/methods/generic.rb -------------------------------------------------------------------------------- /test/async/redis/methods/hashes.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/test/async/redis/methods/hashes.rb -------------------------------------------------------------------------------- /test/async/redis/methods/lists.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/test/async/redis/methods/lists.rb -------------------------------------------------------------------------------- /test/async/redis/methods/strings.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/test/async/redis/methods/strings.rb -------------------------------------------------------------------------------- /test/async/redis/protocol/authenticated.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/test/async/redis/protocol/authenticated.rb -------------------------------------------------------------------------------- /test/async/redis/protocol/selected.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/test/async/redis/protocol/selected.rb -------------------------------------------------------------------------------- /test/async/redis/sentinel_client.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/socketry/async-redis/HEAD/test/async/redis/sentinel_client.rb --------------------------------------------------------------------------------