packages feed

hask-redis-mux-0.1.0.0: CHANGELOG.md

# Revision history for redis-client

## 0.6.0.0 -- 2026-02-13

*   **Multiplexing Now Default**
    *   Cluster mode (`ClusterConfig`) now uses multiplexing by default (`clusterUseMultiplexing = True`).
      Set `clusterUseMultiplexing = False` to opt out.
*   **New: Standalone Multiplexed Client**
    *   Added `StandaloneClient` module for pipelined throughput on a single (non-cluster) Redis server.
    *   Provides `createStandaloneClient`, `createStandaloneClientFromConfig`, `closeStandaloneClient`,
      and `runStandaloneClient` lifecycle functions.
    *   `StandaloneConfig` allows tuning multiplexer count and toggling multiplexing on/off.
    *   Implements `RedisCommands` typeclass — all existing commands work transparently.
    *   Re-exported from the top-level `Redis` module.
*   **Testing**
    *   Added `MultiplexerSpec` — 14 unit tests for multiplexer internals (slot pool, response slot, lifecycle).
    *   Added `MultiplexPoolSpec` — 8 unit tests for per-node multiplexer management and round-robin routing.
    *   Added standalone E2E tests for all command families (string, hash, list, set, sorted set).
    *   Added concurrency stress tests (50+ threads, submit-after-destroy, multi-multiplexer distribution).

## 0.5.0.0 -- 2026-02-05

*   **Major Feature: Redis Cluster Support**
    *   Implemented full cluster support including topology management, connection pooling, and slot routing.
    *   Added smart routing with automatic `MOVED` and `ASK` redirection handling.
    *   Updated `fill`, `cli`, and `tunnel` modes to work seamlessly with Redis Cluster.
    *   Added "Pinned Proxy" mode to support specific cluster proxy configurations.
    *   Fixed hostname rewriting for cluster nodes in tunnel mode.
*   **Infrastructure & Testing**
    *   Added comprehensive End-to-End (E2E) tests for Cluster scenarios (Basic, Fill, Tunnel, CLI).
    *   Updated build system to prefer `nix-build` and `make test`.
    *   Added GitHub Actions workflows for automated testing and bootstrapping.
*   **Fill Operation Enhancements**
    *   Added configurable `--key-size` and `--value-size` support for realistic workload simulation.
    *   Added `--pipeline` configuration for explicit batch size control.
    *   Removed `REDIS_CLIENT_FILL_CHUNK_KB` environment variable in favor of explicit flags.
    *   Fixed fill calculation logic to ensure exact data generation matching requested sizes.
*   **Improvements**
    *   Fixed various race conditions and unsafe head usage.
    *   Improved error handling for `CROSSSLOT` operations.
    *   Refactored codebase for better maintainability (Cluster separation).

## 0.4.0.0 -- 2026-02-02

*   **Azure Integration**
    *   Added `azure-redis-connect` python script for Azure Redis Cache discovery and connectivity.
    *   Added support for Entra authentication (username/OID retrieval from JWT).
*   **Performance Optimization**
    *   Optimized data filling with parallel noise generation strategies.
    *   Optimized connection handling (parallel connections adjustment).
*   **DevOps**
    *   Added agent testing infrastructure.

## 0.3.0.0 -- 2025-10-15

*   **Command Expansion**
    *   Added support for Geo commands.
    *   Expanded standard Redis command set support.
*   **Build System**
    *   Added `flake.nix` for modern Nix support.
    *   Fixed inefficient store usage in build.
*   **Testing**
    *   Added tunneling tests.

## 0.2.0.0 -- 2025-03-28

*   **New Architectures**
    *   Added "Tunnel mode" for proxying Redis connections.
    *   Added TLS client support.
    *   Added Pipelining support for improved throughput.
*   **CLI & Usability**
    *   Added argument parsing for the CLI application.
    *   Added support for arrow key navigation in CLI.
    *   Added DNS resolution support.
*   **Core Improvements**
    *   Refactored RESP parsing logic.
    *   Improved Incremental network reading (State monad refactor).
    *   Added basic E2E testing framework.

## 0.1.0.0 -- 2025-02-11

*   First version.
*   Basic RESP data types.
*   Simple plaintext client implementation.