browserify / browserify/rustify
Should we register modules directly?
- Dominant language
- JavaScript
- Stars
- 491
- Forks
- 6
- PR merge metrics
- No merged PRs in 30d
Description
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?
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by comparing the current and proposed API examples in the issue and inspect the rustify transform entry point. The payload names no files or tests, and work is not complete until the project decides whether direct module registration is the desired interface and defines its behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, rust, wasm
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100