A universal Terminal User Interface (TUI) client for database management with Vim-like interactions.
Warning: This project is in the beginning stages of development and has an unstable API and workflow.
- PostgreSQL support - Partial integration with Postgres databases
- Operations - Read, create, update, and delete functionality for PostgreSQL databases
- Redis support - Full integration with Redis databases
- MySQL support - Complete MySQL database management
- UI improvements - Better UI interactions (for example: horizontal scrolling)
- UX improvements - For example: get notification about any error instead of fall to panic
# Clone the repository
git clone https://github.com/HeavyPunk/dbclient.git
cd dbclient
# Build the project
make build
# Or install directly
make installdbclient --config-path config.tomlj|k|↑|↓- Navigate through connectionsEnter- Go to query page with selected connection<Esc>- Quit
- Database objects widget:
j|k|↑|↓- Navigate through objects<Space>- Open object sub-tree<Enter>- Get all items in selected objectl|→- Go to query result widget<Esc>- Quit to main page
- Query result widget:
j|k|↑|↓- Navigate through recordsh|←- Go to database objects widgetgg- Go to the first recordG- Go to the last recorda- Open popup to add record into database objecti- Open popup to modify record of database objectdd- Remove record of database object<Esc>- Quit
- Popup:
j|k|↑|↓- Navigate through fieldsi- Activate insert mode for selected field<Esc>in insert mode - Activate normal navigation mode through fields<Esc>in normal mode - Close popup<Enter>in normal mode - Apply operation
Create a configuration file any directory:
[[connections]]
connection_type = "Postgres"
name = "local"
connection_string = "postgresql://user:password@localhost/postgres?connect_timeout=10"- rustc >= 1.87.0
- cargo >= 1.87.0
- Terminal with UTF-8 support
# Build
cargo build --release --target-dir ./build
# Run tests
cargo testContributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with iocraft TUI framework
- Inspired by various database GUI clients