# wasmex v0.15.1 - Table of Contents

> Wasmex is an Elixir library for executing WebAssembly binaries

## Modules

- [Wasmex](Wasmex.md): Wasmex is a fast and secure [WebAssembly](https://webassembly.org/) and [WASI](https://github.com/WebAssembly/WASI) runtime for Elixir.
It enables lightweight WebAssembly containers to be run in your Elixir backend.
This is the main module, providing most of the needed API to run Wasm binaries.
- [Wasmex.Components](Wasmex.Components.md): This is the entry point to support for the [WebAssembly Component Model](https://component-model.bytecodealliance.org/).
- [Wasmex.Components.Component](Wasmex.Components.Component.md): A WebAssembly Component that can be instantiated.
- [Wasmex.Components.ComponentServer](Wasmex.Components.ComponentServer.md): A GenServer wrapper for WebAssembly components. This module provides a macro to easily
create GenServer-based components with wrapper functions for the exports in the WIT definition.
- [Wasmex.Components.FieldConverter](Wasmex.Components.FieldConverter.md): Converts field names between Elixir's snake_case and WIT's kebab-case conventions.
- [Wasmex.Components.GuestResource](Wasmex.Components.GuestResource.md): Guest-owned WebAssembly component resources.
- [Wasmex.Components.GuestResource.Discovery](Wasmex.Components.GuestResource.Discovery.md): Discovers guest-owned resources exported by a WIT world.
- [Wasmex.Components.HostResource](Wasmex.Components.HostResource.md): Defines a host-owned WebAssembly component resource implemented in Elixir.
- [Wasmex.Components.HostResource.Discovery](Wasmex.Components.HostResource.Discovery.md): Discovers host-owned resources imported by a WIT world.
- [Wasmex.Components.Instance](Wasmex.Components.Instance.md): The component model equivalent to `Wasmex.Instance`.
- [Wasmex.Components.Store](Wasmex.Components.Store.md): This is the component model equivalent of `Wasmex.Store`

- [Wasmex.Engine](Wasmex.Engine.md): An `Engine` which is a global context for compilation and management of Wasm
modules.
- [Wasmex.EngineConfig](Wasmex.EngineConfig.md): Configures a `Wasmex.Engine`.
- [Wasmex.Instance](Wasmex.Instance.md): Instantiates a Wasm module and allows calling exported functions on it.
- [Wasmex.Memory](Wasmex.Memory.md): Memory is a linear array of bytes to store Wasm values. The `Memory` module provides functions to read and write to this array.
- [Wasmex.Module](Wasmex.Module.md): A compiled WebAssembly module.
- [Wasmex.Pipe](Wasmex.Pipe.md): A Pipe is a memory buffer that can be used in exchange for a Wasm file.
- [Wasmex.Store](Wasmex.Store.md): A Store is a collection of Wasm instances and host-defined state.
- [Wasmex.StoreLimits](Wasmex.StoreLimits.md): Configures limits to limit resource creation within a `Wasmex.Store`.
- [Wasmex.StoreOrCaller](Wasmex.StoreOrCaller.md): Either a `Wasmex.Store` or "Caller" for imported functions.
- [Wasmex.Utils](Wasmex.Utils.md): Utility functions for Wasmex.

- [Wasmex.Wasi.PreopenOptions](Wasmex.Wasi.PreopenOptions.md): Options for preopening a directory.
- [Wasmex.Wasi.WasiOptions](Wasmex.Wasi.WasiOptions.md): Configures WASI support for a Wasmex.Store.
- [Wasmex.Wasi.WasiP2Options](Wasmex.Wasi.WasiP2Options.md): Configures WASI P2 support for a Wasmex.Components.Store.
- [Wasmex.Wat](Wasmex.Wat.md): Utilities to work with Web Assembly Text (.wat) files.

