owi is an OCaml toolchain to work with WebAssembly. It provides an interpreter as an executable and a library.
To get started, have a look at the quickstart section of the README.
Owi.Parse Module providing functions to parse a wasm script from various kind of inputs.Owi.Types Types of text modules, as produced by the parser. Many parts of it are reused later in the interpreter.Owi.Compile Utility functions to compile a module until a given step.Owi.Check Initial check done on a module.Owi.Simplify Module to simplify a text module. It contains the types of simplified modules.Owi.Typecheck Module to typecheck a simplified module.Owi.Link Module to link a simplified/extern module and producing a runnable module along with a link state.Owi.Log Module to enable or disable the printing of debug logs.Owi.Interpret Module to interpret a linked module.Owi.Script Module to execute a full Wasm script.Owi.Pp Module to pretty print the various types such as text module or simplified module.Owi.Value Module to define externref values in OCaml. You should look in the `example` directory to understand how to use this before reading the code...You shouldn't have to use any of these modules, they're used internally only.
Owi.Convert Owi.Float32 Owi.Float64 Owi.Int32 Custom Int32 module for Wasm.Owi.Int64 Custom Int64 module for Wasm.Owi.Lexer Owi.Menhir_parser Owi.Spectest Owi.Wutf8