{"id":29215251,"url":"https://github.com/cubiclauncher/cubiclauncher","last_synced_at":"2026-06-05T01:01:13.597Z","repository":{"id":352243952,"uuid":"1171114824","full_name":"CubicLauncher/CubicLauncher","owner":"CubicLauncher","description":"Nuevo CubicLauncher en Rust para más eficiencia y más personalizado y de código abierto.","archived":false,"fork":false,"pushed_at":"2026-05-31T05:16:53.000Z","size":23538,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-31T06:22:05.574Z","etag":null,"topics":["cubiclauncher","minecraft-launcher","rust-lang"],"latest_commit_sha":null,"homepage":"https://www.cubiclauncher.com/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CubicLauncher.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-02T22:18:18.000Z","updated_at":"2026-05-31T05:16:56.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/CubicLauncher/CubicLauncher","commit_stats":null,"previous_names":["cubiclauncher/cubiclauncher"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/CubicLauncher/CubicLauncher","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CubicLauncher%2FCubicLauncher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CubicLauncher%2FCubicLauncher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CubicLauncher%2FCubicLauncher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CubicLauncher%2FCubicLauncher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CubicLauncher","download_url":"https://codeload.github.com/CubicLauncher/CubicLauncher/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CubicLauncher%2FCubicLauncher/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33926275,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-04T02:00:06.755Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cubiclauncher","minecraft-launcher","rust-lang"],"created_at":"2025-07-03T00:08:55.947Z","updated_at":"2026-06-05T01:01:13.477Z","avatar_url":"https://github.com/CubicLauncher.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"static/images/cubic.svg\" width=\"120\" alt=\"CubicLauncher\" /\u003e\n  \u003ch1\u003eCubicLauncher\u003c/h1\u003e\n\n![License](https://img.shields.io/badge/Licence-GPL--3.0-blue)\n[![dependency status](https://deps.rs/repo/github/cubiclauncher/cubiclauncher/status.svg?path=src-tauri)](https://deps.rs/repo/github/cubiclauncher/cubiclauncher?path=src-tauri)\n![Discord](https://img.shields.io/discord/1366945511273398342)\n![Website](https://img.shields.io/website/https/www.cubiclauncher.com)\n\n\u003c/div\u003e\n\n---\n\n## Descripción\n\n**CubicLauncher** es un launcher de Minecraft multiplataforma construido sobre [Tauri v2](https://tauri.app) + [SvelteKit](https://kit.svelte.dev/) (frontend) y [Rust](https://www.rust-lang.org/) (backend nativo). Gestiona instancias aisladas de Minecraft con soporte para múltiples versiones, loaders de mods (Vanilla, Fabric), autenticación mediante OAuth 2.0 (código de dispositivo de Microsoft) y un sistema modular de comandos Tauri.\n\nEl proyecto está estructurado como un **monorepo** no convencional —el frontend SvelteKit y el backend Tauri coexisten en el mismo repositorio, compartiendo configuración y pipeline de build sin un workspace manager formal.\n\n## Stack tecnológico\n\n| Capa         | Tecnología                                                                          |\n| ------------ | ----------------------------------------------------------------------------------- |\n| Shell nativo | [Tauri v2](https://tauri.app) + Rust                                                |\n| Frontend     | [Svelte 5](https://svelte.dev/) + [SvelteKit](https://kit.svelte.dev/) + TypeScript |\n| Bundler      | [Vite 6](https://vite.dev/)                                                         |\n| Backend      | Rust (edition 2024)                                                                 |\n| Runtime JS   | [Bun](https://bun.sh/)                                                              |\n| Auth         | OAuth 2.0 — flujo de código de dispositivo (Microsoft)                              |\n| Addons       | Modrinth API (consumo desde Rust)                                                   |\n| UI           | Componentes nativos Svelte 5 (sin framework CSS)                                    |\n\n## Arquitectura\n\n```\n┌─────────────────────────────────────────────────┐\n│                  Tauri Shell                      │\n│  ┌──────────────────┐  ┌──────────────────────┐  │\n│  │   Frontend (JS)   │  │   Backend (Rust)      │  │\n│  │   SvelteKit + Vite│  │   src-tauri/src/      │  │\n│  │                   │  │   ├── commands/       │  │\n│  │   state.svelte.ts │◄─┤   ├── services/      │  │\n│  │   (reactividad)   │  │   ├── core/           │  │\n│  └──────────────────┘  │   └── theme_watcher/  │  │\n│         │ Tauri IPC     └──────────────────────┘  │\n│         ▼                                          │\n│  ┌──────────────────────────────────────────────┐ │\n│  │          Sistema de archivos local             │ │\n│  │  (instancias, config, capturas, mods, etc.)   │ │\n│  └──────────────────────────────────────────────┘ │\n└─────────────────────────────────────────────────┘\n```\n\nEl frontend se comunica con el backend Rust exclusivamente mediante **Tauri Commands** (IPC). El estado global reactivo se maneja del lado del frontend con `state.svelte.ts` (runas de Svelte 5). El backend orquesta el ciclo de vida de las instancias (descarga, lanzamiento, gestión de mods) y expone una API de comandos tipados.\n\n## Estructura del proyecto\n\n```\ncubiclauncher/\n├── src/                          # Frontend SvelteKit\n│   ├── app.html                  # Template HTML raíz\n│   ├── routes/\n│   │   ├── +layout.ts            # Layout global\n│   │   └── +page.svelte          # Página principal\n│   └── lib/\n│       ├── api/                  # Capa de comunicación con Tauri\n│       ├── components/           # Componentes Svelte 5\n│       ├── i18n/                 # Internacionalización (es/en)\n│       ├── icons/                # Iconos SVG\n│       ├── state/\n│       │   └── state.svelte.ts   # Estado global reactivo (runas)\n│       ├── types/\n│       │   └── types.ts          # Tipos TypeScript compartidos\n│       └── Logo.svelte\n├── src-tauri/                    # Backend Rust\n│   ├── Cargo.toml                # Manifiesto Rust\n│   ├── tauri.conf.json           # Configuración de Tauri\n│   ├── build.rs                  # Script de build de Tauri\n│   ├── capabilities/             # Permisos Tauri\n│   ├── icons/                    # Íconos de la app\n│   └── src/\n│       ├── main.rs               # Entry point binario\n│       ├── lib.rs                # Biblioteca compartida\n│       ├── commands/             # Comandos Tauri IPC\n│       │   ├── auth.rs           #   Autenticación Microsoft\n│       │   ├── download.rs       #   Descarga de versiones\n│       │   ├── instance.rs       #   CRUD de instancias\n│       │   ├── modrinth.rs       #   Integración Modrinth\n│       │   ├── others.rs         #   Utilidades varias\n│       │   ├── settings.rs       #   Configuración global\n│       │   └── themes.rs         #   Temas visuales\n│       ├── services/             # Lógica de negocio\n│       │   ├── instance_manager.rs\n│       │   ├── launcher.rs       #   Lanzador del proceso Java\n│       │   ├── settings_manager.rs\n│       │   └── addon_manager.rs  #   Gestión de mods\n│       ├── core/                 # Infraestructura\n│       │   ├── errors/           #   Sistema de errores\n│       │   ├── event_bus.rs      #   Bus de eventos interno\n│       │   ├── http_client.rs    #   Cliente HTTP compartido\n│       │   └── path_manager.rs   #   Resolución de rutas\n│       └── theme_watcher/        # Watcher de temas del SO\n├── dist/                         # Distribuciones auxiliares\n│   └── arch/                     # PKGBUILD para Arch Linux\n├── static/                       # Archivos estáticos\n│   └── images/\n├── build/                        # Output de build\n├── vite.config.js                # Configuración de Vite\n├── svelte.config.js              # Configuración de SvelteKit\n├── tsconfig.json                 # TypeScript config\n└── package.json                  # Dependencias y scripts JS\n```\n\n## Primeros pasos\n\n### Prerrequisitos\n\n- [Bun](https://bun.sh/) ≥ 1.x\n- [Rust](https://www.rust-lang.org/tools/install) ≥ 1.85 (edition 2024)\n- [Tauri CLI v2](https://v2.tauri.app/start/prerequisites/)\n\n### Instalación\n\n```bash\ngit clone https://github.com/CubicLauncher/CubicLauncher.git\ncd CubicLauncher\nbun install\n```\n\n### Desarrollo\n\n```bash\n# Inicia el servidor de desarrollo Vite + Tauri\nbun run tauri dev\n```\n\n### Scripts disponibles\n\n| Comando               | Descripción                                   |\n| --------------------- | --------------------------------------------- |\n| `bun run dev`         | Servidor de desarrollo Vite (solo frontend)   |\n| `bun run build`       | Build de producción del frontend              |\n| `bun run preview`     | Preview del build de frontend                 |\n| `bun run check`       | Type-check con `svelte-check`                 |\n| `bun run tauri dev`   | Entorno de desarrollo Tauri (frontend + Rust) |\n| `bun run tauri build` | Build completo de la aplicación Tauri         |\n\n### Dependencias clave\n\n**Rust (Cargo)**:\n\n- `tauri` v2 — shell nativo multiplataforma\n- `launchwerk` — lanzamiento y autenticación de Minecraft [REPO](https://github.com/CubicLauncher/Launchwerk)\n- `aqua` — utilidades compartidas internas [REPO](https://github.com/CubicLauncher/Aqua)\n- `reqwest` + `tokio` — async HTTP y runtime\n- `serde` / `serde_json` — serialización\n- `notify` — file system watcher (tema del SO)\n\n**JavaScript**:\n\n- `@sveltejs/kit` + `svelte` v5 — framework reactivo\n- `vite` v6 — bundler y HMR\n- `@tauri-apps/api` v2 — bridge IPC\n- `@tauri-apps/plugin-dialog`, `plugin-process`, `plugin-updater`\n\n## Compilación\n\n```bash\nbun run tauri build\n```\n\nEl binario compilado se genera en `src-tauri/target/release/`. Consulta la [documentación oficial](https://www.cubiclauncher.com/docs/main.html#desarrollo/compilacion) para builds específicos por plataforma.\n\n## Arch Linux\n\nDescargá solo el [PKGBUILD](dist/arch/PKGBUILD) y compilá (el PKGBUILD ya clona el repo automáticamente):\n\n```bash\nmkdir cubiclauncher-build \u0026\u0026 cd cubiclauncher-build\nwget https://raw.githubusercontent.com/CubicLauncher/CubicLauncher/main/dist/arch/PKGBUILD\nmakepkg -si\n```\n\n\u003e ⚠️ **Compilar localmente es obligatorio.** Los binarios generados por las CI de GitHub (Ubuntu) pueden no ser compatibles con Arch Linux debido a su modelo rolling release.\n\n\u003e ⚠️ **Inestable** — Revisá `dist/arch/IMPORTANTE.md`.\n\n## Comunidad\n\n| Plataforma | URL                                                            |\n| ---------- | -------------------------------------------------------------- |\n| Discord    | [https://discord.gg/7VaqSrPukm](https://discord.gg/7VaqSrPukm) |\n\n## Licencia\n\nDistribuido bajo [GNU General Public License v3.0](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcubiclauncher%2Fcubiclauncher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcubiclauncher%2Fcubiclauncher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcubiclauncher%2Fcubiclauncher/lists"}