{0 owi}

{{:https://github.com/ocamlpro/owi} owi} is a toolchain to work with WebAssembly. It is written in {{:https://ocaml.org} 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 {{:https://github.com/OCamlPro/owi} 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. :-)

{1:api API}

{!modules:
Owi.Binary
Owi.Binary_to_text
Owi.Binary_validate
Owi.Cmd_c
Owi.Cmd_conc
Owi.Cmd_fmt
Owi.Cmd_opt
Owi.Cmd_run
Owi.Cmd_script
Owi.Cmd_sym
Owi.Cmd_validate
Owi.Cmd_wasm2wat
Owi.Compile
Owi.Format
Owi.Interpret
Owi.Link
Owi.Optimize
Owi.Parse
Owi.Result
Owi.Script
Owi.Text
Owi.Text_validate
Owi.Types
}

{1:private_api Private API}

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.

{!modules:
Owi.Assigned
Owi.Binary_parser
Owi.Binary_types
Owi.C_share_site
Owi.Choice_intf
Owi.Cmd_utils
Owi.Concolic
Owi.Concolic_choice
Owi.Concolic_value
Owi.Concolic_wasm_ffi
Owi.Concrete
Owi.Concrete_choice
Owi.Concrete_global
Owi.Concrete_memory
Owi.Concrete_table
Owi.Concrete_value
Owi.Convert
Owi.Env_id
Owi.Float32
Owi.Float64
Owi.Func_id
Owi.Func_intf
Owi.Grouped
Owi.Imported
Owi.Indexed
Owi.Int32
Owi.Int64
Owi.Interpret
Owi.Interpret_intf
Owi.Link_env
Owi.Log
Owi.Named
Owi.Rewrite
Owi.Runtime
Owi.Script
Owi.Solver
Owi.Symbolic
Owi.Symbolic_choice
Owi.Symbolic_choice_minimalist
Owi.Symbolic_global
Owi.Symbolic_memory
Owi.Symbolic_table
Owi.Symbolic_value
Owi.Symbolic_wasm_ffi
Owi.Spectest
Owi.Stack
Owi.String_map
Owi.Syntax
Owi.Text_lexer
Owi.Text_parser
Owi.Thread
Owi.Tracing
Owi.Trap
Owi.Value_intf
Owi.V
Owi.Wasm_ffi_intf
Owi.Wq
Owi.Wutf8
}
