swiftwasm / swiftwasm/JavaScriptKit
Plugin infrastructure
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Swift
- Sterne
- 986
- Forks
- 76
- Ø Merge
- 21 Std. 11 Min.
- Gemergte PRs (30 T.)
- 4
Beschreibung
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
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginnen Sie damit, die bestehende JavaScript/WASM-Brücke und die aufgeführten Einstiegspunkte zu erfassen: swjs_core, swjs_object, swjs_string, swjs_function und swjs_typedarray. Bestimmen Sie die Grenze der öffentlichen Plugin-API und wie die aufgeführten JavaScriptKit-Funktionen sie nutzen könnten; abgeschlossen bedeutet, dass das Design feststeht und die vorgeschlagenen Funktionen migriert werden können, ohne jedem Bundle ungenutzte Funktionalität hinzuzufügen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript, swift, wasm
- Bereich
- api, tooling
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100