# DropOut
DropOut is a modern, fast, and efficient Minecraft launcher built with the latest web and system technologies. It leverages **Tauri v2** to deliver a lightweight application with a robust **Rust** backend and a reactive **Svelte 5** frontend.
## Features
- **High Performance**: Built with Rust and Tauri for minimal resource usage.
- **Microsoft Authentication**: Secure login support via official Xbox Live & Microsoft OAuth flows.
- **Cross-Platform**: Native support for **Windows**, **Linux**, and **macOS**.
- **Modern UI**: Clean and responsive interface built with Svelte 5 and Tailwind CSS 4.
- **Game Management**:
- Version isolation and management
- Efficient asset and library downloading
- Custom Java arguments support
## Roadmap
- [X] **Account Persistence** — Save login state between sessions
- [X] **Token Refresh** — Auto-refresh expired Microsoft tokens
- [X] **JVM Arguments Parsing** — Parse `arguments.jvm` from version.json for Mac M1/ARM support
- [X] **Java Auto-detection** — Scan common paths for Java installations
- [X] **Fabric Loader Support** — Install and launch with Fabric
- [X] **Forge Loader Support** — Install and launch with Forge (basic support)
- [X] **Version Filtering** — Filter by release/snapshot/modded in UI
- [ ] **Instance/Profile System** — Multiple isolated game directories with different versions/mods
- [ ] **Multi-account Support** — Switch between multiple accounts
- [ ] **Custom Game Directory** — Allow users to choose game files location
- [ ] **Launcher Auto-updater** — Self-update mechanism via Tauri updater plugin
- [ ] **Mods Manager** — Enable/disable mods without deletion
- [ ] **Resource Packs Manager** — Browse and manage resource packs
- [ ] **Quilt Loader Support** — Install and launch with Quilt
- [ ] **Import from Other Launchers** — Migration tool for MultiMC/Prism profiles
## Installation
Download the latest release for your platform from the [Releases](https://github.com/HsiangNianian/DropOut/releases) page.
| Platform | Files |
| -------------- | ----------------------- |
| Linux x86_64 | `.deb`, `.AppImage` |
| Linux ARM64 | `.deb`, `.AppImage` |
| macOS ARM64 | `.dmg` |
| Windows x86_64 | `.msi`, `.exe` |
| Windows ARM64 | `.msi`, `.exe` |
## Building from Source
### Prerequisites
1. **Rust**: Install from [rustup.rs](https://rustup.rs/).
2. **Node.js** & **pnpm**: Used for the frontend.
3. **System Dependencies**: Follow the [Tauri Prerequisites](https://v2.tauri.app/start/prerequisites/) for your OS.
### Steps
1. **Clone the repository**
```bash
git clone https://github.com/HsiangNianian/DropOut.git
cd DropOut
```
2. **Install Frontend Dependencies**
```bash
cd ui
pnpm install
cd ..
```
3. **Run in Development Mode**
```bash
# This will start the frontend server and the Tauri app window
cargo tauri dev
```
4. **Build Release Version**
```bash
cargo tauri build
```
The executable will be located in `src-tauri/target/release/`.
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
## License
Distributed under the MIT License. See `LICENSE` for more information.