https://github.com/honhimw/ratisui
Redis TUI build with Ratatui
https://github.com/honhimw/ratisui
command-line-tool ratatui redis rust tui
Last synced: about 2 months ago
JSON representation
Redis TUI build with Ratatui
- Host: GitHub
- URL: https://github.com/honhimw/ratisui
- Owner: honhimW
- License: mit
- Created: 2024-08-30T10:44:24.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-08-08T19:06:37.000Z (about 2 months ago)
- Last Synced: 2025-08-08T21:22:53.993Z (about 2 months ago)
- Topics: command-line-tool, ratatui, redis, rust, tui
- Language: Rust
- Homepage:
- Size: 2.62 MB
- Stars: 30
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ratisui

- [Installation](#Installation)
- [Package Manager](#package-manager)
- [Windows](#Windows)
- [Mac](#Mac)
- [Cargo](#Cargo)
- [Download](#download)
- [Quick Start](#quick-start)
- [Configuration](#data-storage)
- [Features](#Features)## Installation
### Shell
```shell
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/honhimW/ratisui/main/scripts/install.sh | sh
```### Package Manager
#### Windows
##### WinGet
```shell
winget install HonhimW.Ratisui
```#### Mac
##### Homebrew Tap
```shell
brew install honhimW/tap/ratisui
```### Cargo
```shell
cargo install --git=https://github.com/honhimW/ratisui.git
```### Download
> Currently, only linux_x86_64/linux_aarch64/macOS_aarch64/windows_x86_64 is automatically available.
> If you **need** other platforms, you may try to build via [GitHub Actions](./.github/workflows/build-specified-target.yml).
> Please **note** that not all platforms can guarantee successful compilation and normal operation.[Github Release](https://github.com/honhimW/ratisui/releases)
### Build from source
```shell
# clone repo
git clone https://github.com/honhimW/ratisui.git
# enter
cd ratisui
# build and run
cargo run
```## Quick Start
> create a data source
1. Press 's' (open server popup)
2. Press 'c' (create data source)
3. config data source
4. Press 'Enter' for confirm
5. select data source
6. Press 'Esc' (close data source popup)
7. Enjoy!> save configuration, auto save on exit
## Data storage
User's data will be stored in `~/.config/ratisui/`:### Application Configuration
```ron
// ~/.config/ratisui/config.ron
(
fps: 45, // tui render fps limitation
scan_size: 500, // redis key scan size,
try_format: false, // fotmat raw data
theme: Some("your-theme"), // ~/.config/ratisui/theme/your-theme.ron
history_size: 1000, // ~/.config/ratisui/cli.history
cli_output_format: Redis, // Redis(default) | Ron
console_capacity: 2000, // CLI output capacity, default as 3000
)
```
### Databases Configuration
```ron
// ~/.config/ratisui/databases.ron
(
default_database: Some("remote standalone"),
databases: {
"remote standalone": (
host: "standalone.host",
port: 6379,
username: Some("foo"),
password: Some("bar"),
use_tls: false,
use_ssh_tunnel: false,
db: 0,
protocol: RESP3,
),
"remote cluster": ( // Cluster mode automatically detected
host: "cluster.host",
port: 6000,
username: None,
password: Some("password"),
use_tls: false,
use_ssh_tunnel: false,
db: 0,
protocol: RESP3,
),
},
)
```
### Themes Configuration> [!NOTE]
>
> See [Theme template](./assets/theme-template.ron) for more details.
```ron
// ~/.config/ratisui/theme/your-theme.ron
(
kind: Dark,
toast: (
info: Tailwind(GREEN, C700),
warn: Yellow,
error: Rgb(255, 0, 0),
),
)
```## Features
**Connection mode**
- [x] standalone mode
- [x] cluster mode**Data Type**
- [x] String
- [x] List
- [x] Set
- [x] Sorted Set
- [x] Hash
- [x] Stream
- [x] ReJson
- [x] TSDB-TYPE**Explorer**
- [x] Key scan (Fuzzy/Pattern)
- [x] Keys tree
- [x] Key create, rename, delete
- [x] Async query & render
- [x] Highlight & format for raw data
- [x] UTF-8/Hex deserialization
- [x] Java deserialization ([jaded](https://crates.io/crates/jaded))
- [x] Protobuf deserialization ([protobuf](https://crates.io/crates/protobuf))
- [x] JSON highlighter ([tree-sitter-json](https://crates.io/crates/tree-sitter-json))
- [x] XML highlighter ([tree-sitter-html](https://crates.io/crates/tree-sitter-html))
- [x] RON highlighter ([tree-sitter-ron](https://crates.io/crates/tree-sitter-ron))
- [x] Table view for list, set, sorted set, hash, stream, TimeSeries
- [x] RedisSearch, completion for indexes/FT.SEARCH**Command line tool**
- [x] Auto Completion
- [x] Command history
- [x] Command execution
- [x] Monitor/(P)Subscribe listening
- [x] Output format: Redis | Ron
- [x] Redis8+**Misc**
- [x] Logger viewer([TuiLogger](https://crates.io/crates/tui-logger))
- [x] Non-blocking command execution
- [x] Configuration persistence
- [x] Use SSH tunnel([russh](https://crates.io/crates/russh))
- [x] Connection pool([deadpool-redis](https://crates.io/crates/deadpool-redis))
- [x] Configurable theme**TODO**
- [ ] reduces binary size
- [ ] nothing to do...🤔