Cliente desktop construído com Tauri para consumir payloads compatíveis, baixar jogos via magnet link, extrair automaticamente e organizar a biblioteca local no Windows.
| Plataforma | Engine | Frontend | Runtime | Status |
|---|---|---|---|---|
Clique para expandir/recolher
- 📖 Sobre o Projeto
⚠️ Compatibilidade- 🧭 Fluxo Completo Do Produto
- ✨ Recursos Principais
- 🧠 Como O Fluxo Funciona
- 🧱 Stack Atual
- 📦 Binários Externos
- 🖥️ Plataforma Suportada
- 🗂️ Estrutura Do Projeto
- ⚙️ Configuração Local
- 🚀 Desenvolvimento
- 📦 Build E Release
- 🧠 Comportamentos Técnicos
- 🛠️ Notas Operacionais
⚠️ Aviso Legal- 📜 Licença
O Gaming Rumble é o client desktop principal do ecossistema.
Ele automatiza todo o fluxo de instalação dos jogos:
- Recebe payloads via protocolo
gaming-rumble:// - Decodifica informações do jogo em Base64
- Executa downloads via BitTorrent usando
aria2c - Extrai automaticamente os arquivos do jogo
- Detecta executáveis principais
- Organiza a biblioteca local com persistência em
SQLite - Cria atalhos automaticamente
- Monitora sessões iniciadas pelo launcher
- Mantém gerenciamento persistente da biblioteca
- Importa automaticamente bibliotecas legadas em
JSONno primeiro boot compatível e finaliza a transição paraSQLite
O foco do projeto é reduzir atrito e automatizar processos repetitivos.
Warning
Este client foi desenvolvido especificamente para o ecossistema Gaming Rumble.
Atualmente o fluxo suportado é baseado no indexador vindo de online-fix.me.
Magnet links aleatórios ou payloads externos podem não funcionar corretamente.
Não existe garantia de compatibilidade fora do fluxo oficial do projeto.
flowchart LR
A["🌐 Browser / Discord"] --> B["🚀 gaming-rumble://"]
B --> C["📦 Decode Payload"]
C --> D["⚙️ Setup"]
D --> E["⬇️ aria2c Download"]
E --> F["📂 7-Zip Extract"]
F --> G["🧠 Detect Executable"]
G --> H["🎮 Local Library"]
H --> I["🚀 Launch Game"]
| Feature | Descrição |
|---|---|
gaming-rumble:// |
Protocolo customizado para instalação automática |
| Download BitTorrent | Download com progresso em tempo real |
| Biblioteca Persistente | Jogos instalados ficam registrados localmente em SQLite |
| Auto Extract | Extração automática pós-download |
| Fix Only | Baixa apenas o fix quando necessário |
| Auto Shortcut | Cria atalhos automaticamente |
| System Tray | Fecha para tray e restaura o launcher rapidamente |
| Playtime Tracking | Monitora tempo jogado das sessões iniciadas pelo app |
| Resume Support | Pausa e retomada de download |
| Disk Validation | Verifica espaço disponível antes da instalação |
| Error Handling | Tratamento separado para download e extração |
| Executable Detection | Detecta automaticamente o executável principal |
O navegador ou app intermediário envia um payload Base64:
{
"title": "Nome do Jogo",
"banner": "https://shared.akamai.steamstatic.com/.../header.jpg",
"parts": 4,
"fileSize": "551.10 MB",
"magnet": "magnet:?xt=urn:btih:..."
}1. Browser abre gaming-rumble://
2. Tauri recebe a URI
3. Payload é decodificado
4. Usuário confirma instalação
5. aria2c inicia o torrent
6. 7-Zip extrai os arquivos
7. O executável principal é detectado
8. O jogo entra na biblioteca
9. Atalhos são criados automaticamente|
React 19 |
TypeScript |
Tauri 2 |
Tailwind 4 |
Rust |
SQLite |
Prisma |
| Binário | Status | Finalidade |
|---|---|---|
aria2c.exe |
Bundled | Download BitTorrent |
7-ZIP/ |
Bundled | Extração de arquivos |
WebView2 |
Runtime | Renderização da UI |
| Sistema | Status |
|---|---|
| Windows 10 | ✅ Suportado |
| Windows 11 | ✅ Suportado |
| Linux | ❌ Não suportado oficialmente |
| macOS | ❌ Não suportado oficialmente |
O projeto atual foi desenvolvido e empacotado exclusivamente com foco em Windows.
Gaming Rumble/
├── prisma/
│ ├── migrations/
│ └── schema.prisma
├── src/
│ ├── App.tsx
│ ├── payload.ts
│ ├── types.ts
│ └── components/
│ ├── Layout/
│ └── Views/
├── src-tauri/
│ ├── src/
│ │ └── commands/
│ └── tauri.conf.json
├── public/
├── .github/workflows/
└── README.md| Caminho | Conteúdo |
|---|---|
src/ |
Frontend React |
src/components/Views/ |
Telas do aplicativo |
src-tauri/src/commands/ |
Comandos nativos em Rust |
prisma/ |
Schema e migrações da biblioteca local |
payload.ts |
Decode e parsing do protocolo |
tauri.conf.json |
Configuração principal |
.github/workflows/ |
Build e release CI/CD |
| Ferramenta | Necessária |
|---|---|
| Node.js LTS | Sim |
| Rust / rustup | Sim |
| Windows 10/11 | Sim |
npm install
npm run prisma:generatenpm run tauri devnpm run tauri buildOs builds são gerados em:
src-tauri/target/release/bundle/msi/
src-tauri/target/release/bundle/nsis/flowchart LR
A["📦 Push na main"] --> B["⚙️ GitHub Actions"]
B --> C["📥 Install Node.js"]
C --> D["🦀 Install Rust"]
D --> E["🪟 Install WebView2"]
E --> F["🔨 Build Tauri"]
F --> G["📦 Generate MSI / NSIS"]
G --> H["🚀 GitHub Release"]
O workflow automatiza:
- instalação do ambiente
- geração dos bundles
- upload de artefatos
- criação de releases
| Sistema | Função |
|---|---|
| Download State | Persistência local de progresso |
| Event System | Eventos Tauri para logs e progresso |
| Library Manager | Gerenciamento local da biblioteca em SQLite |
| Extract Pipeline | Pipeline separada de extração |
| Launcher Detection | Busca automática do executável |
| Tray Runtime | Minimização para tray e restauração do launcher |
| Session Tracking | Monitoramento de processo e tempo jogado |
- O app utiliza janela customizada sem decoração nativa
- O botão de fechar envia o launcher para o tray em vez de encerrar imediatamente
- O estado dos downloads sobrevive a reload durante desenvolvimento
- A biblioteca é mantida localmente pelo client com banco
SQLite - Bibliotecas antigas em
library.jsonsão migradas automaticamente uma única vez quando encontradas e depois deixam de ser usadas - O fluxo foi desenhado para integração com o ecossistema Gaming Rumble
- O projeto não pretende ser um client torrent genérico
Warning
Este software é fornecido "AS IS", sem garantias de qualquer tipo.
- O projeto não hospeda conteúdo protegido
- O app apenas automatiza download, extração e gerenciamento
- Não existe suporte para conteúdo acessado pelo usuário
- O uso é por conta e risco do usuário final
- Toda responsabilidade sobre conteúdo acessado pertence ao usuário
Este repositório é disponibilizado apenas para fins educacionais e de pesquisa.
Veja a licença completa e o aviso legal em LICENSE.
