Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Communication basée sur des 'contrats' d'interface #28

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

tjaisson
Copy link
Collaborator

Afin de standardiser les échanges entre Capytale et les applications tierces, nous publions les paquets suivants, issus du dépôt metaplayer-rpc (branche draft, pas encore bien documentée) :

@capytale/contracts:
Un paquet purement typescript qui contient les définitions des différents contrats d’interfaçage avec Capytale. Ces contrats sont identifiés par un nom et une version. Le contrat contient la signature d'appel des méthodes exposées de chaque côté.
Le tout est organisé en une collection de contrats (nommée CapytaleContracts). C'est un 'gros' type typescript.
Pour l'instant, seuls deux contrats sont inclus :

  • theme - pour gérer l'apparence. Capytale n'a pas encore de gestion du thème mais comme la démo d'origine permettait de basculer le thème JupyterLite, j'ai ajouté ce contrat.
  • simple-content - pour échanger le contenu. Se décline en deux variantes :
    • simple-content(text) - pour un contenu de type string. Celui utilisé ici.
    • simple-content(json) - pour un contenu de type objet sérialisable.

@capytale/app-agent:
Une surcouche à Comlink qui offre un agent Application permettant d'interfacer les contrats en bénéficiant du typage des interfaces lors de l'écriture du code.

@capytale/mp-agent:
L'agent pour le côté Metaplayer de Capytale.

Cette pull request ré-implémente la démo en utilisant ce concept.

@capytale/contracts : contient la définition typescript de la collection des contrats Capytale
@capytale/app-agent: une surcouche à Comlink qui offre un agent permettant d'interfacer les contrats
@jtpio jtpio added the enhancement New feature or request label Apr 22, 2024
@jtpio
Copy link
Member

jtpio commented Apr 22, 2024

Super, merci @tjaisson !

Pour l'instant, seuls deux contrats sont inclus :

Y a-t-il d'autres contrats prévus qu'il faudrait ajouter du côté de l'application notebook ? (pour commencer a regarder comment les exposer via l'extension)

@jtpio
Copy link
Member

jtpio commented May 6, 2024

Pour info @tjaisson je viens d'ajouter un commit pour faire passer le check de la CI.

N’hésitez pas a merger pour itérer plus facilement si besoin.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants