View Source
Orb Introduction
Mix.install([
{:jason, "~> 1.0"},
:orb,
:orb_wasmtime
])
alias OrbWasmtime.Instance, as: Wasmtime
defmodule Mean do
use Orb
I32.global(sum: 0, count: 0)
wasm do
func insert(n: I32) do
@count = @count + 1
@sum = @sum + n
end
func calculate_mean(), I32 do
@sum / @count
end
end
end
a = Wasmtime.run(Mean)
Wasmtime.call(a, :insert, 3)
Wasmtime.call(a, :insert, 4)
Wasmtime.call(a, :insert, 5)
Wasmtime.call(a, :insert, 6)
Wasmtime.call(a, :insert, 7)
Wasmtime.call(a, :calculate_mean)