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.ParseModule providing functions to parse a wasm script from various kind of inputs.Owi.TypesOwi.CompileUtility functions to compile a module until a given step.Owi.CheckInitial check done on a module.Owi.TypecheckModule to typecheck a simplified module.Owi.OptimizeOptimize moduleOwi.LinkModule to link a simplified/extern module and producing a runnable module along with a link state.Owi.LogModule to enable or disable the printing of debug logs.Owi.InterpretOwi.ScriptModule 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.AssignedOwi.C_instrumentorOwi.C_shareOwi.C_share_siteOwi.Choice_intfOwi.Cmd_cOwi.Cmd_fmtOwi.Cmd_optOwi.Cmd_runOwi.Cmd_scriptOwi.Cmd_symOwi.ConcreteOwi.Concrete_choiceOwi.Concrete_globalruntime globalOwi.Concrete_memoryOwi.Concrete_tableruntime tableOwi.Concrete_valueModule to define externref values in OCaml. You should look in the `example` directory to understand how to use this before reading the code...Owi.ConvertOwi.Env_idOwi.Float32Custom Float32 module for Wasm.Owi.Float64Custom Float64 module for Wasm.Owi.FormatOwi.Func_idOwi.Func_intfOwi.GroupedOwi.ImportedOwi.IndexedOwi.Int32Custom Int32 module for Wasm.Owi.Int64Custom Int64 module for Wasm.Owi.Interpret_intfOwi.LexerOwi.Link_envOwi.Menhir_parserOwi.NamedOwi.ResultOwi.RewriteOwi.RuntimeOwi.SimplifiedOwi.Simplified_typesOwi.SymbolicOwi.Symbolic_choiceOwi.Symbolic_globalOwi.Symbolic_memoryOwi.Symbolic_tableOwi.Symbolic_valueOwi.SpectestOwi.StackOwi.String_mapOwi.SyntaxOwi.TextOwi.ThreadOwi.TracingOwi.TrapOwi.TypecheckModule to typecheck a simplified module.Owi.Value_intfOwi.VOwi.Wutf8