Redis GUI Foundation

Redis GUI 的产品基础工程,采用 Rust workspace + Tauri desktop 结构,为后续连接管理、命令执行、键浏览和危险操作防护提供稳定后端边界。

Workspace Layout

  • apps/desktop: Tauri 桌面入口与 React + Tailwind 工作台壳层。
  • crates/redis-core: 可复用的领域与应用核心,供 desktop、未来 CLI 和自动化入口共享。
  • docs/architecture.md: 当前阶段的边界、持久化策略和演进约束。
  • docs/frontend-workspace-baseline.md: 首版桌面信息架构、UI/UX 范围和验收要点。

Current Backend Scope

  • 建立可复用的 redis-core crate承载连接模型、连接测试、key 浏览和基础命令执行能力。
  • 提供 Redis 常见 value 类型的统一读取抽象:stringhashlistsetzsetstream
  • 提供 V1 安全写入边界:仅允许现有 string key 的整值替换,并显式暴露只读类型差异。
  • 提供 TTL 读取与修改能力:保留 TTL、设置毫秒级过期、移除 TTL。
  • 建立 apps/desktop/src-tauri,使 GUI 通过统一命令面访问后端。
  • 明确当前持久化边界:本阶段不落盘连接密钥,不承诺历史数据兼容。
  • 对单实例 Redis 提供最小可验证的后端契约AUTH、DB 选择、PINGSCAN/TYPE/PTTL key 元数据浏览,以及基础 RESP2 命令执行。

Prerequisites

  • Rust 1.85+
  • Node.js 24+
  • pnpm 10+
  • Docker CLI for the local Redis smoke fixture
  • Linux 开发环境需要 Tauri 运行依赖,例如 webkit2gtkgtk3 开发包

Getting Started

pnpm install
cargo test -p redis-core
pnpm run desktop:dev
pnpm run desktop:build
pnpm run desktop:tauri:dev
pnpm run desktop:tauri:build

说明:

  • 仓库现在同时补齐了 pnpm-workspace.yaml 和根 package.jsonpackageManager,将 pnpm 作为桌面开发与打包的规范入口。
  • 仓库通过 .npmrc 固定安装 devDependencies避免宿主机的 NODE_ENV=production 破坏桌面构建链路。
  • cargo test -p redis-core 默认验证共享后端核心,包括 mock Redis 握手与命令执行测试,避免在缺少桌面系统库时阻断后端迭代。
  • pnpm run desktop:dev 启动浏览器态工作台壳层,用于检查布局、交互和 demo fallback此模式下没有 Tauri 命令桥。
  • pnpm run desktop:tauri:dev 启动带 Tauri 后端桥的桌面工作台;连接测试和命令执行会调用现有 test_redis_connectionexecute_redis_command 命令,因此需要完整的 Tauri Linux 运行依赖。
  • pnpm run desktop:tauri:build 会先执行桌面前端 build再进入 Tauri/Rust 的真实打包流程;当前 Linux .deb.rpm 产物位于仓库根 target/release/bundle/
  • Linux 上进入 Tauri 打包前,可先用 pkg-config --modversion gtk+-3.0 webkit2gtk-4.1 libsoup-3.0 做原生依赖预检查;任一缺失都会阻断桌面包产物生成。

Local Redis Smoke Fixture

仓库现在提供一个本地 Redis fixture 约定,用于 QA 和开发共用的 smoke 数据源:

./scripts/redis-fixture/start.sh
./scripts/redis-fixture/seed.sh
pnpm run desktop:tauri:dev

默认连接参数:

  • Host: 127.0.0.1
  • Port: 6380
  • Database: 0
  • Password: empty
  • TLS: disabled

清理命令:

./scripts/redis-fixture/stop.sh

完整本地 build 与 smoke 步骤见 docs/qa/local-desktop-smoke.md

Current Frontend Scope

  • 首版可见界面现在已接入真实的桌面 browse / inspect / string save / TTL update 路径,但仍保持危险操作和完整产品化流程在后续阶段演进。
  • 当前前端消费 backend_bootstraptest_redis_connectionbrowse_redis_keysread_redis_valuewrite_redis_valueexecute_redis_command;浏览器态仍保持明确的 demo fallback。
  • inspect_redis_keyupdate_redis_key_ttl 已在桌面桥可用;当前 UI 已暴露 TTL 设置与移除控制,但删除执行仍保持未开放状态。
  • 连接测试、key browse、value inspector 和命令托盘在 Tauri 桌面运行时走真实后端桥;浏览器态 pnpm run desktop:dev 会明确回退到 demo 数据,不伪装成真实 Redis 行为。
  • 具体 UI/UX 边界与 QA 验收入口见 docs/frontend-workspace-baseline.mddocs/qa/acceptance-matrix.md
Description
No description provided
Readme 897 KiB
Languages
TypeScript 52.6%
Rust 44.4%
Shell 1.7%
CSS 1.1%
HTML 0.2%