All Projects → ElixiumNetwork → Alchemyvm

ElixiumNetwork / Alchemyvm

Licence: mit
WebAssembly Virtual Machine Built In Elixir

Programming Languages

elixir
2628 projects

Projects that are alternatives of or similar to Alchemyvm

interp
Interpreter experiment. Testing dispatch methods: Switching, Direct/Indirect Threaded Code, Tail-Calls and Inlining
Stars: ✭ 32 (-81.82%)
Mutual labels:  vm, interpreter, wasm
Wasm Micro Runtime
WebAssembly Micro Runtime (WAMR)
Stars: ✭ 2,440 (+1286.36%)
Mutual labels:  webassembly, wasm, interpreter
warpy
WebAssembly interpreter in RPython
Stars: ✭ 54 (-69.32%)
Mutual labels:  interpreter, webassembly, wasm
Lam
🚀 a lightweight, universal actor-model vm for writing scalable and reliable applications that run natively and on WebAssembly
Stars: ✭ 176 (+0%)
Mutual labels:  webassembly, wasm, vm
Winter
Haskell port of the WebAssembly OCaml reference interpreter
Stars: ✭ 42 (-76.14%)
Mutual labels:  webassembly, wasm, interpreter
Awesome Wasm Runtimes
A list of webassemby runtimes
Stars: ✭ 490 (+178.41%)
Mutual labels:  webassembly, wasm, vm
Wasm3
🚀 The fastest WebAssembly interpreter, and the most universal runtime
Stars: ✭ 4,375 (+2385.8%)
Mutual labels:  webassembly, wasm, interpreter
Wasm Forth
A Forth implementation compiling to WebAssembly.
Stars: ✭ 92 (-47.73%)
Mutual labels:  webassembly, wasm, interpreter
Wain
WebAssembly implementation from scratch in Safe Rust with zero dependencies
Stars: ✭ 160 (-9.09%)
Mutual labels:  webassembly, wasm, interpreter
Webassemblyjs
Toolchain for WebAssembly
Stars: ✭ 566 (+221.59%)
Mutual labels:  webassembly, wasm, interpreter
Wasmjit
Small Embeddable WebAssembly Runtime
Stars: ✭ 1,063 (+503.98%)
Mutual labels:  webassembly, wasm, interpreter
Lunatic
Lunatic is an Erlang-inspired runtime for WebAssembly
Stars: ✭ 2,074 (+1078.41%)
Mutual labels:  webassembly, wasm, vm
Rs Asteroids
A variation on the game Asteroids, written in Rust
Stars: ✭ 146 (-17.05%)
Mutual labels:  webassembly, wasm
Assemblyscript
A TypeScript-like language for WebAssembly.
Stars: ✭ 13,152 (+7372.73%)
Mutual labels:  webassembly, wasm
Wasm Crypto
A WebAssembly (via AssemblyScript) set of cryptographic primitives for building authentication and key exchange protocols.
Stars: ✭ 146 (-17.05%)
Mutual labels:  webassembly, wasm
Logging
Microsoft Extension Logging implementation for Blazor
Stars: ✭ 165 (-6.25%)
Mutual labels:  webassembly, wasm
Woz
Woz is a progressive WebAssembly app (PWAA) generator for Rust.
Stars: ✭ 145 (-17.61%)
Mutual labels:  webassembly, wasm
Janet
A dynamic language and bytecode vm
Stars: ✭ 2,216 (+1159.09%)
Mutual labels:  interpreter, vm
Libarchivejs
Archive library for browsers
Stars: ✭ 145 (-17.61%)
Mutual labels:  webassembly, wasm
Javo
🚀 A sandboxed VM any Java developer can afford
Stars: ✭ 144 (-18.18%)
Mutual labels:  interpreter, vm

AlchemyVM Banner

Packagist Build Status

WebAssembly Virtual Machine written in Elixir. Currently used as the Wasm VM in the Elixium Network

Usage

Standard Usage

{:ok, ref} = AlchemyVM.start() # Start AlchemyVM
AlchemyVM.load_file(ref, "path/to/wasm/file.wasm") # Load a module
AlchemyVM.execute(ref, "some_exported_function") # Call a function
# => {:ok, total_gas_cost, :function_return_value}

Options

For Gas Limit use:

 AlchemyVM.execute(ref, "some_exported_function", [:gas_limt, 100])

For Trace use:

AlchemyVM.execute(ref, "some_exported_function", [:trace, true])

For Trace & gas limit use:

AlchemyVM.execute(ref, "some_exported_function", [gas_limit: 100, trace: true])

More detailed usage instructions can be found on HexDocs.

Installation

Add alchemy_vm to your list of dependencies in mix.exs:

def deps do
  [
    {:alchemy_vm, "~> 0.7"}
  ]
end

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/wasp_vm.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].