050-wasm-without-parameterized-definitions
The WebAssembly module without parameterized definitions (amends 027)
A narrow amendment of approved spec 027. Spec 034's parameterized definitions (rustev.definition/2 templates, profiles, instantiation and rustev.plan/3 instantiation records) put the optimized rustev_wasm_bg.wasm over spec 027's gzip budget, which spec 046 kept on purpose so that such a cost shows: 860,362 bytes against 786,432 at spec 034 increment 3. Spec 034 leaves exposing its functions through WebAssembly to spec 027. This spec keeps the budget and keeps spec 034's code out of the WebAssembly module: rustev-core, rustev-eval and rustev-surface gain an opt-in cargo feature `parameterized` (spec 031 keeps every release crate's `default` empty) that every workspace consumer but rustev-wasm enables, and the WebAssembly binding refuses a definition that uses spec 034's members and a plan that carries an instantiation record with a typed refusal; version 2 definitions and version 3 plans of specs 032 and 033 are unchanged. The Node binding, the CLI and every other surface keep the feature. Ratified by the owner on 2026-10-24 (A-52); the feature made opt-in the same day, before merge, by the owner's decision (A-52).
Read the full pinned specification ↗Relationships
depends on
depended on by
Claimed units
- extends
{ "nature": "additive", "spec": "001-boundaries-and-authority", "unit": { "kind": "file", "path": "Cargo.toml" } } - extends
{ "nature": "additive", "spec": "002-decision-contract-and-pure-core", "unit": { "kind": "directory", "path": "crates/rustev-core/" } } - extends
{ "nature": "additive", "spec": "004-evaluation-and-replay", "unit": { "kind": "directory", "path": "crates/rustev-eval/" } } - extends
{ "nature": "additive", "spec": "027-node-and-wasm-bindings", "unit": { "kind": "directory", "path": "crates/rustev-surface/" } } - extends
{ "nature": "additive", "spec": "027-node-and-wasm-bindings", "unit": { "kind": "directory", "path": "integrations/rustev-wasm/" } } - extends
{ "nature": "additive", "spec": "027-node-and-wasm-bindings", "unit": { "kind": "directory", "path": "integrations/rustev-node/" } } - extends
{ "nature": "additive", "spec": "027-node-and-wasm-bindings", "unit": { "kind": "directory", "path": "tools/rustev-conformance/" } } - extends
{ "nature": "additive", "spec": "006-cli-surface", "unit": { "kind": "directory", "path": "crates/rustev-cli/" } } - extends
{ "nature": "additive", "spec": "003-runtime-execution-and-evidence", "unit": { "kind": "directory", "path": "crates/rustev-runtime/" } } - extends
{ "nature": "additive", "spec": "005-reference-backends", "unit": { "kind": "directory", "path": "backends/rustev-backend-rules/" } } - extends
{ "nature": "additive", "spec": "007-support-routing-package", "unit": { "kind": "directory", "path": "packages/rustev-pkg-support-routing/" } } - extends
{ "nature": "additive", "spec": "008-reference-package-lodging", "unit": { "kind": "directory", "path": "packages/rustev-pkg-lodging/" } } - extends
{ "nature": "additive", "spec": "009-remote-adapter-protocol", "unit": { "kind": "directory", "path": "integrations/rustev-remote-http/" } } - extends
{ "nature": "additive", "spec": "010-integrations", "unit": { "kind": "directory", "path": "integrations/rustev-aicortex/" } } - extends
{ "nature": "additive", "spec": "010-integrations", "unit": { "kind": "directory", "path": "integrations/rustev-rahi/" } } - extends
{ "nature": "additive", "spec": "010-integrations", "unit": { "kind": "directory", "path": "integrations/rustev-serve/" } } - extends
{ "nature": "additive", "spec": "012-jev-integration", "unit": { "kind": "directory", "path": "integrations/rustev-jev/" } } - extends
{ "nature": "additive", "spec": "030-bedrock-backend", "unit": { "kind": "directory", "path": "integrations/rustev-bedrock/" } } - extends
{ "nature": "additive", "spec": "028-opentelemetry-evidence-sink", "unit": { "kind": "directory", "path": "integrations/rustev-otel/" } } - extends
{ "nature": "additive", "spec": "031-public-api-and-release-family", "unit": { "kind": "directory", "path": "integrations/rustev/" } } - extends
{ "nature": "additive", "spec": "031-public-api-and-release-family", "unit": { "kind": "directory", "path": "tools/rustev-release/" } }
Source headings
- 050: The WebAssembly module without parameterized definitions (amends 027)
- 1. Purpose
- 2. Territory
- 3. Behavior
- 4. Out of scope
- 5. Observable negative cases
- Acceptance
- Verification
- Implementation record
Frozen anchors
No frozen anchors declared.