Aller au contenu

hydra : Une application Electron entre plusieurs processus

Ce fork Hydra est un lanceur desktop avec Electron et React. Sa compilation comprend aussi un module natif et un composant RPC Python. Ces frontières expliquent la présence de plusieurs chaînes d’outils.

Application et outils Fork
  • Mis à jour
  • TypeScript · 81.85%
  • MIT
Crédit amont
Langages du dépôtTypeScript 81.85%7

Parts calculées à partir des octets GitHub Linguist.

Langage%Octets
TypeScript81.85%5 693 766
SCSS10.64%739 993
Rust6.46%449 445
Python0.55%38 598
JavaScript0.49%33 740
HTML0.01%981
1 autres langages
NSIS0%119

GitHub · README · Statistiques de langages

Aperçu

Pourquoi il existe

Application de bureau orchestrant métadonnées et gestion de ludothèque.

Cas d’usage

Lanceur et gestionnaire de jeux open source.

Démarrage

Ces commandes viennent de la documentation du dépôt. Elles n’ont pas été exécutées pendant cette revue.

Commandes déclarées dans les manifestes

package.json

test
node --import ./scripts/register-ts-node.mjs --test "src/**/*.test.ts"
lint
eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix
typecheck
npm run typecheck:node && npm run typecheck:web
start
electron-vite preview
dev
electron-vite dev
build
npm run typecheck && electron-vite build

Références du dépôt

Extraits des guides du dépôt, dans leur langue d’origine. Les liens ouvrent la version du code consultée.

Prérequis et premier essai

Build from source and contributing

README.md

Please, refer to our Documentation pages: docs.hydralauncher.gg
Lire les instructions complètes ↗

Local development requirements

README.md

  • Node.js + Yarn
  • Python 3.9+ with pip install -r requirements.txt
  • Rust toolchain (for hydra-native) After installing dependencies, postinstall now builds the Rust native addon automatically (hydra-native/hydra-native.node). Packaging scripts (yarn build:win, yarn build:mac, yarn build:linux, yarn build:unpack) now run yarn build:python-rpc automatically.
Lire les instructions complètes ↗
Documentation source

1 documents lus parmi 1 candidats.

Fonctions et composants 2

Processus principal et affichage
package.json dirige Electron vers out/main/index.js. Des vérifications TypeScript distinctes couvrent les parties node et web. Electron-Vite compile l’application, tandis que React et ses bibliothèques appartiennent à l’affichage.
Modules natifs et Python
build:native lance un script de module natif. build:python-rpc prépare python_rpc séparément et les paquets de plateforme utilisent ces parcours. Installer les dépendances JavaScript ne constitue donc pas toute la compilation de livraison.

Architecture

Les composants et leurs liens restent lisibles en texte. Le diagramme ajoute une vue interactive.

Contexte système Contexte
  1. Interface React
  2. Frontière Electron
  3. Services du processus principal
  4. Module natif
  5. Composant RPC Python

Liens vérifiés dans le dépôt.

Mermaid Diagramme interactif (chargement à l’ouverture)

Vue générale des composants et des échanges vérifiés dans le dépôt.

Vue statique de l’architecture de hydra
Aperçu statique. Le diagramme interactif le remplace après le chargement de Mermaid.
flowchart LR
  n0["Interface React"]
  n1["Frontière Electron"]
  n2["Services du processus principal"]
  n3["Module natif"]
  n4["Composant RPC Python"]
  n0 --> n1
  n1 --> n2
  n2 --> n3
  n2 --> n4
Version texte du diagramme
  • Interface React → Frontière Electron
  • Frontière Electron → Services du processus principal
  • Services du processus principal → Module natif
  • Services du processus principal → Composant RPC Python
Suivre un parcours dans le code

Partez des scripts et distinguez compilation de l’interface, module natif et paquet Python. Examinez ensuite l’API entre processus pour une fonction donnée; les dépendances seules n’indiquent pas son propriétaire.

Types et structure des fichiers

1254 types déclarés, dont 12 dans l’aperçu des relations de base.

Diagramme des types
classDiagram
direction TB
class t497b591ddfee["CheckCloudSaveCustomPathOverlapInput"] {
  <<struct>>
}
class t546b0e1d60a3["CheckCloudSaveCustomPathOverlapResult"] {
  <<struct>>
}
class t4193b7c58165["CanonicalSnapshotVariant"] {
  <<struct>>
}
class t9be9d73de926["CanonicalSnapshotFile"] {
  <<struct>>
}
class t9e1524c40c18["CanonicalSnapshot"] {
  <<struct>>
}
class te94442ffd312["HashFilesBestEffortResult"] {
  <<struct>>
}
class t7de7357401f4["SnapshotAggregateHashFile"] {
  <<struct>>
}
class tba32df98af48["BuildSnapshotAggregateHashInput"] {
  <<struct>>
}
class t8896e2a0569a["LocalFileHashCacheEntry"] {
  <<struct>>
}
class t15b26b607bab["HashedLocalFile"] {
  <<struct>>
}
class t111381412a72["HashFilesResult"] {
  <<struct>>
}
class t0ff949433faa["SnapshotVariant"] {
  <<struct>>
}

Les bases non résolues restent identifiées; les signatures complètes ne sont pas reconstruites.

Index des types

Référence

1335 / 1335 fichiers admissibles lus (1725 dans l’arbre); 0 trop volumineux, 0 échec de lecture et 1 diagnostic de syntaxe.

Ce que couvre l’analyse

Les dossiers connus de dépendances et de compilation, les fichiers d’identifiants et les binaires sont exclus. La collecte couvre les README, les manifestes reconnus et les fichiers source pris en charge.

Les statistiques Linguist couvrent l’ensemble du dépôt et peuvent inclure d’autres langages.

Carte des fichiers
flowchart TD
  root["hydra"]
  f0["README.md"]
  root --> f0
  f1["electron.vite.config.ts"]
  root --> f1
  f2["package.json"]
  root --> f2
  f3[".eslintrc.cjs"]
  root --> f3
  f4[".prettierrc.cjs"]
  root --> f4
  f5["commitlint.config.js"]
  root --> f5
  f6["requirements.txt"]
  root --> f6
  f7["python_rpc/main.py"]
  root --> f7
  f8["python_rpc/setup.py"]
  root --> f8
  f9["python_rpc/torrent_downloader.py"]
  root --> f9
  f10["scripts/build-native-addon.cjs"]
  root --> f10
  f11["scripts/inspect-ps1-memcard.cjs"]
  root --> f11
  f12["scripts/inspect-ps2-memcard.cjs"]
  root --> f12
  f13["scripts/postinstall.cjs"]
  root --> f13
  f14["scripts/register-ts-node.mjs"]
  root --> f14
  f15["scripts/upload-build.cjs"]
  root --> f15

Fichiers à lire 3

Références