$ show vicanso/zedis
Zedis is a native, GPU-accelerated desktop GUI for Redis (and Valkey) built with Rust and the GPUI framework. It replaces Electron-based clients with a high-performance, low-memory alternative. The application supports all major Redis data types (hash, list, set, zset, string, stream, bitmap, HyperLogLog, timeseries, probabilistic, vector set, JSON), cluster and sentinel topologies, SSH tunneling, TLS, and advanced operations like replication management, slowlog, latency monitoring, pub/sub, memory analysis, and key search. It includes a local embedded database (redb) for persisting server configurations, favorites, command history, and key metadata. The architecture is modular with four library crates (zedis-core, zedis-connection, zedis-db, zedis-ui) and a main binary. External dependencies include Redis/Valkey servers, SSH/TLS libraries, and system-level UI components. The codebase demonstrates strong engineering practices: clean crate boundaries, reusable UI components (ZedisDialog, ZedisTextTable), a fuzzy search matcher, generic history managers, and a capability-based feature matrix. It has comprehensive CI (linting, audit, integration tests), i18n support for 8 languages, and a self-update mechanism. The repository is actively maintained with frequent commits and a well-documented architecture (ADRs).
The LLM identified 6 files worth highlighting for reuse:
Implements a dependency-free subsequence matcher for fuzzy search (used in command palette and key search). The algorithm efficiently finds if a query string appears as a subsequence (not necessarily contiguous) in a target string, supporting case-insensitive matching. This is a self-contained utility that could be extracted into any Rust project needing fast fuzzy matching without external dependencies.
Provides SSH tunnel support for Redis connections, handling agent authentication, passphrase-protected keys, and multiplexed connections. The module abstracts away SSH complexity and integrates with the connection manager to create secure tunnels to Redis instances behind firewalls. It is reusable in any Rust application requiring SSH tunneling for database or service connections.
Implements a generic most-recently-used (MRU) list backed by a DashMap in-memory cache and redb for persistence. Used for command history, search history, recent keys, and favorites. The manager supports bounded capacity, TTL-based expiry, and automatic deduplication. This pattern is reusable in any application that needs a capped, persistent history with fast in-memory access.
Implements a self-update mechanism that fetches release manifests from GitHub, downloads platform-specific installers (DMG, MSI, AppImage), verifies SHA-256 checksums, and handles in-place replacement on macOS. The module is self-contained with manifest parsing, download progress reporting, and platform-specific install logic. It can be adapted for any Rust desktop application needing automatic updates.
Contains a collection of serialization decoders for common formats: JSON, Base64, JWT, PHP serialization, Python pickle, Java serialization, and more. Each decoder is a pure function that takes raw bytes and returns a human-readable representation. These decoders are completely isolated from the GUI and can be reused in any Rust project that needs to inspect or convert serialized data from Redis or other systems.
Provides a generic dialog builder (ZedisDialog) with support for alert, confirm, custom footers, and overlay dismissal. Built on top of GPUI's component system, it abstracts common dialog patterns (title, body, buttons, close behavior) into a reusable component. The dialog is used throughout the application for confirmations, warnings, and informational messages. It can be extracted for any GPUI-based Rust application.