Skip to content

CubesCoders/crust-gui

Repository files navigation

CRust - Project Manager written in Rust with Tauri

CRust is a project manager written in Rust and built using Tauri. It allows you to efficiently manage your projects, workspaces, and project types. With a user-friendly graphical interface, CRust streamlines your project organization and development workflow.

Current Roadmap

Status of cross-platform can be found in this issue

Features

  • Add workspaces with project directories matching project type configurations.
  • Quicksearch for projects to easily locate and access them.
  • Run selected projects with custom run configurations (e.g. with vscode).
  • Manage workspaces by reindexing or deleting them.
  • Add, modify, or delete project types with customizable coloring.
  • Planned features: enhanced workspace indexing, specific project language support (C++, Java, etc.), and more. (see roadmap)

Installation

  1. Download the latest release version of CRust.
  2. Simply run the executable (or platform-specific application) to launch CRust.

Contributing

Contributions to CRust are highly welcome! Whether you're interested in contributing code, suggesting new features, discussing improvements, or participating in project discussions, your input is valuable.

  • Fork this repository and create a new branch for your contributions.
  • Submit pull requests to propose changes or additions.
  • Join discussions in issues to share your ideas and feedback.
  • Feel free to restructure or enhance the project as needed.

License

CRust is licensed under the MPL v2 License. See LICENSE for more details.

Contact

For questions, suggestions, or feedback, feel free to reach out:

The config.json

In the root directory you can find or create a config.json file where the project types are stored. Because there are no pre-defined project types the config will be empty and thus no projects from workspaces will be added. Here is a config.json example that you can use:

{
    "project_types": [
        {
            "id": "0fec17a3-8e64-4e2f-b776-2d021c84a201",
            "name": "rust [bin]",
            "needed_files": ["Cargo.toml", "src/main.rs"],
            "color": "#f74b00",
            "run_config_id": ""
        },
        {
            "id": "cacf267a-308b-49f1-b391-5e34725273cd",
            "name": "rust [lib]",
            "needed_files": ["Cargo.toml", "src/lib.rs"],
            "color": "#f74b00",
            "run_config_id": ""
        },
        {
            "id": "2e861659-9ec2-4c49-9dfe-4b09d6083b03",
            "name": "godot",
            "needed_files": ["project.godot"],
            "color": "#4489bb",
            "run_config_id": ""
        },
        {
            "id": "e60824b0-69ee-4ee4-801a-3ad645c8b5f0",
            "name": "tauri",
            "needed_files": [
                "src-tauri/tauri.conf.json",
                "src-tauri/src/main.rs",
                "src-tauri/Cargo.toml"
            ],
            "color": "#23a8b7",
            "run_config_id": ""
        }
    ],
    "run_configs": [
        { "id": "0", "name": "vscode", "commands": "code $PPATH" },
        {
            "id": "1",
            "name": "tauri",
            "commands": "code $PPATH\ncode $PPATH/src-tauri"
        }
    ]
}

Galerie

This is how it will look like on startup if you have (active) workspaces startup

You can just start to type if the window has focus. The first entry will be selected with the arrow keys you can navigate up and down. When the enter key is pressed the selected project will start in vscode search

Here are some settings that will be more or less self-explanatory (Note: There are no predefined project types add some to successfully add projects from workspaces)