package owi
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=ae5f43a855d35e3362d7ae4f5d26a2e99f5abbbafceb9e970a9ac9ec48eca791
sha512=2cbd28275e1c65aa8f16d945d8ed679f070e1409f45796a272c8d58eb806890ad686184c95e1b6b16b96734c3d2c1d885c9894b3386f55cc0fd3fb4a40d68a8d
doc/index.html
owi
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. :-)
API
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.
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.
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