Expand description
Wire versioning contract shared between host and plugin authors.
The host and each plugin agree on a WireVersion per hook. Plugin
authors declare their hook’s version in #[hook(...)] metadata, and
the host verifies at admission time that the declared version is in
the host’s supported list AND that the wasm’s embedded layout
fingerprint matches the host’s computed fingerprint.
Enums§
- Hook
Kind - Plugin hook kind. Each hook is a distinct wire contract.
- Wire
Version - Wire schema version. Distinct enum values indicate incompatible struct layouts. Bump when adding/removing/reordering fields of ANY hook’s wire type. Once V2 is added, V1 stays as a supported legacy version until deprecated by explicit host-list removal.
Constants§
- HOST_
SUPPORTED_ FILTER_ VERSIONS - Host-supported versions per hook. Update when adding new versions.
- HOST_
SUPPORTED_ OBSERVE_ VERSIONS - HOST_
SUPPORTED_ SHAPE_ VERSIONS
Traits§
- Wire
Schema - Layout fingerprint published by each wire struct via the
#[derive(WireSchema)]proc-macro (defined incc-lb-pdk-wasmtime-macros). The macro walks the struct AST, serialises fields to a canonical descriptor string, then embedsBLAKE3(descriptor)as a 32-byte const.
Functions§
- host_
supported_ versions - host_
supports - pack_
ret - Packed
(out_ptr, out_len)return value used by every guest hook export. - unpack_
ret - Inverse of
pack_ret.