Aller au contenu

Architecture ​

ATLAS est un monorepo TypeScript modulaire. Les contrats communs séparent les services, la présentation et l’intégration avec l’environnement hôte.

Packages ​

PackageRôle
@atlas/coreContrats et types centraux.
@atlas/foundationInfrastructure et composants communs.
@atlas/runtimeServices d’exécution et conteneur de services.
@atlas/rendererPrésentation et abstractions du moteur de rendu.
@atlas/homeassistantIntégration et workflows Home Assistant.
@atlas/themeThèmes et conception visuelle partagés.
@atlas/devtoolsDiagnostics et outils de développement.
@atlas/kernelContrats des modules, conteneur de services et infrastructure.
@atlas/workspaceContrats de préparation des espaces de travail.
@atlas/file-studioContrats et adaptateur Runtime internes ; le plugin web installable reste externe.
@atlas/notifyarchiveContrats internes des archives de notifications.

Principes d’architecture ​

  • Séparer les contrats de leurs implémentations.
  • Utiliser de petits modules remplaçables.
  • Concevoir des composants testables.
  • Définir explicitement les interfaces et les dépendances.
  • Fournir des implémentations de référence.
  • Préparer l’extension par des plugins à long terme.

Événements ​

Les contrats comprennent Event, EventBus, Handler, Subscription, Filter, Publisher et Subscriber. DefaultEventBus fournit l’implémentation de référence.

Services et injection de dépendances ​

Les descripteurs et l’enregistrement des services, l’injection de dépendances et les conteneurs permettent de résoudre les services de manière contrôlée.

Utilisations prévues ​

ATLAS vise les outils Home Assistant, les composants de tableaux de bord, les applications de diagnostic et les applications web ou de bureau basées sur des plugins. La carte Lovelace UV reste un projet ultérieur.

Les contrats sont encore en développement : cette architecture ne constitue pas une promesse d’API de plugin stable. Voir l’état du développement.