Webdis Compatibility and Migration
Feature tracks
Section titled “Feature tracks”This surface tracks three active compatibility areas:
webdismigration and bootstrap behaviorcompat_hiredisREST endpoint compatibilityredis-web-hiredis-compatABI/harness compatibility
Use this page as the owner mapping and go-to validation index for Track 1 and Track 2.
This project intentionally preserves compatibility where migration safety matters.
Guaranteed during the transition cycle:
webdisalias binary- Legacy config filenames and key aliases
- Webdis-compatible request parsing and response behavior under existing tests
Intentionally shifted:
- Canonical package, crate, binary, image, and docs naming is now
redis-web - Documentation is rewritten for the current implementation instead of forked historical docs
Legacy forked docs were replaced by compatibility-focused pages and tests in this section.
Track 1: webdis migration
Section titled “Track 1: webdis migration”CLI and startup behavior
Section titled “CLI and startup behavior”Before
Section titled “Before”webdis webdis.jsonwebdis --write-default-config --config ./webdis.generated.jsonredis-web redis-web.jsonredis-web --write-default-config --config ./redis-web.generated.jsonCompatibility behavior is implemented in redis-web/src/lib.rs and
redis-web-compat/src/lib.rs:
redis-webresolves default config in this order:- prefer
redis-web.json - fallback to
webdis.json - default to
redis-web.jsonif neither exists
- prefer
redis-webprints a fallback notice only when it resolves to legacywebdis.json.webdisprints the deprecation notice before startup.--write-default-configwrites schema paths tied to the invoked binary name:./redis-web.schema.jsonfor canonical binary./webdis.schema.jsonfor legacy binary name
Config and schema migration
Section titled “Config and schema migration”Legacy names and schema:
webdis.jsonwebdis.prod.jsonwebdis.schema.jsonCanonical names and schema:
redis-web.jsonredis-web.prod.jsonredis-web.schema.jsonTypical legacy-to-canonical schema migration in config docs:
"$schema": "./webdis.schema.json"becomes
"$schema": "./redis-web.schema.json"Runtime surface migration notes
Section titled “Runtime surface migration notes”start-webdis.shremains as a compatibility wrapper.- CI command names should target package-qualified tests:
cargo test -p redis-web --test config_testcargo test -p redis-web --test integration_process_boot_test- Docker image name changed to
ghcr.io/elicore/redis-web. - Service naming should migrate from
webdisservice keys toredis-webin compose.
Track 2: compat endpoint compatibility
Section titled “Track 2: compat endpoint compatibility”The compat_hiredis bridge mounts REST endpoints by default in REST mode and is
not mounted for gRPC mode.
- Runtime source:
crates/redis-web-runtime/src/server.rs - Endpoint behavior source:
crates/redis-web-runtime/src/compat.rs
Key runtime behavior:
compat_hiredis.path_prefixchanges all mounted endpoints./sessioncreates a new session and returns session metadata./cmd/{session_id}.rawexecutes one or more RESP command frames in order./stream/{session_id}.rawkeeps a pub/sub stream open and sends RESP messages./ws/{session_id}provides the websocket transport variant.
path_prefix defaults to /__compat and is normalized to a leading slash and
without trailing slash in settings.
Operational limits:
max_pipeline_commandsrejects oversized pipelined command payloads in a single request.max_sessionslimits concurrent sessions.session_ttl_seccontrols idle timeout cleanup of sessions.- ACL checks reuse the server auth pipeline; forbidden commands are returned as
-ERR forbiddenframes with HTTP200.
Track 3: ABI bridge and external compatibility
Section titled “Track 3: ABI bridge and external compatibility”The ABI bridge documentation lives in:
docs/compatibility/hiredis-dropin.mddocs/compatibility/hiredis-client-integration.md
Keep it aligned with:
crates/redis-web-hiredis-compatscripts/build-hiredis-compat.shsubprojects/redispy-hiredis-compat
Compatibility coverage matrix
Section titled “Compatibility coverage matrix”This matrix is the one-to-one mapping between feature claims and test owners:
| Track | Feature owner | Test owner | Test target |
|---|---|---|---|
| Webdis migration | redis-web/src/lib.rs, redis-web-compat/src/lib.rs | bootstrap/integration test maintainer | crates/redis-web/tests/integration_process_boot_test.rs, crates/redis-web/tests/config_test.rs |
| Compat endpoints | crates/redis-web-runtime/src/server.rs, crates/redis-web-runtime/src/compat.rs | runtime maintainer | crates/redis-web/tests/integration_hiredis_compat_test.rs, crates/redis-web/tests/config_test.rs |
| ABI bridge | crates/redis-web-hiredis-compat, scripts/build-hiredis-compat.sh, subprojects/redispy-hiredis-compat | compatibility harness maintainer | make compat_redispy_bootstrap, make compat_redispy_audit, make compat_ssl_audit, make test_hiredis_compat_fixture |
Suggested focused commands:
cargo test -p redis-web --test config_testcargo test -p redis-web --test integration_process_boot_testcargo test -p redis-web --test integration_hiredis_compat_testmake compat_redispy_bootstrapmake compat_redispy_auditmake compat_ssl_auditmake test_hiredis_compat_fixtureVerification sequence for publication
Section titled “Verification sequence for publication”If these commands are not green, compatibility docs must not be treated as final.
cargo test -p redis-web --test config_testcargo test -p redis-web --test integration_process_boot_testcargo test -p redis-web --test integration_hiredis_compat_testmake compat_redispy_bootstrapmake compat_redispy_auditmake compat_ssl_auditmake test_hiredis_compat_fixtureRelease and deprecation milestones
Section titled “Release and deprecation milestones”See the deprecation timeline in the repository CHANGELOG.md.