swiftwasm / swiftwasm/JavaScriptKit
Plugin infrastructure
Personne n'a encore pris cette issue.
- Langage dominant
- Swift
- Étoiles
- 986
- Forks
- 76
- Merge moyen
- 21 h 11 min
- PR mergées (30 j)
- 4
Description
Currently, JavaScript-based features must be directly implemented in JavaScriptKit to be able to access important features like the heap and the JSValue parsing/serializing routines. This means that less-common things like TypedArray or potential Combine-Promise integration (see #62) would have to increase the bundle size for everyone. One solution to this would be defining some sort of public JS-side API that allows providing custom functions to the WASM runtime. As long as we encourage users of this API to prefix their methods there should be no collision issues.
It would be nice to restructure JavaScriptKit itself to make use of the plugin API too:
swjs_core:releaseswjs_object:get_prop,set_prop,get_subscript,set_subscript,instanceofswjs_string:decode,encode,loadswjs_function:call,apply,call_new,createswjs_typedarray:create
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par cartographier le pont JavaScript/WASM existant et les points d’entrée indiqués : swjs_core, swjs_object, swjs_string, swjs_function et swjs_typedarray. Déterminez la limite de l’API publique du plugin et la manière dont les fonctionnalités JavaScriptKit indiquées pourraient l’utiliser ; le travail est terminé lorsque la conception est arrêtée et que les fonctions proposées peuvent être migrées sans ajouter de fonctionnalité inutilisée à chaque bundle.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript, swift, wasm
- Domaine
- api, tooling
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100