Skip to content

vicanso/zedis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

476 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

中文 | English

Zedis

A High-Performance, GPU-Accelerated Redis GUI Client Built with Rust 🦀 and GPUI ⚡️

License Twitter Follow Downloads blazingly fast

zedis.mp4


🤔 Why Zedis?

Tired of Electron-based Redis clients that eat gigabytes of RAM just to display a JSON string, or freeze entirely when you accidentally click a key with 100,000 elements? We were too.

Zedis is built from the ground up for developers who demand native performance. Powered by GPUI (the same revolutionary rendering engine behind the Zed Editor), Zedis delivers a native, buttery-smooth 60+ FPS experience with a minimal memory footprint—even when navigating massive databases.

✨ Killer Features

🚀 Blazingly Fast & Native

Native GPU Rendering — every pixel on the GPU, virtual-scrolled SCAN; millions of keys at 60+ FPS with minimal RAM.

Virtual scrolling combined with SCAN iteration keeps the interface responsive no matter how large the keyspace — zero-lag scrolling, instant tab switches, minimal memory footprint.

Cross-Platform — native on macOS, Windows, and Linux, with Light / Dark / System themes.

A truly native feel across all three desktop platforms.

🧠 Smart Data Viewer

Zedis auto-detects (ViewerMode::Auto) and formats payloads on the fly.

Auto-Decompression — transparently unpacks LZ4, SNAPPY, GZIP, and ZSTD.

Compressed values are unpacked in place so you read the real payload, not a blob.

Rich Content Decoding — JSON/RedisJSON, Protobuf, MessagePack, Unix timestamps, media & hex.

JSON & RedisJSON with pretty-printing, syntax highlighting, and minimal JSON.MERGE diffs (RFC 7396) — JSONPath ($.user.email, $.items[?(@.price > 100)]) works on plain string keys too, no module needed. Protobuf & MessagePack deserialize with zero config; 10/13-digit Unix timestamps preview as local + UTC; images (PNG/JPG/WEBP/SVG/GIF) and a fully editable hex view round it out.

Custom Script Viewer — pipe any value through an external shell command for custom decoding.

Configure a command template with placeholders ({KEY}, {VALUE}, {HEX}, {RAW_FILE}); Zedis runs it via sh -c / cmd /c and shows stdout as the formatted value. Per-server key matching by exact / prefix / suffix / regex.

Specialized Type Viewers — opaque values open in purpose-built, interactive viewers.

Bitmap/Bitfield paints bits on a GPU grid (SETBIT/BITCOUNT/BITFIELD); HyperLogLog shows PFCOUNT cardinality; Vector Set + KNN (Redis 8) walks the HNSW graph via VSIM; Geo Map plots a sorted set on a tile-less radar with GEOSEARCH; Probabilistic (RedisBloom: Bloom/Cuckoo/Count-Min/Top-K/t-digest) and Time Series (RedisTimeSeries TS.INFO + bucketed TS.RANGE chart) each get a dedicated card. Dispatched by the key's type / module.

Module Browsers — dedicated panels for RediSearch (FT.*) and Functions (Lua libraries).

RediSearch: list/inspect indexes, run FT.SEARCH / FT.AGGREGATE with chips, create / alter / drop from a form. Functions (Redis 7+): manage libraries via FUNCTION LIST/LOAD/DELETE with a tree-sitter Lua editor. Both auto-hide when the module / version isn't present.

Redis Streams — browse, live-tail, and manage consumer groups without leaving the GUI.

Browse entries, live-tail new messages (XREAD BLOCK, ring-buffered), inspect Consumer Groups & Pending Entries via XINFO, and manage groups (XGROUP CREATE / SETID / DESTROY, with a confirm guard on destroy).

Cross-Server Tools — copy or diff a key, or diff full configs, between two servers.

Copy a key with value + TTL (DUMP/RESTORE), diff a string key against the same key elsewhere (side-by-side), or diff two servers' CONFIG GET * (striped table of only what differs). Built for "why does prod differ from staging?".

Key Editing & History — rename, per-field TTL, file import/export, bulk paste, and version history.

Atomic rename (RENAMENX, overwrite-guarded), per-field Hash TTL (HEXPIRE/HPERSIST, Redis 7.4+), value file export/import (binary-safe, KEEPTTL), bulk paste of TSV/CSV into Hash/List/Set/ZSet, and a client-side last-10-versions write history with diff & one-click restore.

📊 Real-Time Observability

A built-in, GPU-accelerated dashboard for monitoring your instances.

Live Metrics — real-time charts for CPU, memory, and network I/O.

Beautifully rendered, GPU-accelerated time-series charts.

Memory Analyzer + Recommendations — hunt BigKeys, see the TTL distribution, get instant offline health checks plus optional AI tips.

Sort the Top-N table by Size / Hottest / Coldest (OBJECT FREQ/IDLETIME auto-picked from maxmemory-policy), with a TTL histogram alongside. The moment a scan finishes, an offline rule engine flags issues automatically — big keys, keys that can't be evicted under a volatile-* policy, noeviction, high fragmentation, many tiny strings that should be a Hash, and memory-dominating prefixes — no config or network needed. One click also sends the report (key names, sizes, TTLs only — never values) to any OpenAI-compatible endpoint for inline advice in your UI language.

Performance Diagnostics — Slow Log ↔ Latency, live MONITOR, clients, and command stats.

The Performance panel cross-links Slow Log entries with LATENCY events (±5 s chips jump to the LATENCY HISTORY sparkline) and exports the filtered view to CSV/JSON; plus live MONITOR with keyword filtering, client management (CLIENT LIST/KILL), and a per-command calls/second table from INFO commandstats.

Value Search — find which key contains some text (a guarded, sampled scan).

Redis can't index values, so this O(keyspace) search runs behind guardrails: a mandatory key prefix, a 10k-key / 10s cap (cancellable), and skipped over-1 MiB values — searching string values, hash fields, and list/set/sorted-set members, with each hit showing where it matched. Results are an explicit sample, never claimed exhaustive.

Cluster Health & Management — topology tree with replication lag, plus failover / forget / meet / replicate.

Inspect Cluster/Sentinel topology as a tree (masters, slot ranges, replicas, per-replica lag from INFO replication), then act: CLUSTER FAILOVER / FORGET / MEET / REPLICATE and SENTINEL FAILOVER / RESET / REMOVE, each through the confirm dialog with PROD escalation. Only appears on multi-node deployments.

Persistence & Keyspace Events — RDB/AOF status with one-click saves, plus live key-event triage.

A persistence panel reads INFO persistence (last save, AOF growth, fork failures) with one-click BGSAVE / BGREWRITEAOF (PROD-escalated). Keyspace notifications parse keyspace/keyevent channels into a filterable (time, db, key, event, source) table — "which client just deleted user:42?" — with a one-click notify-keyspace-events enable.

🛡️ Security & Productivity

Command Palette & Shortcuts — ⌘K fuzzy navigation and a ⌘/ keyboard-shortcut reference.

⌘K fuzzy-searches servers and panels (arrows to move, Enter to run, Esc to dismiss); ⌘/ opens a read-only, grouped overlay of every hotkey with per-platform symbols.

Connection Safety — environment tags + confirm dialogs that escalate on production.

Tag each server with a preset environment — Dev / UAT / Prod — shown as a colored chip in the sidebar and status bar, and lock any connection read-only. Destructive actions (FLUSHALL, CONFIG SET, SHUTDOWN, KEYS *, batch DEL, key/server delete, XGROUP DESTROY, cluster ops...) are intercepted with a confirm dialog that escalates its wording on a Prod server.

ACL Management (Redis 6+) — GUI for the full ACL lifecycle.

List users, view flags / commands / key patterns / channel rules, and edit via quick presets (Full / Read-only / Disabled) plus toggleable chips for command categories and wildcards.

Secure Connections & Groups — TLS/SSL and SSH tunnels, with named, shareable server groups.

Full TLS/SSL (custom CA, client certs) and SSH tunneling (password, private key, agent). Organize connections into named, collapsible groups, reorder them, and share a single connection as JSON (credentials stripped by default). Migrate in by pasting a redis:// URI or a Redis Insight database export — every database lands at once.

Integrated CLI & Workbench — redis-cli terminal with completion plus a multi-line Batch mode.

Version-aware command completion with inline argument/summary hints. A one-click Batch mode swaps the REPL for a multi-line editor — one command per line, run with /Ctrl+Enter (dangerous lines still route through the confirm dialog).

Key Organization — namespace tree with TTL chips, favorites, and client-side tags & notes.

Keys group into a nested tree by : with compact TTL chips (green live / red expiring / gray permanent). Bookmark keys, revisit search history, and add colour tags & notes — stored in a local redb file, zero Redis cost, never leaving the machine.

Bulk Key Operations — multi-select delete, batch TTL, DUMP/RESTORE import/export, auto-refresh.

Multi-select to delete dozens of keys at once; set / remove TTL across a whole selection or prefix (cluster-safe, PROD-escalated); export any selection to a framed binary file (magic header + CRC32) and restore on another instance; and auto-refresh the tree for fast-changing instances.


📦 Installation

Ready to feel the speed? Install Zedis via your favorite package manager:

macOS

The recommended way to install Zedis is via Homebrew:

brew install --cask zedis

Windows

scoop bucket add extras
scoop install zedis

Linux (Arch)

yay -S zedis-bin

Cargo (Cross-Platform via Source)

cargo install --locked zedis-gui

🤝 Contributing

We want to make Zedis the ultimate Redis client, and we'd love your help! Whether it's adding new features, translating the UI, or fixing bugs, all contributions are welcome.

Open an issue or a PR to get started. By submitting a PR, you agree to our lightweight Contributor License Agreement (CLA).

📄 License

Zedis is open-source software licensed under the Apache License, Version 2.0.

About

Zedis: A blazing-fast, native Redis GUI built with Rust and GPUI.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages