pub struct ZWasmConfig {
pub target: String,
pub optimize: bool,
pub opt_level: Option<String>,
pub language: Option<String>,
pub wit: Option<String>,
pub world: Option<String>,
pub output: Option<String>,
pub features: Vec<String>,
pub build_args: HashMap<String, String>,
pub pre_build: Vec<ZCommand>,
pub post_build: Vec<ZCommand>,
pub adapter: Option<String>,
}Expand description
WebAssembly build configuration for WASM mode.
§YAML Example
wasm:
target: "preview2"
optimize: true
opt_level: "Oz"
language: "rust"
world: "zlayer-http-handler"
wit: "./wit"
output: "./output.wasm"
features: [json, metrics]
build_args:
CARGO_PROFILE_RELEASE_LTO: "true"
pre_build:
- "wit-bindgen tiny-go --world zlayer-http-handler --out-dir bindings/"
post_build:
- "wasm-tools component embed --world zlayer-http-handler wit/ output.wasm -o output.wasm"
adapter: "./wasi_snapshot_preview1.reactor.wasm"Fields§
§target: StringWASI target version: “preview1” or “preview2” (default: “preview2”)
optimize: boolWhether to run wasm-opt on the output
opt_level: Option<String>Optimization level for wasm-opt: “O”, “Os”, “Oz”, “O2”, “O3” (default: “Oz”)
language: Option<String>Source language (auto-detected if omitted): rust, go, python, typescript, assemblyscript, c, zig
wit: Option<String>Path to WIT definitions (default: “./wit”)
world: Option<String>Target WIT world name (e.g., “zlayer-http-handler”, “zlayer-plugin”, “zlayer-transformer”, “zlayer-authenticator”, “zlayer-rate-limiter”, “zlayer-middleware”, “zlayer-router”)
output: Option<String>Output path for the compiled WASM file
features: Vec<String>Language-specific features to enable during build
build_args: HashMap<String, String>Additional build arguments (language-specific, e.g. CARGO_PROFILE_RELEASE_LTO)
pre_build: Vec<ZCommand>Pre-build commands to run before compilation (e.g., WIT binding generation for Go)
post_build: Vec<ZCommand>Post-build commands to run after compilation (before optimization)
adapter: Option<String>Component adapter path for WASI preview1 -> preview2 lifting
Trait Implementations§
Source§impl Clone for ZWasmConfig
impl Clone for ZWasmConfig
Source§fn clone(&self) -> ZWasmConfig
fn clone(&self) -> ZWasmConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ZWasmConfig
impl Debug for ZWasmConfig
Source§impl<'de> Deserialize<'de> for ZWasmConfig
impl<'de> Deserialize<'de> for ZWasmConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for ZWasmConfig
impl RefUnwindSafe for ZWasmConfig
impl Send for ZWasmConfig
impl Sync for ZWasmConfig
impl Unpin for ZWasmConfig
impl UnsafeUnpin for ZWasmConfig
impl UnwindSafe for ZWasmConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more