valkey-glide 2.0.0rc5__tar.gz → 2.0.0rc6__tar.gz
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.
Potentially problematic release.
This version of valkey-glide might be problematic. Click here for more details.
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/.gitignore +1 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/Cargo.lock +3 -3
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/Cargo.toml +2 -2
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/DEVELOPER.md +15 -1
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/PKG-INFO +21 -4
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/README.md +19 -2
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/THIRD_PARTY_LICENSES_PYTHON +75 -29
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/dev.py +1 -1
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/dev_requirements.txt +2 -3
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/docs/conf.py +2 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/Cargo.toml +2 -2
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/THIRD_PARTY_LICENSES_RUST +1 -1
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/benches/connections_benchmark.rs +3 -3
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/benches/memory_benchmark.rs +1 -1
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/benches/rotating_buffer_benchmark.rs +3 -3
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/src/client/mod.rs +70 -5
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/src/client/reconnecting_connection.rs +3 -3
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/src/client/standalone_client.rs +4 -4
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/src/client/types.rs +1 -5
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/src/client/value_conversion.rs +93 -76
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/src/request_type.rs +1 -1
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/src/rotating_buffer.rs +2 -2
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/src/socket_listener.rs +86 -84
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/tests/test_client.rs +8 -6
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/tests/test_cluster_client.rs +3 -3
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/tests/test_socket_listener.rs +2 -2
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/tests/utilities/cluster.rs +2 -2
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/tests/utilities/mod.rs +2 -2
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/logger_core/Cargo.toml +1 -1
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/logger_core/src/lib.rs +5 -5
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/logger_core/tests/test_logger.rs +1 -1
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/telemetrylib/Cargo.toml +1 -1
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/pyproject.toml +3 -5
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/async_commands/batch.py +40 -24
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/async_commands/cluster_commands.py +7 -1
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/async_commands/core.py +25 -20
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/async_commands/standalone_commands.py +8 -1
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/glide_client.py +191 -85
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/routes.py +25 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/requirements.txt +1 -1
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/tests/conftest.py +78 -25
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/tests/test_api_export.py +2 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/tests/test_async_client.py +117 -92
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/tests/test_auth.py +9 -9
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/tests/test_batch.py +11 -3
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/tests/test_proto_coded.py +1 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/tests/test_pubsub.py +82 -69
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/tests/test_read_from_strategy.py +2 -2
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/tests/test_scan.py +6 -6
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/tests/test_utils.py +0 -1
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/tests/tests_server_modules/test_ft.py +2 -1
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/tests/tests_server_modules/test_json.py +2 -2
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/tests/utils/utils.py +2 -1
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/.cargo/config.toml +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/.flake8 +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/.ort.yml +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/Pipfile +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/docs/Makefile +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/docs/index.rst +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/docs/make.bat +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/.cargo/config.toml +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/.ort.yml +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/README.md +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/build.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/src/cluster_scan_container.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/src/errors.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/src/lib.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/src/protobuf/command_request.proto +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/src/protobuf/connection_request.proto +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/src/protobuf/response.proto +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/src/scripts_container.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/tests/test_standalone_client.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/tests/utilities/mocks.rs +1 -1
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/CHANGELOG.md +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/Cargo.toml +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/LICENSE +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/benches/bench_basic.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/benches/bench_cluster.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/benches/bench_cluster_async.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/examples/async-await.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/examples/async-connection-loss.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/examples/async-multiplexed.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/examples/async-pub-sub.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/examples/async-scan.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/examples/basic.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/examples/geospatial.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/examples/streams.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/release.toml +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/acl.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/aio/connection.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/aio/connection_manager.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/aio/mod.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/aio/multiplexed_connection.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/aio/runtime.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/aio/tokio.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/client.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/cluster.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/cluster_async/LICENSE +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/cluster_async/connections_container.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/cluster_async/connections_logic.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/cluster_async/mod.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/cluster_async/pipeline_routing.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/cluster_client.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/cluster_pipeline.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/cluster_routing.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/cluster_slotmap.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/cluster_topology.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/cmd.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/commands/cluster_scan.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/commands/json.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/commands/macros.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/commands/mod.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/connection.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/geo.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/lib.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/macros.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/parser.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/pipeline.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/push_manager.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/r2d2.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/retry_strategies.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/script.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/sentinel.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/streams.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/tls.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/src/types.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/tests/auth.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/tests/parser.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/tests/support/cluster.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/tests/support/mock_cluster.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/tests/support/mod.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/tests/support/sentinel.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/tests/support/util.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/tests/test_acl.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/tests/test_async.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/tests/test_async_cluster_connections_logic.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/tests/test_basic.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/tests/test_bignum.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/tests/test_cluster.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/tests/test_cluster_async.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/tests/test_cluster_scan.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/tests/test_geospatial.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/tests/test_module_json.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/tests/test_pipeline.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/tests/test_sentinel.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/tests/test_streams.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/redis/tests/test_types.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/telemetrylib/src/lib.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/telemetrylib/src/open_telemetry.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/telemetrylib/src/open_telemetry_exporter_file.rs +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/pytest.ini +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/__init__.py +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/async_commands/__init__.py +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/async_commands/bitmap.py +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/async_commands/command_args.py +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/async_commands/server_modules/ft.py +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/async_commands/server_modules/ft_options/ft_aggregate_options.py +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/async_commands/server_modules/ft_options/ft_constants.py +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/async_commands/server_modules/ft_options/ft_create_options.py +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/async_commands/server_modules/ft_options/ft_profile_options.py +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/async_commands/server_modules/ft_options/ft_search_options.py +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/async_commands/server_modules/glide_json.py +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/async_commands/server_modules/json_batch.py +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/async_commands/sorted_set.py +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/async_commands/stream.py +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/config.py +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/constants.py +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/exceptions.py +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/glide.pyi +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/logger.py +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/protobuf_codec.py +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/python/glide/py.typed +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/src/lib.rs +3 -3
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/tests/__init__.py +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/tests/test_config.py +0 -0
- {valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/tests/utils/cluster.py +0 -0
|
@@ -168,9 +168,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
|
|
|
168
168
|
|
|
169
169
|
[[package]]
|
|
170
170
|
name = "bitflags"
|
|
171
|
-
version = "2.9.
|
|
171
|
+
version = "2.9.1"
|
|
172
172
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
173
|
-
checksum = "
|
|
173
|
+
checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967"
|
|
174
174
|
|
|
175
175
|
[[package]]
|
|
176
176
|
name = "bumpalo"
|
|
@@ -2366,7 +2366,7 @@ dependencies = [
|
|
|
2366
2366
|
|
|
2367
2367
|
[[package]]
|
|
2368
2368
|
name = "valkey-glide"
|
|
2369
|
-
version = "2.0.0-
|
|
2369
|
+
version = "2.0.0-rc6"
|
|
2370
2370
|
dependencies = [
|
|
2371
2371
|
"bytes",
|
|
2372
2372
|
"glide-core",
|
|
@@ -155,7 +155,17 @@ If needed, you can invoke `pytest` directly from the root `python/` directory fo
|
|
|
155
155
|
### Run all tests manually
|
|
156
156
|
```bash
|
|
157
157
|
source .env/bin/activate
|
|
158
|
-
pytest -v
|
|
158
|
+
pytest -v
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Running with different async backends
|
|
162
|
+
|
|
163
|
+
Python GLIDE supports both trio and asyncio. Pass the `--async-backend` flag to `pytest` with either `trio`, `asyncio` or `uvloop` to run tests on the specified async backend. You can pass multiple async backends to run tests on all of them.
|
|
164
|
+
|
|
165
|
+
Example:
|
|
166
|
+
```bash
|
|
167
|
+
source .env/bin/activate
|
|
168
|
+
pytest -v --async-backend=trio --async-backend=asyncio
|
|
159
169
|
```
|
|
160
170
|
|
|
161
171
|
# Protobuf
|
|
@@ -457,3 +467,7 @@ Example: `` `SORT <https://valkey.io/commands/sort/>`_ ``
|
|
|
457
467
|
- [Black Formatter](https://marketplace.visualstudio.com/items?itemName=ms-python.black-formatter)
|
|
458
468
|
- [Flake8](https://marketplace.visualstudio.com/items?itemName=ms-python.flake8)
|
|
459
469
|
- [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer)
|
|
470
|
+
|
|
471
|
+
# Community Support and Feedback
|
|
472
|
+
|
|
473
|
+
We encourage you to join our community to support, share feedback, and ask questions. You can approach us for anything on our Valkey Slack: [Join Valkey Slack](https://join.slack.com/t/valkey-oss-developer/shared_invite/zt-2nxs51chx-EB9hu9Qdch3GMfRcztTSkQ).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: valkey-glide
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.0rc6
|
|
4
4
|
Classifier: Topic :: Database
|
|
5
5
|
Classifier: Topic :: Utilities
|
|
6
6
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
@@ -9,7 +9,7 @@ Classifier: Topic :: Software Development
|
|
|
9
9
|
Classifier: Programming Language :: Rust
|
|
10
10
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
11
11
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
12
|
-
Requires-Dist:
|
|
12
|
+
Requires-Dist: anyio>=4.9.0
|
|
13
13
|
Requires-Dist: typing-extensions>=4.8.0; python_version < '3.11'
|
|
14
14
|
Requires-Dist: protobuf>=3.20
|
|
15
15
|
Summary: An open source Valkey client library that supports Valkey and Redis open source 6.2, 7.0, 7.2 and 8.0.
|
|
@@ -18,9 +18,19 @@ License: Apache-2.0
|
|
|
18
18
|
Requires-Python: >=3.9
|
|
19
19
|
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
20
20
|
|
|
21
|
-
# Valkey GLIDE
|
|
21
|
+
# Welcome to Valkey GLIDE!
|
|
22
22
|
|
|
23
|
-
Valkey General Language Independent Driver for the Enterprise (GLIDE)
|
|
23
|
+
Valkey General Language Independent Driver for the Enterprise (GLIDE) is the official open-source Valkey client library, proudly part of the Valkey organization. Our mission is to make your experience with Valkey and Redis OSS seamless and enjoyable. Whether you're a seasoned developer or just starting out, Valkey GLIDE is here to support you every step of the way.
|
|
24
|
+
|
|
25
|
+
# Why Choose Valkey GLIDE?
|
|
26
|
+
|
|
27
|
+
- **Community and Open Source**: Join our vibrant community and contribute to the project. We are always here to respond, and the client is for the community.
|
|
28
|
+
- **Reliability**: Built with best practices learned from over a decade of operating Redis OSS-compatible services.
|
|
29
|
+
- **Performance**: Optimized for high performance and low latency.
|
|
30
|
+
- **High Availability**: Designed to ensure your applications are always up and running.
|
|
31
|
+
- **Cross-Language Support**: Implemented using a core driver framework written in Rust, with language-specific extensions to ensure consistency and reduce complexity.
|
|
32
|
+
- **Stability and Fault Tolerance**: We brought our years of experience to create a bulletproof client.
|
|
33
|
+
- **Backed and Supported by AWS and GCP**: Ensuring robust support and continuous improvement of the project.
|
|
24
34
|
|
|
25
35
|
## Documentation
|
|
26
36
|
|
|
@@ -47,6 +57,7 @@ Linux:
|
|
|
47
57
|
macOS:
|
|
48
58
|
|
|
49
59
|
- macOS 14.7 (Apple silicon/aarch_64)
|
|
60
|
+
- macOS 13.7 (x86_64/amd64)
|
|
50
61
|
|
|
51
62
|
## Python Supported Versions
|
|
52
63
|
|
|
@@ -58,6 +69,8 @@ macOS:
|
|
|
58
69
|
| 3.12 |
|
|
59
70
|
| 3.13 |
|
|
60
71
|
|
|
72
|
+
Valkey GLIDE transparently supports both the `asyncio` and `trio` concurrency frameworks.
|
|
73
|
+
|
|
61
74
|
## Installation and Setup
|
|
62
75
|
|
|
63
76
|
### Installing via Package Manager (pip)
|
|
@@ -125,3 +138,7 @@ For complete examples with error handling, please refer to the [cluster example]
|
|
|
125
138
|
|
|
126
139
|
Development instructions for local building & testing the package are in the [DEVELOPER.md](https://github.com/valkey-io/valkey-glide/blob/main/python/DEVELOPER.md#build-from-source) file.
|
|
127
140
|
|
|
141
|
+
## Community and Feedback
|
|
142
|
+
|
|
143
|
+
We encourage you to join our community to support, share feedback, and ask questions. You can approach us for anything on our Valkey Slack: [Join Valkey Slack](https://join.slack.com/t/valkey-oss-developer/shared_invite/zt-2nxs51chx-EB9hu9Qdch3GMfRcztTSkQ).
|
|
144
|
+
|
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
# Valkey GLIDE
|
|
1
|
+
# Welcome to Valkey GLIDE!
|
|
2
2
|
|
|
3
|
-
Valkey General Language Independent Driver for the Enterprise (GLIDE)
|
|
3
|
+
Valkey General Language Independent Driver for the Enterprise (GLIDE) is the official open-source Valkey client library, proudly part of the Valkey organization. Our mission is to make your experience with Valkey and Redis OSS seamless and enjoyable. Whether you're a seasoned developer or just starting out, Valkey GLIDE is here to support you every step of the way.
|
|
4
|
+
|
|
5
|
+
# Why Choose Valkey GLIDE?
|
|
6
|
+
|
|
7
|
+
- **Community and Open Source**: Join our vibrant community and contribute to the project. We are always here to respond, and the client is for the community.
|
|
8
|
+
- **Reliability**: Built with best practices learned from over a decade of operating Redis OSS-compatible services.
|
|
9
|
+
- **Performance**: Optimized for high performance and low latency.
|
|
10
|
+
- **High Availability**: Designed to ensure your applications are always up and running.
|
|
11
|
+
- **Cross-Language Support**: Implemented using a core driver framework written in Rust, with language-specific extensions to ensure consistency and reduce complexity.
|
|
12
|
+
- **Stability and Fault Tolerance**: We brought our years of experience to create a bulletproof client.
|
|
13
|
+
- **Backed and Supported by AWS and GCP**: Ensuring robust support and continuous improvement of the project.
|
|
4
14
|
|
|
5
15
|
## Documentation
|
|
6
16
|
|
|
@@ -27,6 +37,7 @@ Linux:
|
|
|
27
37
|
macOS:
|
|
28
38
|
|
|
29
39
|
- macOS 14.7 (Apple silicon/aarch_64)
|
|
40
|
+
- macOS 13.7 (x86_64/amd64)
|
|
30
41
|
|
|
31
42
|
## Python Supported Versions
|
|
32
43
|
|
|
@@ -38,6 +49,8 @@ macOS:
|
|
|
38
49
|
| 3.12 |
|
|
39
50
|
| 3.13 |
|
|
40
51
|
|
|
52
|
+
Valkey GLIDE transparently supports both the `asyncio` and `trio` concurrency frameworks.
|
|
53
|
+
|
|
41
54
|
## Installation and Setup
|
|
42
55
|
|
|
43
56
|
### Installing via Package Manager (pip)
|
|
@@ -104,3 +117,7 @@ For complete examples with error handling, please refer to the [cluster example]
|
|
|
104
117
|
### Building & Testing
|
|
105
118
|
|
|
106
119
|
Development instructions for local building & testing the package are in the [DEVELOPER.md](https://github.com/valkey-io/valkey-glide/blob/main/python/DEVELOPER.md#build-from-source) file.
|
|
120
|
+
|
|
121
|
+
## Community and Feedback
|
|
122
|
+
|
|
123
|
+
We encourage you to join our community to support, share feedback, and ask questions. You can approach us for anything on our Valkey Slack: [Join Valkey Slack](https://join.slack.com/t/valkey-oss-developer/shared_invite/zt-2nxs51chx-EB9hu9Qdch3GMfRcztTSkQ).
|
|
@@ -2615,7 +2615,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
2615
2615
|
|
|
2616
2616
|
----
|
|
2617
2617
|
|
|
2618
|
-
Package: bitflags:2.9.
|
|
2618
|
+
Package: bitflags:2.9.1
|
|
2619
2619
|
|
|
2620
2620
|
The following copyrights and licenses were found in the source code of this package:
|
|
2621
2621
|
|
|
@@ -49943,7 +49943,63 @@ authorization of the copyright holder.
|
|
|
49943
49943
|
|
|
49944
49944
|
----
|
|
49945
49945
|
|
|
49946
|
-
Package:
|
|
49946
|
+
Package: anyio:4.9.0
|
|
49947
|
+
|
|
49948
|
+
The following copyrights and licenses were found in the source code of this package:
|
|
49949
|
+
|
|
49950
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
49951
|
+
a copy of this software and associated documentation files (the
|
|
49952
|
+
"Software"), to deal in the Software without restriction, including
|
|
49953
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
49954
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
49955
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
49956
|
+
the following conditions:
|
|
49957
|
+
|
|
49958
|
+
The above copyright notice and this permission notice shall be
|
|
49959
|
+
included in all copies or substantial portions of the Software.
|
|
49960
|
+
|
|
49961
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
49962
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
49963
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
49964
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
49965
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
49966
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
49967
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
49968
|
+
|
|
49969
|
+
----
|
|
49970
|
+
|
|
49971
|
+
Package: protobuf:6.31.0
|
|
49972
|
+
|
|
49973
|
+
The following copyrights and licenses were found in the source code of this package:
|
|
49974
|
+
|
|
49975
|
+
Redistribution and use in source and binary forms, with or without modification,
|
|
49976
|
+
are permitted provided that the following conditions are met:
|
|
49977
|
+
|
|
49978
|
+
Redistributions of source code must retain the above copyright notice, this list
|
|
49979
|
+
of conditions and the following disclaimer.
|
|
49980
|
+
|
|
49981
|
+
Redistributions in binary form must reproduce the above copyright notice, this
|
|
49982
|
+
list of conditions and the following disclaimer in the documentation and/or
|
|
49983
|
+
other materials provided with the distribution.
|
|
49984
|
+
|
|
49985
|
+
Neither the name of the ORGANIZATION nor the names of its contributors may be
|
|
49986
|
+
used to endorse or promote products derived from this software without specific
|
|
49987
|
+
prior written permission.
|
|
49988
|
+
|
|
49989
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
49990
|
+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
49991
|
+
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
49992
|
+
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
|
|
49993
|
+
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
49994
|
+
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
|
49995
|
+
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
49996
|
+
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
49997
|
+
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
|
|
49998
|
+
THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
49999
|
+
|
|
50000
|
+
----
|
|
50001
|
+
|
|
50002
|
+
Package: sniffio:1.3.1
|
|
49947
50003
|
|
|
49948
50004
|
The following copyrights and licenses were found in the source code of this package:
|
|
49949
50005
|
|
|
@@ -50149,34 +50205,24 @@ The following copyrights and licenses were found in the source code of this pack
|
|
|
50149
50205
|
See the License for the specific language governing permissions and
|
|
50150
50206
|
limitations under the License.
|
|
50151
50207
|
|
|
50152
|
-
|
|
50153
|
-
|
|
50154
|
-
Package: protobuf:6.30.2
|
|
50155
|
-
|
|
50156
|
-
The following copyrights and licenses were found in the source code of this package:
|
|
50157
|
-
|
|
50158
|
-
Redistribution and use in source and binary forms, with or without modification,
|
|
50159
|
-
are permitted provided that the following conditions are met:
|
|
50160
|
-
|
|
50161
|
-
Redistributions of source code must retain the above copyright notice, this list
|
|
50162
|
-
of conditions and the following disclaimer.
|
|
50208
|
+
--
|
|
50163
50209
|
|
|
50164
|
-
|
|
50165
|
-
|
|
50166
|
-
|
|
50210
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
50211
|
+
a copy of this software and associated documentation files (the
|
|
50212
|
+
"Software"), to deal in the Software without restriction, including
|
|
50213
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
50214
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
50215
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
50216
|
+
the following conditions:
|
|
50167
50217
|
|
|
50168
|
-
|
|
50169
|
-
|
|
50170
|
-
prior written permission.
|
|
50218
|
+
The above copyright notice and this permission notice shall be
|
|
50219
|
+
included in all copies or substantial portions of the Software.
|
|
50171
50220
|
|
|
50172
|
-
|
|
50173
|
-
|
|
50174
|
-
|
|
50175
|
-
|
|
50176
|
-
|
|
50177
|
-
|
|
50178
|
-
|
|
50179
|
-
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
50180
|
-
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
|
|
50181
|
-
THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
50221
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
50222
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
50223
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
50224
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
50225
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
50226
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
50227
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
50182
50228
|
|
|
@@ -205,7 +205,7 @@ def run_tests(extra_args: Optional[List[str]] = None) -> None:
|
|
|
205
205
|
print("[INFO] Running test suite...")
|
|
206
206
|
env = get_venv_env()
|
|
207
207
|
|
|
208
|
-
cmd = ["pytest", "-v"
|
|
208
|
+
cmd = ["pytest", "-v"]
|
|
209
209
|
if extra_args:
|
|
210
210
|
cmd += extra_args
|
|
211
211
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
maturin==0.14.17 # higher version break the needs structure changes, the name of the project is not the same as the package name, and the naming both glide create a circular dependency - TODO: fix this
|
|
2
|
+
anyio[trio]>=4.9.0
|
|
3
|
+
uvloop
|
|
2
4
|
pytest
|
|
3
|
-
pytest-asyncio
|
|
4
5
|
pytest-html
|
|
5
6
|
black >= 24.3.0
|
|
6
7
|
flake8 == 5.0
|
|
@@ -11,5 +12,3 @@ types-protobuf ~= 5.29.1
|
|
|
11
12
|
packaging >= 22.0
|
|
12
13
|
sphinx >= 7.4.7
|
|
13
14
|
sphinx-rtd-theme
|
|
14
|
-
deprecated
|
|
15
|
-
types-Deprecated
|
|
@@ -39,6 +39,8 @@ autodoc_default_options = {
|
|
|
39
39
|
"ignore-module-all": True, # Prevents duplicate warnings with methods in parent module and its submodules
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
suppress_warnings = ["autodoc"]
|
|
43
|
+
|
|
42
44
|
|
|
43
45
|
def avoid_duplicate(app, what, name, obj, skip, options):
|
|
44
46
|
# We skip some special refs and PubSub duplicate warning messages that
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "glide-core"
|
|
3
3
|
version = "0.1.0"
|
|
4
|
-
edition = "
|
|
4
|
+
edition = "2024"
|
|
5
5
|
license = "Apache-2.0"
|
|
6
6
|
authors = ["Valkey GLIDE Maintainers"]
|
|
7
7
|
|
|
@@ -25,7 +25,7 @@ logger_core = { path = "../logger_core" }
|
|
|
25
25
|
dispose = "0.5.0"
|
|
26
26
|
tokio-util = { version = "^0.7", features = ["rt"], optional = true }
|
|
27
27
|
num_cpus = { version = "^1.15", optional = true }
|
|
28
|
-
tokio-retry2 = {version = "0.5", features = ["jitter"]}
|
|
28
|
+
tokio-retry2 = { version = "0.5", features = ["jitter"] }
|
|
29
29
|
|
|
30
30
|
protobuf = { version = "3", features = [
|
|
31
31
|
"bytes",
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// Copyright Valkey GLIDE Project Contributors - SPDX Identifier: Apache-2.0
|
|
2
2
|
|
|
3
|
-
use criterion::{criterion_group, criterion_main
|
|
3
|
+
use criterion::{Criterion, criterion_group, criterion_main};
|
|
4
4
|
use futures::future::join_all;
|
|
5
5
|
use redis::{
|
|
6
|
+
AsyncCommands, ConnectionAddr, ConnectionInfo, GlideConnectionOptions, RedisConnectionInfo,
|
|
7
|
+
RedisResult, Value,
|
|
6
8
|
aio::{ConnectionLike, ConnectionManager, MultiplexedConnection},
|
|
7
9
|
cluster::ClusterClientBuilder,
|
|
8
10
|
cluster_async::ClusterConnection,
|
|
9
|
-
AsyncCommands, ConnectionAddr, ConnectionInfo, GlideConnectionOptions, RedisConnectionInfo,
|
|
10
|
-
RedisResult, Value,
|
|
11
11
|
};
|
|
12
12
|
use std::env;
|
|
13
13
|
use tokio::runtime::{Builder, Runtime};
|
|
@@ -5,7 +5,7 @@ use glide_core::{
|
|
|
5
5
|
connection_request::{ConnectionRequest, NodeAddress, TlsMode},
|
|
6
6
|
};
|
|
7
7
|
use iai_callgrind::{black_box, library_benchmark, library_benchmark_group, main};
|
|
8
|
-
use redis::{
|
|
8
|
+
use redis::{Value, cmd};
|
|
9
9
|
use tokio::runtime::Builder;
|
|
10
10
|
|
|
11
11
|
fn create_connection_request() -> ConnectionRequest {
|
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
use std::{io::Write, ptr::from_mut};
|
|
4
4
|
|
|
5
5
|
use bytes::BufMut;
|
|
6
|
-
use criterion::{black_box, criterion_group, criterion_main
|
|
6
|
+
use criterion::{Criterion, black_box, criterion_group, criterion_main};
|
|
7
7
|
use glide_core::{
|
|
8
|
-
command_request::{command, command_request},
|
|
9
8
|
command_request::{Command, CommandRequest, RequestType},
|
|
9
|
+
command_request::{command, command_request},
|
|
10
10
|
rotating_buffer::RotatingBuffer,
|
|
11
11
|
};
|
|
12
12
|
use integer_encoding::VarInt;
|
|
13
13
|
use protobuf::Message;
|
|
14
|
-
use rand::{distributions::Alphanumeric
|
|
14
|
+
use rand::{Rng, distributions::Alphanumeric};
|
|
15
15
|
|
|
16
16
|
fn benchmark(
|
|
17
17
|
c: &mut Criterion,
|
{valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/src/client/mod.rs
RENAMED
|
@@ -6,6 +6,7 @@ use crate::cluster_scan_container::insert_cluster_scan_cursor;
|
|
|
6
6
|
use crate::scripts_container::get_script;
|
|
7
7
|
use futures::FutureExt;
|
|
8
8
|
use logger_core::{log_error, log_info, log_warn};
|
|
9
|
+
use once_cell::sync::OnceCell;
|
|
9
10
|
use redis::aio::ConnectionLike;
|
|
10
11
|
use redis::cluster_async::ClusterConnection;
|
|
11
12
|
use redis::cluster_routing::{
|
|
@@ -19,9 +20,12 @@ use redis::{
|
|
|
19
20
|
pub use standalone_client::StandaloneClient;
|
|
20
21
|
use std::io;
|
|
21
22
|
use std::str::FromStr;
|
|
22
|
-
use std::sync::atomic::{AtomicIsize, Ordering};
|
|
23
23
|
use std::sync::Arc;
|
|
24
|
+
use std::sync::atomic::{AtomicIsize, Ordering};
|
|
25
|
+
use std::thread;
|
|
26
|
+
use std::thread::JoinHandle;
|
|
24
27
|
use std::time::Duration;
|
|
28
|
+
use tokio::runtime::{Builder, Handle};
|
|
25
29
|
pub use types::*;
|
|
26
30
|
|
|
27
31
|
use self::value_conversion::{convert_to_expected_type, expected_type_for_cmd, get_value_type};
|
|
@@ -30,7 +34,7 @@ mod standalone_client;
|
|
|
30
34
|
mod value_conversion;
|
|
31
35
|
use redis::InfoDict;
|
|
32
36
|
use telemetrylib::*;
|
|
33
|
-
use tokio::sync::mpsc;
|
|
37
|
+
use tokio::sync::{Notify, mpsc, oneshot};
|
|
34
38
|
use versions::Versioning;
|
|
35
39
|
|
|
36
40
|
pub const HEARTBEAT_SLEEP_DURATION: Duration = Duration::from_secs(1);
|
|
@@ -59,6 +63,67 @@ pub const DEFAULT_MAX_INFLIGHT_REQUESTS: u32 = 1000;
|
|
|
59
63
|
/// and performance overhead.
|
|
60
64
|
pub const CONNECTION_CHECKS_INTERVAL: Duration = Duration::from_secs(3);
|
|
61
65
|
|
|
66
|
+
/// A static Glide runtime instance
|
|
67
|
+
static RUNTIME: OnceCell<GlideRt> = OnceCell::new();
|
|
68
|
+
|
|
69
|
+
pub struct GlideRt {
|
|
70
|
+
pub runtime: Handle,
|
|
71
|
+
pub(crate) thread: Option<JoinHandle<()>>,
|
|
72
|
+
shutdown_notifier: Arc<Notify>,
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/// Initializes a single-threaded Tokio runtime in a dedicated thread (if not already initialized)
|
|
76
|
+
/// and returns a static reference to the `GlideRt` wrapper, which holds the runtime handle and a shutdown notifier.
|
|
77
|
+
/// The runtime remains active indefinitely until a shutdown is triggered via the notifier, allowing tasks to be spawned
|
|
78
|
+
/// throughout the lifetime of the application.
|
|
79
|
+
pub fn get_or_init_runtime() -> Result<&'static GlideRt, String> {
|
|
80
|
+
RUNTIME.get_or_try_init(|| {
|
|
81
|
+
let notify = Arc::new(Notify::new());
|
|
82
|
+
let notify_thread = notify.clone();
|
|
83
|
+
|
|
84
|
+
let (tx, rx) = oneshot::channel();
|
|
85
|
+
|
|
86
|
+
let thread_handle = thread::Builder::new()
|
|
87
|
+
.name("glide-runtime-thread".into())
|
|
88
|
+
.spawn(move || {
|
|
89
|
+
match Builder::new_current_thread().enable_all().build() {
|
|
90
|
+
Ok(runtime) => {
|
|
91
|
+
let _ = tx.send(Ok(runtime.handle().clone()));
|
|
92
|
+
// Keep runtime alive until shutdown is signaled
|
|
93
|
+
runtime.block_on(notify_thread.notified());
|
|
94
|
+
}
|
|
95
|
+
Err(err) => {
|
|
96
|
+
let _ = tx.send(Err(format!("Failed to create runtime: {err}")));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
})
|
|
100
|
+
.map_err(|_| "Failed to spawn runtime thread".to_string())?;
|
|
101
|
+
|
|
102
|
+
let runtime_handle = rx
|
|
103
|
+
.blocking_recv()
|
|
104
|
+
.map_err(|err| format!("Failed to receive runtime handle: {err:?}"))??;
|
|
105
|
+
|
|
106
|
+
Ok(GlideRt {
|
|
107
|
+
runtime: runtime_handle,
|
|
108
|
+
thread: Some(thread_handle),
|
|
109
|
+
shutdown_notifier: notify,
|
|
110
|
+
})
|
|
111
|
+
})
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
impl Drop for GlideRt {
|
|
115
|
+
fn drop(&mut self) {
|
|
116
|
+
if let Some(rt) = RUNTIME.get() {
|
|
117
|
+
rt.shutdown_notifier.notify_one();
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// Move the JoinHandle out of the Option and join it
|
|
121
|
+
if let Some(handle) = self.thread.take() {
|
|
122
|
+
handle.join().expect("GlideRt thread panicked");
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
62
127
|
pub(super) fn get_port(address: &NodeAddress) -> u16 {
|
|
63
128
|
const DEFAULT_PORT: u16 = 6379;
|
|
64
129
|
if address.port == 0 {
|
|
@@ -795,14 +860,14 @@ async fn create_cluster_client(
|
|
|
795
860
|
return Err(RedisError::from((
|
|
796
861
|
ErrorKind::ResponseError,
|
|
797
862
|
"Failed to parse engine version",
|
|
798
|
-
)))
|
|
863
|
+
)));
|
|
799
864
|
}
|
|
800
865
|
},
|
|
801
866
|
_ => {
|
|
802
867
|
return Err(RedisError::from((
|
|
803
868
|
ErrorKind::ResponseError,
|
|
804
869
|
"Could not determine engine version from INFO result",
|
|
805
|
-
)))
|
|
870
|
+
)));
|
|
806
871
|
}
|
|
807
872
|
}
|
|
808
873
|
}
|
|
@@ -1041,7 +1106,7 @@ mod tests {
|
|
|
1041
1106
|
use redis::Cmd;
|
|
1042
1107
|
|
|
1043
1108
|
use crate::client::{
|
|
1044
|
-
|
|
1109
|
+
BLOCKING_CMD_TIMEOUT_EXTENSION, RequestTimeoutOption, TimeUnit, get_request_timeout,
|
|
1045
1110
|
};
|
|
1046
1111
|
|
|
1047
1112
|
use super::get_timeout_from_cmd_arg;
|
|
@@ -9,18 +9,18 @@ use redis::{
|
|
|
9
9
|
GlideConnectionOptions, PushInfo, RedisConnectionInfo, RedisError, RedisResult, RetryStrategy,
|
|
10
10
|
};
|
|
11
11
|
use std::fmt;
|
|
12
|
-
use std::sync::atomic::{AtomicBool, Ordering};
|
|
13
12
|
use std::sync::Arc;
|
|
14
13
|
use std::sync::Mutex;
|
|
14
|
+
use std::sync::atomic::{AtomicBool, Ordering};
|
|
15
15
|
use std::sync::{RwLock, RwLockReadGuard};
|
|
16
16
|
use std::time::Duration;
|
|
17
17
|
use telemetrylib::Telemetry;
|
|
18
|
-
use tokio::sync::{
|
|
18
|
+
use tokio::sync::{Notify, mpsc};
|
|
19
19
|
use tokio::task;
|
|
20
20
|
use tokio::time::timeout;
|
|
21
21
|
use tokio_retry2::{Retry, RetryError};
|
|
22
22
|
|
|
23
|
-
use super::{
|
|
23
|
+
use super::{DEFAULT_CONNECTION_TIMEOUT, run_with_timeout};
|
|
24
24
|
|
|
25
25
|
const WRITE_LOCK_ERR: &str = "Failed to acquire the write lock";
|
|
26
26
|
const READ_LOCK_ERR: &str = "Failed to acquire the read lock";
|
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
use super::get_redis_connection_info;
|
|
4
4
|
use super::reconnecting_connection::{ReconnectReason, ReconnectingConnection};
|
|
5
|
-
use super::{to_duration, DEFAULT_CONNECTION_TIMEOUT};
|
|
6
5
|
use super::{ConnectionRequest, NodeAddress, TlsMode};
|
|
6
|
+
use super::{DEFAULT_CONNECTION_TIMEOUT, to_duration};
|
|
7
7
|
use crate::client::types::ReadFrom as ClientReadFrom;
|
|
8
|
-
use futures::{future, stream
|
|
8
|
+
use futures::{StreamExt, future, stream};
|
|
9
9
|
use logger_core::log_debug;
|
|
10
10
|
use logger_core::log_warn;
|
|
11
11
|
use rand::Rng;
|
|
12
12
|
use redis::aio::ConnectionLike;
|
|
13
|
-
use redis::cluster_routing::{self,
|
|
13
|
+
use redis::cluster_routing::{self, ResponsePolicy, Routable, RoutingInfo, is_readonly_cmd};
|
|
14
14
|
use redis::{PushInfo, RedisError, RedisResult, RetryStrategy, Value};
|
|
15
|
+
use std::sync::Arc;
|
|
15
16
|
use std::sync::atomic::AtomicUsize;
|
|
16
17
|
use std::sync::atomic::Ordering;
|
|
17
|
-
use std::sync::Arc;
|
|
18
18
|
use std::time::Duration;
|
|
19
19
|
use telemetrylib::Telemetry;
|
|
20
20
|
use tokio::sync::mpsc;
|
{valkey_glide-2.0.0rc5 → valkey_glide-2.0.0rc6}/local_dependencies/glide-core/src/client/types.rs
RENAMED
|
@@ -93,11 +93,7 @@ fn chars_to_string_option(chars: &::protobuf::Chars) -> Option<String> {
|
|
|
93
93
|
|
|
94
94
|
#[cfg(feature = "proto")]
|
|
95
95
|
pub(crate) fn none_if_zero(value: u32) -> Option<u32> {
|
|
96
|
-
if value == 0 {
|
|
97
|
-
None
|
|
98
|
-
} else {
|
|
99
|
-
Some(value)
|
|
100
|
-
}
|
|
96
|
+
if value == 0 { None } else { Some(value) }
|
|
101
97
|
}
|
|
102
98
|
|
|
103
99
|
#[cfg(feature = "proto")]
|