All Projects → alexdovzhanyn → AlchemyVM

alexdovzhanyn / AlchemyVM

Licence: MIT license
WebAssembly Virtual Machine Built In Elixir

Programming Languages

elixir
2628 projects

Projects that are alternatives of or similar to AlchemyVM

Passerine
A small extensible programming language designed for concise expression with little code.
Stars: ✭ 341 (+85.33%)
Mutual labels:  vm, interpreter
Quickjs
The official repo is at bellard/quickjs.
Stars: ✭ 1,429 (+676.63%)
Mutual labels:  vm, interpreter
Vm.js
Javascript 解释器. Javascript Interpreter
Stars: ✭ 343 (+86.41%)
Mutual labels:  vm, interpreter
SandboxJS
Safe eval runtime
Stars: ✭ 18 (-90.22%)
Mutual labels:  vm, interpreter
quickjs-build
Build for QuickJS JavaScript Engine
Stars: ✭ 25 (-86.41%)
Mutual labels:  vm, interpreter
RISVM
A low overhead, embeddable bytecode virtual machine in C++
Stars: ✭ 21 (-88.59%)
Mutual labels:  vm, interpreter
Zetavm
Multi-Language Platform for Dynamic Programming Languages
Stars: ✭ 592 (+221.74%)
Mutual labels:  vm, interpreter
snap
An embeddable scripting language inspired by Lua and JavaScript.
Stars: ✭ 32 (-82.61%)
Mutual labels:  vm, interpreter
Alchemyvm
WebAssembly Virtual Machine Built In Elixir
Stars: ✭ 176 (-4.35%)
Mutual labels:  vm, interpreter
Janet
A dynamic language and bytecode vm
Stars: ✭ 2,216 (+1104.35%)
Mutual labels:  vm, interpreter
interp
Interpreter experiment. Testing dispatch methods: Switching, Direct/Indirect Threaded Code, Tail-Calls and Inlining
Stars: ✭ 32 (-82.61%)
Mutual labels:  vm, interpreter
Tagha
Minimal, low-level, fast, and self-contained register-based bytecode virtual machine/runtime environment.
Stars: ✭ 101 (-45.11%)
Mutual labels:  vm, interpreter
retro12
This repo is retired. See http://forthworks.com:8000/
Stars: ✭ 18 (-90.22%)
Mutual labels:  vm, interpreter
Eval5
A JavaScript interpreter written in TypeScript - Support ES5
Stars: ✭ 281 (+52.72%)
Mutual labels:  vm, interpreter
go-jdk
Run JVM-based code in Go efficiently
Stars: ✭ 61 (-66.85%)
Mutual labels:  vm, interpreter
Q3vm
Q3VM - Single file (vm.c) bytecode virtual machine/interpreter for C-language input
Stars: ✭ 585 (+217.93%)
Mutual labels:  vm, interpreter
RSqueak
A Squeak/Smalltalk VM written in RPython.
Stars: ✭ 78 (-57.61%)
Mutual labels:  vm, interpreter
Animach
Scheme语言实现和运行时环境 / A Scheme runtime & implementation
Stars: ✭ 45 (-75.54%)
Mutual labels:  vm, interpreter
Javo
🚀 A sandboxed VM any Java developer can afford
Stars: ✭ 144 (-21.74%)
Mutual labels:  vm, interpreter
clox
A virtual machine and a tree-walk interpreter for the Lox programming language in C89 🌀
Stars: ✭ 38 (-79.35%)
Mutual labels:  vm, interpreter

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].