Skip to content

gballet/windtrap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CircleCI

windtrap

A WASM VM written in Elixir

Installation

TODO

Usage

iEx

Start iex with mix:

$ iex -S mix

Then decode a file, e.g. file.wasm:

Windrap.decode_file("file.wasm")

To execute a file, e.g. file.wasm:

module = Windtrap.decode_file("file.wasm") |> Windtrap.load_module
vm = Windtrap.VM.new([], 0, module)
  |> Windtrap.VM.exec

the parameters to Windtrap.VM.new are:

  • the list of arguments to the initial function to be executed;
  • the index of the initial function to be executed; and
  • the module

It is possible to pass Windtrap.load_module a hash map for module resolution:

  • keys are strings representing the module name as they are declared in the module's import section;
  • values are the dependecy %Windtrap.Module themselves.

TODO

Debugging WASM code

TODO

TODO

  • Complete section support
  • Complete execution coverage
  • Complete test coverage
  • Code execution
  • Complete Debugger
  • Hex.pm release
  • GenServer version

About

A WASM VM written in Elixir

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages