https://github.com/vlang/wasmer
https://github.com/vlang/wasmer
Last synced: 10 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/vlang/wasmer
- Owner: vlang
- License: mit
- Created: 2022-02-16T13:16:59.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-10-31T10:51:21.000Z (almost 4 years ago)
- Last Synced: 2025-04-13T20:14:54.008Z (over 1 year ago)
- Language: C
- Size: 861 KB
- Stars: 31
- Watchers: 30
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# wasmer
`wasmer` is a wrapper over Wasmer C API. This module not only provides access to the C API but it also strives to provide easy to use wrappers over the C API.
# Example usage
```v
import wasmer
fn main() {
engine := wasmer.engine()
store := wasmer.store(engine)
wasm := wasmer.wat2wasm('(module
(func \$add (param \$lhs i32) (param \$rhs i32) (result i32)
local.get \$lhs
local.get \$rhs
i32.add)
(export "add" (func \$add))
)')?
mod := wasmer.compile(store,wasm)?
imports := wasmer.extern_vec_empty()
mut trap := wasmer.Trap{}
instance := wasmer.instance(store,mod,imports,mut trap)
func := instance.exports().at(0).as_func()?
mut results := [wasmer.val_i32(0)]
trap = func.call([wasmer.val_i32(2),wasmer.val_i32(3)],mut results)
if trap.is_set() {
println(trap.message()?)
} else {
println(results[0])
}
engine.delete()
trap.delete()
store.delete()
}
```