package owi

  1. Overview
  2. Docs
On This Page
  1. API
  2. Private API
Module type
Class type


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 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
  • 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.


Innovation. Community. Security.