Files
zeekayandHanzo Dev 8c0c819f02 refactor(ratelimiter): follow hanzokv/go v9.22.0's redis -> kv package rename
hanzokv/go v9.22.0 renames its Go package from `redis` to `kv`; the import
path is unchanged. Update the call sites and rename the middleware's own
client vocabulary to match:

  redis_limiter.go -> kv_limiter.go
  redisLimiter     -> kvLimiter
  newRedisLimiter  -> newKVLimiter
  redisPrefix      -> kvPrefix   (key prefix value "rate:" is unchanged)
  Rediser          -> KVClient
  mockRedisClient  -> mockKVClient

Three things deliberately keep the redis name because they are not ours
to rename:

  - `redis.call(...)` inside AllowTokenBucketRaw, and the matching
    state.SetGlobal("redis", mod) in the test's Lua VM. That is the KV
    server's scripting API — a wire contract, not vocabulary.
  - dynamic.Redis / config.Redis. That field is CRD schema: it has
    generated deepcopy and applyconfiguration code and it is what a
    Middleware CR spells today. Renaming it breaks every deployed CR and
    needs a codegen pass, so it belongs in its own change.
  - pkg/provider/kv/redis rides github.com/kvtools/redis, a foreign
    client, and never touched hanzokv/go.

Verified with go vet ./pkg/middlewares/ratelimiter/... (clean) and
CGO_ENABLED=0 go test ./pkg/middlewares/ratelimiter/... (ok, 121s). A
full `go build ./...` cannot run on darwin/arm64 here: luxfi/accel's cgo
fails with 'stdlib.h' file not found, and linking the test binary fails
with ld: library 'resolv' not found. Both are local toolchain gaps that
predate this change.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-26 08:48:48 -07:00
..
2025-03-10 11:02:05 +01:00