Skip to content

Latest commit

 

History

History
88 lines (60 loc) · 3.65 KB

README.md

File metadata and controls

88 lines (60 loc) · 3.65 KB

Centered Image

DFox - ⚡️ Blazing Fast Terminal Database Manager

License GitHub top language

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.