<a id="wasm-wasmtime"></a>

# Wasmtime

该模块支持与 [Wasmtime](https://wasmtime.dev/) 运行时的集成，以执行 WASM 代码，
并向 [wasm_modules](https://cn.angie.software//angie/docs/configuration/modules/wasm/index.md#wasm-modules) 上下文添加了一些特定于运行时的指令。

在我们的代码库中，该模块是以 [动态](https://cn.angie.software//angie/docs/installation/index.md#install-dynamicmodules) 方式构建的，
并作为一个名为 `angie-module-wasmtime` 的单独包提供。

<a id="configuration-example-77"></a>

## 配置示例

```nginx
wasm_modules {

    wasmtime_stack_size 8k;

    wasmtime_enable_wasi on;

    load fft_transform.wasm id=fft;
}
```

<a id="directives-86"></a>

## 指令

<a id="index-0"></a>

<a id="wasmtime-enable-wasi"></a>

### wasmtime_enable_wasi

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `wasmtime_enable_wasi` `on` | `off`;   |
|--------------------------------------------------------------------------------------|----------------------------------------|
| 默认值                                                                                  | `wasmtime_enable_wasi on;`             |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | wasm_modules                           |

启用或禁用 [WebAssembly System Interface](https://github.com/WebAssembly/WASI) API 的使用，
这些 API 为在 Angie 上运行的 WASM 模块提供了基本的 [POSIX 类功能](https://wasi.dev/interfaces)。

#### NOTE
可以使用 [load](https://cn.angie.software//angie/docs/configuration/modules/wasm/index.md#load) 指令明确允许使用 Angie 特定的 API。

<a id="index-1"></a>

<a id="wasmtime-stack-size"></a>

### wasmtime_stack_size

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `wasmtime_stack_size` size;   |
|--------------------------------------------------------------------------------------|-------------------------------|
| 默认值                                                                                  | `wasmtime_stack_size 8k;`     |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | wasm_modules                  |

将 [max_wasm_stack](https://docs.wasmtime.dev/api/wasmtime/struct.Config.html#method.max_wasm_stack)
值设置为特定的 [size](https://cn.angie.software//angie/docs/configuration/configfile.md#syntax)，
从而限制执行 WASM 代码时可用的最大堆栈空间。
