You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor: major codebase restructure and safety improvements
- Split monolithic main.rs into organized modules (app, network, ui, utils)
- Extract all magic numbers into named constants
- Add comprehensive bounds checking to prevent panics
- Implement network overflow detection for counter resets
- Fix division by zero in memory percentage calculations
- Add proper error handling with structured logging
- Cache expensive operations between refresh intervals
- Remove redundant Panel struct and simplify state management
- Add rate limiting for manual refresh operations
- Improve navigation with backspace key support
- Standardize error messages and clean up dead code
- Update README to align with changes
A real-time terminal-based system monitor built with Rust and ratatui. Gribble provides live system metrics, process management, file browsing, and network traffic visualization in a keyboard-driven interface.
3
+
A terminal-based system monitor built with Rust and ratatui. Provides real-time system metrics, process management, file browsing, and network traffic visualization.
4
4
5
5

6
6
7
7
## Features
8
8
9
-
-**System Monitoring**: Real-time CPU usage with progress bars, memory statistics, system uptime, and architecture details
10
-
-**Process Management**: Interactive process viewer with CPU and memory usage, sortable by resource consumption
11
-
-**File Explorer**: Navigate filesystem with keyboard controls, directory traversal with visual indicators
12
-
-**Network Traffic**: Live network monitoring with sparkline graphs, cycle through multiple network interfaces
13
-
-**Keyboard Navigation**: Vim-style navigation (hjkl) plus arrow keys, page navigation (PgUp/PgDn), and jump keys (Home/End)
9
+
- Real-time CPU and memory monitoring with visual progress bars
10
+
- Interactive process viewer sorted by resource usage
11
+
- File system navigation with keyboard controls
12
+
- Network traffic visualization with sparkline graphs
13
+
- Multi-interface network monitoring
14
+
- Vim-style keyboard navigation
14
15
15
16
## Installation
16
17
@@ -37,45 +38,41 @@ cargo run
37
38
38
39
### Navigation
39
40
40
-
-`←→` or `h l` - Switch between panels
41
+
-`←→` or `h l` - Switch between panels
41
42
-`↑↓` or `j k` - Navigate within lists, cycle network interfaces
42
43
-`PgUp/PgDn` - Jump by page in lists
43
44
-`Home/End` - Jump to first/last item in lists
44
45
-`Enter` - Open directories in File Explorer
46
+
-`Backspace` - Go up one directory
45
47
-`r` - Refresh all data
46
48
-`?` - Show/hide help
47
49
-`q` or `Esc` - Quit
48
50
49
51
### Panels
50
52
51
-
1.**System Monitor** - CPU usage with visual bars, memory statistics, process count, system information
53
+
1.**System Monitor** - CPU usage, memory statistics, process count, system information
52
54
2.**System Status** - Current time/date, disk usage, network interface statistics, system load
53
-
3.**Process Manager** - Live process list sorted by CPU usage, full navigation support
54
-
4.**File Explorer** - Directory browser with folder/file icons, full navigation support
55
-
5.**Network Graph** - Real-time network traffic with interface cycling, separate RX/TX sparkline graphs
55
+
3.**Process Manager** - Live process list sorted by CPU usage
56
+
4.**File Explorer** - Directory browser with folder/file icons
57
+
5.**Network Graph** - Real-time network traffic with interface cycling
56
58
57
59
## Technical Details
58
60
59
61
- Built with ratatui for terminal UI rendering
60
62
- Uses sysinfo for cross-platform system metrics
61
-
- Implements proper scrolling for long lists
62
63
- Updates system data every 2 seconds
63
-
- Maintains 60-point history for network graphs (2 minutes of data)
64
+
- Maintains 60-point history for network graphs
64
65
- Cross-platform support (Windows, macOS, Linux)
65
-
-Smart memory and network formatting (KB/MB/GB units)
66
-
-Robust bounds checking and overflow protection
67
-
- String truncation for long process/file names
66
+
-Memory and network formatting with appropriate units
0 commit comments