owi is a toolchain to work with WebAssembly. It is written in OCaml.
Owi provides many tools: a formatter, an optimizer, a concrete interpreter, a script interpreter and a symbolic interpreter. It also allows to do bug finding on C code by compiling it to Wasm and running the symbolic interpreter.
To get started, have a look at the README which contains pointers to general documentation and examples.
Here you will only find the API documentation which is written towards people using the OCaml library directly or people trying to understand the code of Owi such as its developpers. :-)
Owi.Parse Module providing functions to parse a wasm script from various kind of inputs.Owi.Types Owi.Compile Utility functions to compile a module until a given step.Owi.Check Initial check done on a module.Owi.Typecheck Module to typecheck a simplified module.Owi.Optimize Optimize moduleOwi.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 Owi.Script Module to execute a full Wasm script.You shouldn't have to use any of these modules, they're used internally only. Nonetheless, some modules should maybe move to the public API, open an issue on the repository if you believe a mistake has been done.
Owi.Assigned Owi.C_instrumentor Owi.C_share Owi.C_share_site Owi.Choice_intf Owi.Cmd_c Owi.Cmd_fmt Owi.Cmd_opt Owi.Cmd_run Owi.Cmd_script Owi.Cmd_sym Owi.Concrete Owi.Concrete_choice Owi.Concrete_global runtime globalOwi.Concrete_memory Owi.Concrete_table runtime tableOwi.Concrete_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...Owi.Convert Owi.Env_id Owi.Float32 Custom Float32 module for Wasm.Owi.Float64 Custom Float64 module for Wasm.Owi.Format Owi.Func_id Owi.Func_intf Owi.Grouped Owi.Imported Owi.Indexed Owi.Int32 Custom Int32 module for Wasm.Owi.Int64 Custom Int64 module for Wasm.Owi.Interpret_intf Owi.Lexer Owi.Link_env Owi.Menhir_parser Owi.Named Owi.Result Owi.Rewrite Owi.Runtime Owi.Simplified Owi.Simplified_types Owi.Symbolic Owi.Symbolic_choice Owi.Symbolic_global Owi.Symbolic_memory Owi.Symbolic_table Owi.Symbolic_value Owi.Spectest Owi.Stack Owi.String_map Owi.Syntax Owi.Text Owi.Thread Owi.Tracing Owi.Trap Owi.Typecheck Module to typecheck a simplified module.Owi.Value_intf Owi.V Owi.Wutf8