027-node-and-wasm-bindings
Node-API binding and WebAssembly build
Approved (A-23). Two host surfaces over the existing engine: `rustev-node`, a napi-rs Node-API binding through which a TypeScript service compiles plans, runs decisions, replays and evaluates in-process and implements Rustev's seams in TypeScript as explicit composition (R-38); and `rustev-wasm`, a wasm-bindgen build of the pure crates for browsers, edge runtimes and tooling. Documents cross as the contract's canonical JSON, TypeScript types are generated from JSON Schema emitted by `rustev-contract`, command rendering moves into one pure crate shared by every surface, and every surface (CLI, native binding, WebAssembly, later HTTP and gRPC) runs one shared conformance suite. Approval does not authorize npm or crates.io publication, name reservation, a release, a live provider call, spend, or a claim that cross-target floating point agrees beyond what the parity suite measures.
Read the full pinned specification ↗Relationships
depends on
depended on by
- 011-semantic-backend
- 033-provenance-rules-and-actionable-outcomes
- 040-decision-explanation
- 041-ranking-and-rubric-metrics
- 042-decision-service-and-remote-seams
- 044-runtime-optimization-increment-2
- 045-command-surface-release-layer
- 046-wasm-size-budget
- 047-target-independent-transcendentals
- 049-opentelemetry-through-the-node-binding
- 050-wasm-without-parameterized-definitions
- 051-wasm-gzip-and-raw-budget
- 052-wasm-budget-for-specs-035-to-037
- 054-npm-rustev-scope
- 055-wasm-gzip-measured
- 057-wasm-raw-budget-for-spec-039
- 063-node-binding-parity
- 066-segment-ancestry-predicate
- 067-node-live-repeat-runs
amended by
- 046-wasm-size-budget
- 047-target-independent-transcendentals
- 049-opentelemetry-through-the-node-binding
- 050-wasm-without-parameterized-definitions
- 051-wasm-gzip-and-raw-budget
- 052-wasm-budget-for-specs-035-to-037
- 054-npm-rustev-scope
- 055-wasm-gzip-measured
- 057-wasm-raw-budget-for-spec-039
- 063-node-binding-parity
- 067-node-live-repeat-runs
Claimed units
- establishes
{ "kind": "directory", "path": "integrations/rustev-node/" } - establishes
{ "kind": "directory", "path": "integrations/rustev-wasm/" } - establishes
{ "kind": "directory", "path": "crates/rustev-surface/" } - establishes
{ "kind": "directory", "path": "tools/rustev-conformance/" } - extends
{ "nature": "additive", "spec": "002-decision-contract-and-pure-core", "unit": { "kind": "directory", "path": "crates/rustev-contract/" } } - 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": "003-runtime-execution-and-evidence", "unit": { "kind": "directory", "path": "crates/rustev-runtime/" } } - extends
{ "nature": "amending", "spec": "006-cli-surface", "unit": { "kind": "directory", "path": "crates/rustev-cli/" } } - extends
{ "nature": "additive", "spec": "001-boundaries-and-authority", "unit": { "kind": "file", "path": "Cargo.toml" } } - extends
{ "nature": "additive", "spec": "001-boundaries-and-authority", "unit": { "kind": "file", "path": "Cargo.lock" } } - extends
{ "nature": "additive", "spec": "001-boundaries-and-authority", "unit": { "kind": "file", "path": "Makefile" } } - extends
{ "nature": "additive", "spec": "001-boundaries-and-authority", "unit": { "kind": "directory", "path": "tools/rustev-boundaries/" } } - extends
{ "nature": "additive", "spec": "031-public-api-and-release-family", "unit": { "kind": "directory", "path": "tools/rustev-release/" } }
Source headings
- 027: Node-API binding and WebAssembly build
- 1. Purpose
- 2. Territory
- 3. Behavior
- 3.1 Surfaces and crates
- 3.2 Typed boundary and generated types
- 3.3 Engine lifecycle and the TypeScript API
- 3.4 Errors and unresolved results
- 3.5 Async execution and cancellation
- 3.6 Host implemented seams
- 3.7 Seams available today and seams that join later
- 3.8 Trace context
- 3.9 Memory, shutdown and observability
- 3.10 WebAssembly build
- 3.11 Floating point and cross-target determinism
- 3.12 Shared conformance suite
- 3.13 Packaging
- 3.14 Dependency boundaries
- 3.15 Binding principles
- 4. Out of scope
- 5. Observable negative cases
- Acceptance
- Verification
- Implementation record
- Decisions at approval
Frozen anchors
No frozen anchors declared.