browserify / browserify/rustify

Should we register modules directly?

Offen
#4 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement
Vorherrschende Sprache
JavaScript
Sterne
491
Forks
6
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

I was thinking: perhaps it would make sense to register modules directly?

E.g. turn this:
```js
var rust = require('rustify')

var wasm = rust`
#[no_mangle]
pub fn add_one(x: i32) -> i32 {
x + 1
}
`

WebAssembly.instantiate(wasm, {})
.then(function (res) {
var addOne = res.instance.exports.add_one
console.log(addOne(41))
console.log(addOne(68))
}).catch(function (e) {
console.error('Creating WASM module failed', e)
})
```
Into this:
```js
var rust = require('rustify')

var wasm = rust`
#[no_mangle]
pub fn add_one(x: i32) -> i32 {
x + 1
}
`

wasm.then((mod) => {
console.log(mod.add_one(41))
console.log(mod.add_one(68))
}).catch((e) => console.error('WASM error', e))
```

The benefit is that there's way less code to remember (ugh, `res.instance.exports`). The downside is that we're no long just exposing a Uint8Array, so doing things like registering a function twice is not going to be possible.

Would this be worth it?

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginne damit, die aktuellen und vorgeschlagenen API-Beispiele im Issue zu vergleichen und den rustify-Transformationseinstiegspunkt zu untersuchen. Der Payload nennt keine Dateien oder Tests, und die Arbeit ist erst abgeschlossen, wenn das Projekt entscheidet, ob die direkte Modulregistrierung die gewünschte Schnittstelle ist, und deren Verhalten definiert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript, rust, wasm
Bereich
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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.