Maintainers Guide
Architecture
Section titled “Architecture”Workspace crates:
redis-web-core: config, request/format parsing, ACL, protocol/logging primitivesredis-web-runtime: Redis connectivity, HTTP/WS handlers, router/server wiringredis-web-compat: naming and migration helpersredis-web-hiredis-compat: C ABI compatibility library scaffolding for hiredis drop-in usageredis-web: CLI crate with canonical + alias binaries
This split isolates stable protocol/config logic from transport/runtime and migration concerns.
Testing and CI
Section titled “Testing and CI”Test tiers:
- Unit:
cargo test --workspace --lib - Functional: non-Redis contract tests in
crates/redis-web/tests - Integration: process + Redis socket/HTTP/WS flows
Core commands:
cargo test -p redis-web --tests --no-runmake testmake test_integrationmake bench_config_compare SPEC=docs/examples/config/redis-web.bench.yamlmake bench_config_compare SPEC=docs/examples/config/redis-web.use-cases.bench.yamlCI also runs docs build/link checks and rename guard checks.
For realistic deployment-oriented benchmark scenarios, see Benchmark Catalog.
Release and signing
Section titled “Release and signing”Canonical image namespace:
ghcr.io/elicore/redis-web
Transition compatibility tags are also published under:
ghcr.io/elicore/webdis
Build and push workflow signs images when cosign secrets are configured.
Verification example:
./scripts/validate-image.sh --image ghcr.io/elicore/redis-web:latest --method cosignChangelog
Section titled “Changelog”The canonical changelog lives in CHANGELOG.md at the repository root.
Changelog generation is automated via the changelog GitHub Action using
git-cliff.