Skip to content

This is a Rust-based database management tool that provides a terminal user interface (TUI) for interacting with PostgreSQL and MySQL databases. It allows users to perform database operations easily and efficiently through a simple and intuitive interface.

Notifications You must be signed in to change notification settings

markraiter/dfox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DFox

DFox is a Rust-based database management tool that provides a terminal user interface (TUI) for interacting with PostgreSQL and MySQL databases. It allows users to perform database operations easily and efficiently through a simple and intuitive interface.

Features

  • Connect to multiple database types: PostgreSQL, MySQL, (SQLite still in development).
  • User-friendly terminal interface for managing database connections and performing CRUD operations.
  • Dynamic rendering of database schemas and table data.
  • Easily extendable for additional database types and features.

Project Structure

The project is organized as a Cargo workspace consisting of two main components:

  • dfox-core: The core library responsible for database operations. It includes implementations for MySQL, PostgreSQL, and SQLite clients, as well as data models and error handling.
  • dfox-tui: The command-line interface for user interaction. It contains the main functions for launching the application, along with UI components and event handlers.

How It Works

  1. Database Type Selection
    Upon starting the application, the user is presented with a menu to select the database type (PostgreSQL, MySQL, or SQLite). Use the up/down keys to navigate and Enter to confirm your choice.
    Database Type Selection

  2. Connection Input Screen
    After selecting the database type, the user is prompted to input the connection details such as hostname, port, username, and password.
    Connection Input Screen

  3. Database Selection
    Once connected, a list of available databases is displayed. The user can choose the database to interact with.
    Database Selection

  4. Table View
    The application dynamically renders the list of tables available in the selected database.
    Table View

  5. Describe Table
    The user can select a table to view its schema, displayed in a tree-like structure, including column names, types, and constraints.
    Describe Table

  6. Query Execution and Results
    The user can execute SQL queries and view the results in the TUI.
    Query Result

  7. Error Handling
    If there is an error with the query or database operation, an error message is displayed in the interface.
    Query Error

Installation

To build and run the project, ensure you have Rust installed. Clone the repository and use Cargo to build the project:

git clone https://github.com/markraiter/dfox.git
cd dfox
cargo build

Usage

After building the project, you can run the TUI application with the following command:

cargo run --bin dfox-tui

Contributing

Contributions are welcome! If you would like to contribute to DFox, please follow these steps:

  1. Fork the repository.
  2. Create your feature branch (git checkout -b feature/my-feature).
  3. Commit your changes (git commit -m 'Add some feature').
  4. Push to the branch (git push origin feature/my-feature).
  5. Open a pull request.

Acknowledgments

Thanks to the Ukrainian Rust Community for their incredible support and resources.

About

This is a Rust-based database management tool that provides a terminal user interface (TUI) for interacting with PostgreSQL and MySQL databases. It allows users to perform database operations easily and efficiently through a simple and intuitive interface.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages