Use Valkey instead of Redis

Redis 7.4+ is RSALv2/SSPL and 8.0+ adds AGPLv3, none of which a
closed-source commercial product can ship. Valkey is BSD-3-Clause and
speaks the same RESP protocol, so the `redis` crate works unchanged -
`CONTINUUM_REDIS_URL` becomes `CONTINUUM_VALKEY_URL`, `Config.redis_url`
becomes `valkey_url`, and `Reporter`'s connection field follows.

The `redis://` scheme and the `redis` crate itself deliberately stay:
both name the RESP wire protocol rather than the server we deploy, and
redis-rs has no `valkey://` scheme to use instead. Commented in place so
the inconsistency reads as intentional.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-10-03 10:10:39 +00:00
co-authored by Claude Opus 5
parent 0026e9c976
commit 64e31a21e0
5 changed files with 22 additions and 17 deletions
+2 -2
View File
@@ -2,7 +2,7 @@ use std::env;
#[derive(Debug, Clone)]
pub struct Config {
pub redis_url: String,
pub valkey_url: String,
pub frame_stream: String,
pub consumer_group: String,
pub consumer_name: String,
@@ -11,7 +11,7 @@ pub struct Config {
impl Config {
pub fn from_env() -> anyhow::Result<Self> {
Ok(Self {
redis_url: env_or("CONTINUUM_REDIS_URL", "redis://localhost:6379"),
valkey_url: env_or("CONTINUUM_VALKEY_URL", "redis://localhost:6379"),
frame_stream: env_or("CONTINUUM_FRAME_STREAM", "stream:camera_frames"),
consumer_group: env_or("CONTINUUM_CONSUMER_GROUP", "ai-worker"),
consumer_name: env_or("CONTINUUM_CONSUMER_NAME", "ai-worker-1"),