{"id":15030960,"url":"https://github.com/shubham0850/aishell","last_synced_at":"2025-04-09T22:41:16.368Z","repository":{"id":257137495,"uuid":"857421835","full_name":"Shubham0850/AIShell","owner":"Shubham0850","description":"AI Shell is a simple GUI-based terminal application built with Rust 🦀 and the iced ❄️ GUI library. It allows users to enter shell commands 💻 and view the output within a graphical interface 🖥️.","archived":false,"fork":false,"pushed_at":"2024-09-15T06:32:14.000Z","size":1128,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T00:38:14.799Z","etag":null,"topics":["ai","cargo","iced-rs","rust","rust-lang","shell","terminal"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Shubham0850.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-14T16:04:37.000Z","updated_at":"2025-02-01T10:14:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"49e0dbd3-e842-472e-8498-e401f3005efa","html_url":"https://github.com/Shubham0850/AIShell","commit_stats":null,"previous_names":["shubham0850/aishell"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shubham0850%2FAIShell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shubham0850%2FAIShell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shubham0850%2FAIShell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shubham0850%2FAIShell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Shubham0850","download_url":"https://codeload.github.com/Shubham0850/AIShell/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248124848,"owners_count":21051757,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","cargo","iced-rs","rust","rust-lang","shell","terminal"],"created_at":"2024-09-24T20:14:37.242Z","updated_at":"2025-04-09T22:41:16.348Z","avatar_url":"https://github.com/Shubham0850.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AI Shell 🚀\n\n![AI Shell Screenshot](https://github.com/Shubham0850/AIShell/blob/main/resources/AIShell-SS.png)\n\nAI Shell is a simple GUI-based terminal application built with Rust 🦀 and the [iced](https://github.com/iced-rs/iced) ❄️ GUI library. It allows users to enter shell commands 💻 and view the output within a graphical interface 🖥️.\n\n## Why Rust ?\nHere's an updated table focusing on the **Size** aspect, incorporating typical application sizes:\n\n| **Aspect**  | **Rust**                                               | **C++**                                              | **Go**                                               | **Python (PyInstaller)**                             | **Java (JAR files)**                                 | **Electron (JavaScript)**                            |\n|-------------|--------------------------------------------------------|------------------------------------------------------|------------------------------------------------------|------------------------------------------------------|------------------------------------------------------|------------------------------------------------------|\n| **Size**    | - **~8.3 MB** (as in your app)\u003cbr\u003e- Produces small, standalone binaries without large runtimes | - ~10-15 MB\u003cbr\u003e- Can produce small binaries but may require manual optimization | - ~10-20 MB\u003cbr\u003e- Includes garbage collector, slight overhead | - ~20-30 MB\u003cbr\u003e- Requires bundling interpreter and libraries | - ~50-100 MB\u003cbr\u003e- Requires JVM, adds overhead | - ~50-150 MB\u003cbr\u003e- Includes Chromium and Node.js runtime, leading to large sizes |\n\n**Key Takeaways:**\n\n- **Rust's Small Binary Size:** Your 8.3MB application showcases Rust's efficiency in producing compact binaries, which is especially beneficial for distribution, faster downloads, and reduced storage requirements.\n  \n- **Comparison with Other Frameworks:**\n  - **Python:** Applications bundled with tools like PyInstaller often exceed 20 MB because they need to include the Python interpreter and all dependencies.\n  - **Java:** Java applications require the Java Virtual Machine (JVM), adding significant overhead and increasing the overall size.\n  - **Electron:** Apps built with Electron can easily exceed 50 MB because they bundle a Chromium browser and Node.js runtime.\n\n- **No Need for Large Runtimes:** Rust compiles directly to machine code, eliminating the need for a virtual machine or interpreter at runtime, which contributes to smaller application sizes.\n\n## Features ✨\n\n- **Command Execution**: Enter shell commands 💻 and view their output in a scrollable window 📜.\n- **Graphical User Interface**: Built using the `iced` ❄️ library for a modern and responsive GUI 🖥️.\n- **Splash Screen**: Displays a splash screen 🎉 on startup.\n- **Custom Application Icon**: Includes a custom icon 🖼️ when running on macOS 🍎.\n\n## Technologies Used 🛠️\n\n- **Rust** 🦀: A systems programming language focused on safety 🛡️ and performance 🚀.\n  - Version: `1.56` or later (edition 2021)\n- **[iced](https://github.com/iced-rs/iced)** ❄️: A cross-platform GUI library for Rust, inspired by Elm 🌳.\n  - Version: `0.12.1`\n  - Features Used:\n    - `canvas` 🎨\n    - `tokio` ⚡\n- **[cargo-bundle](https://crates.io/crates/cargo-bundle)** 📦: A tool for bundling Rust applications into distributable formats.\n  - Used to create a macOS 🍎 application bundle (`.app`) with a custom icon 🖼️.\n- **[winit](https://crates.io/crates/winit)** 🪟: A window handling library in Rust.\n  - Used indirectly through `iced` ❄️ for window management and setting the application icon 🖼️.\n\n### Project Structure 🗂️\n\n```\nai_shell/\n├── Cargo.toml\n├── resources/\n│   ├── AppIcon.icns       # Application icon 🖼️ for macOS bundling\n│   ├── icon.png           # Icon image 🖼️ used in the application\n│   └── splash.png         # Splash screen image 🎉 (optional)\n└── src/\n    ├── executor.rs        # Module handling command execution 💻\n    └── main.rs            # Main application code 🖥️\n```\n\n### Building and Running 🏗️\n\n1. **Clone the Repository** 📥:\n   ```bash\n   git clone https://github.com/shubham0850/AIShell.git\n   cd AIShell\n   ```\n\n2. **Build the Application** 🛠️:\n   ```bash\n   cargo build\n   ```\n\n3. **Run the Application** ▶️:\n   ```bash\n   cargo run\n   ```\n\n   For development with live reloading ♻️:\n   ```bash\n   cargo install cargo-watch\n   cargo watch -x run\n   ```\n\n4. **Build the Application for Distribution** 📦:\n   ```bash\n   cargo install cargo-bundle  # Install cargo-bundle if not already installed\n   cargo bundle --release      # Build and bundle the application\n   ```\n\n   This command will create a bundled application in the `target/release/bundle/` directory, including a macOS `.app` bundle with the custom icon 🖼️ specified in `Cargo.toml`.\n\n## License 📄\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments 🙏\n\n- Thanks to the [iced](https://github.com/iced-rs/iced) ❄️ community for providing an excellent GUI library for Rust 🦀.\n\n## Contact 📬\n\n- **Author**: Shubham Raj\n- **Email**: rajshubham0850@gmail.com\n- **GitHub**: [Shubham0850](https://github.com/Shubham0850)\n- **LinkedIn**: [Shubham Raj](https://www.linkedin.com/in/shubham0850/)\n\n---\n\nFeel free to customize this README to better suit your project. Include any additional sections or information that you think would be helpful for users and contributors.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshubham0850%2Faishell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshubham0850%2Faishell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshubham0850%2Faishell/lists"}