📌 Overview
Currently, bdstorage operates as a pure command-line interface (CLI) tool, where outputs are displayed as plain text logs and tables. While functional, navigating large deduplication vaults, analyzing storage usage, and managing duplicate files can become difficult and unintuitive for users.
This feature proposes building a fully interactive Terminal User Interface (TUI) using the Rust crate Ratatui to provide a modern, keyboard-driven vault management experience directly inside the terminal.
The TUI will allow users to visually explore their storage vaults, inspect deduplicated files, compare duplicate groups, monitor storage statistics in real time, and perform selective restore/delete actions efficiently.
🎯 Goals
- Improve accessibility and usability of bdstorage
- Provide visual insights into vault storage usage
- Make deduplication analysis intuitive
- Enable keyboard-driven file management workflows
- Create a polished developer experience suitable for demos and portfolio showcases
✨ Proposed Features
1️⃣ Interactive Dashboard
A real-time dashboard displaying:
- Total vault size
- Space saved via deduplication
- Number of unique files
- Duplicate groups count
- Compression/dedup ratio
- Recently added files
Possible UI layout:
+--------------------------------------------------+
| Vault: ~/backup_vault |
|--------------------------------------------------|
| Total Size: 1.2 TB |
| Space Saved: 430 GB |
| Duplicate Groups: 184 |
| Unique Chunks: 8.2M |
+--------------------------------------------------+
2️⃣ File Explorer Navigation
Users should be able to:
Keyboard shortcuts:
| Key |
Action |
| ↑ ↓ |
Navigate |
| Enter |
Open folder/file |
| / |
Search |
| d |
Delete |
| r |
Restore |
| q |
Quit |
3️⃣ Duplicate Group Visualization
A dedicated panel for viewing identical files side-by-side.
Example:
Duplicate Group #42
├── /photos/backup/img001.jpg
├── /downloads/img001_copy.jpg
└── /archive/2024/img001.jpg
Features:
- Highlight original vs duplicate
- Show chunk similarity metrics
- Preview metadata
- Quick delete/restore actions
4️⃣ Storage Analytics Panel
Visual analytics directly in terminal:
- Top space-consuming directories
- Largest duplicate sets
- Deduplication efficiency
- Chunk distribution statistics
Potential use of:
- progress bars
- sparklines
- mini charts
5️⃣ Restore & Delete Workflow
Interactive workflows for:
- selective restore
- safe deletion
- bulk operations
- confirmation prompts
- undo queue (optional)
6️⃣ Live Activity / Logs Panel
Real-time event monitoring:
- active scans
- chunking progress
- restore operations
- error reporting
- indexing status
🛠 Technical Implementation
Suggested Stack
| Component |
Technology |
| TUI Framework |
Ratatui |
| Terminal Backend |
Crossterm |
| Async Runtime |
Tokio |
| State Management |
Rust structs + async channels |
| File Watching (Optional) |
notify crate |
🧱 Suggested Architecture
src/
├── tui/
│ ├── app.rs
│ ├── ui.rs
│ ├── events.rs
│ ├── state.rs
│ ├── widgets/
│ └── keybindings.rs
│
├── services/
│ ├── vault.rs
│ ├── dedup.rs
│ └── restore.rs
│
└── main.rs
📷 Suggested Screens for Demo
- Dashboard View
- Duplicate Explorer
- Storage Heatmap
- Restore Confirmation Screen
- Search & Filter Interface
- Live Dedup Scan Progress
🔥 Why This Feature Matters
Developer Experience
- Makes bdstorage visually impressive
- Easier debugging and monitoring
- More approachable for new users
Portfolio Value
A polished Rust TUI demonstrates:
- systems programming
- async architecture
- state management
- terminal rendering
- UX engineering
📈 Expected Impact
| Metric |
Impact |
| User Accessibility |
High |
| Visual Appeal |
Very High |
| Contributor Interest |
High |
| Demo/Portfolio Quality |
Excellent |
✅ Acceptance Criteria
🧪 Bonus Enhancements (Optional)
🏷 Labels
NSoC'26
GSSoC'26
📌 Overview
Currently, bdstorage operates as a pure command-line interface (CLI) tool, where outputs are displayed as plain text logs and tables. While functional, navigating large deduplication vaults, analyzing storage usage, and managing duplicate files can become difficult and unintuitive for users.
This feature proposes building a fully interactive Terminal User Interface (TUI) using the Rust crate Ratatui to provide a modern, keyboard-driven vault management experience directly inside the terminal.
The TUI will allow users to visually explore their storage vaults, inspect deduplicated files, compare duplicate groups, monitor storage statistics in real time, and perform selective restore/delete actions efficiently.
🎯 Goals
✨ Proposed Features
1️⃣ Interactive Dashboard
A real-time dashboard displaying:
Possible UI layout:
2️⃣ File Explorer Navigation
Users should be able to:
Browse directories interactively
Expand/collapse folders
Search files instantly
Sort by:
Keyboard shortcuts:
3️⃣ Duplicate Group Visualization
A dedicated panel for viewing identical files side-by-side.
Example:
Features:
4️⃣ Storage Analytics Panel
Visual analytics directly in terminal:
Potential use of:
5️⃣ Restore & Delete Workflow
Interactive workflows for:
6️⃣ Live Activity / Logs Panel
Real-time event monitoring:
🛠 Technical Implementation
Suggested Stack
🧱 Suggested Architecture
📷 Suggested Screens for Demo
🔥 Why This Feature Matters
Developer Experience
Portfolio Value
A polished Rust TUI demonstrates:
📈 Expected Impact
✅ Acceptance Criteria
bdstorage tui🧪 Bonus Enhancements (Optional)
🏷 Labels
NSoC'26GSSoC'26