Files
redis-gui-foundation/README.md
Senior Frontend Engineer 7c1abf2fd1 feat(desktop): add typed inspector panels
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-28 11:16:39 +00:00

88 lines
4.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 类型的统一读取抽象:`string``hash``list``set``zset``stream`
- 提供 V1 安全写入边界:仅允许现有 string key 的整值替换,并显式暴露只读类型差异。
- 提供 TTL 读取与修改能力:保留 TTL、设置毫秒级过期、移除 TTL。
- 建立 `apps/desktop/src-tauri`,使 GUI 通过统一命令面访问后端。
- 明确当前持久化边界:本阶段不落盘连接密钥,不承诺历史数据兼容。
- 对单实例 Redis 提供最小可验证的后端契约AUTH、DB 选择、`PING``SCAN`/`TYPE`/`PTTL` key 元数据浏览,以及基础 RESP2 命令执行。
## Prerequisites
- Rust 1.85+
- Node.js 24+
- pnpm 10+
- Docker CLI for the local Redis smoke fixture
- Linux 开发环境需要 Tauri 运行依赖,例如 `webkit2gtk``gtk3` 开发包
## Getting Started
```bash
pnpm install
cargo test -p redis-core
pnpm --filter @redis-gui/desktop test
pnpm run desktop:dev
pnpm run desktop:build
pnpm run desktop:tauri:dev
pnpm run desktop:tauri:build
```
说明:
- 仓库现在同时补齐了 `pnpm-workspace.yaml` 和根 `package.json``packageManager`,将 `pnpm` 作为桌面开发与打包的规范入口。
- 仓库通过 `.npmrc` 固定安装 devDependencies避免宿主机的 `NODE_ENV=production` 破坏桌面构建链路。
- `cargo test -p redis-core` 默认验证共享后端核心,包括 mock Redis 握手与命令执行测试,避免在缺少桌面系统库时阻断后端迭代。
- `pnpm --filter @redis-gui/desktop test` 运行桌面前端的最小单测基线;当前覆盖共享错误映射层,避免后续功能迭代把后端错误码重新退回成零散文案拼接。
- `pnpm run desktop:dev` 启动浏览器态工作台壳层,用于检查布局、交互和 demo fallback此模式下没有 Tauri 命令桥。
- `pnpm run desktop:tauri:dev` 启动带 Tauri 后端桥的桌面工作台;连接测试和命令执行会调用现有 `test_redis_connection``execute_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 数据源:
```bash
./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
清理命令:
```bash
./scripts/redis-fixture/stop.sh
```
完整本地 build 与 smoke 步骤见 `docs/qa/local-desktop-smoke.md`
## Current Frontend Scope
- 首版可见界面现在已接入真实的桌面 browse / inspect / string save / TTL update 路径,但仍保持危险操作和完整产品化流程在后续阶段演进。
- 当前前端消费 `backend_bootstrap``test_redis_connection``browse_redis_keys``read_redis_value``write_redis_value``execute_redis_command`;浏览器态仍保持明确的 demo fallback。
- 当前前端还通过共享错误映射层统一消费 `redis-core` 的稳定错误码使连接测试、浏览、读取、保存、TTL 和命令执行失败都落到一致的操作提示上。
- `inspect_redis_key``update_redis_key_ttl` 已在桌面桥可用;当前 UI 已暴露 TTL 设置与移除控制,但删除执行仍保持未开放状态。
- inspector 现在对 `hash/list/set/zset/stream` 提供结构化只读面板,不再要求操作者从原始 JSON 文本中手动解析 typed value。
- 连接测试、key browse、value inspector 和命令托盘在 Tauri 桌面运行时走真实后端桥;浏览器态 `pnpm run desktop:dev` 会明确回退到 demo 数据,不伪装成真实 Redis 行为。
- 具体 UI/UX 边界与 QA 验收入口见 `docs/frontend-workspace-baseline.md``docs/qa/acceptance-matrix.md`