Exact native inventory

Rust testing

The Rust crate owns 38 native VanillaTest cases. Node and Rust interoperability remains a separate two-case gate so neither count inflates the other.

38 native cases30 core + 8 transport2 interop directions
Native inventory38Rust correctness cases
Portable core30JSON, events, profiles, codec, errors, connection
Native transports8TCP, UDP, platform-local
Interop2Both Node / Rust role directions

VanillaTest owns the native result

[dev-dependencies]
vanilla-test = "=2.1.0"

This is the crate's sole development dependency and it has zero transitive dependencies. The crate has no runtime or build dependencies.

cargo test --manifest-path rust/node-ipc/Cargo.toml --test vanilla

The test binary uses harness = false; VanillaTest owns registration, exact counts, failures, and the final process status.

What the 38 cases cover

30 portable core cases

  • JSON values, escapes, nesting, numbers, and failures
  • Event envelopes and exact framing
  • Raw, Fast, Guarded, and Assured profiles
  • Limits, error codes, partial reads, and partial writes
  • In-memory Connection behavior

8 native transport cases

  • TCP framed and raw round trips
  • UDP framed, raw, and peer-isolated fragmentation
  • Unix stream or Windows named-pipe framed and raw round trips
  • Platform-local naming, ownership, cleanup, and exact rebind

Native platform matrix

PlatformRuntime transport evidenceLocal primitive
Linux38 native cases, including TCP, UDP, and local runtimeUnix-domain socket
macOS38 native cases, including TCP, UDP, and local runtimeUnix-domain socket
Windows38 native cases with bounded child supervision and rebind checksWindows named pipe

The workflow result is pass/fail authority. This page describes the required inventory; it does not turn an absent or failed CI lane into a pass.

Separate Node ↔ Rust gate

node rust/node-ipc/interop/vanilla-test.js

Two JavaScript VanillaTest cases validate five sequential framed messages with a 17-byte payload in each direction: Node client → Rust server and Rust client → Node server. Both peers validate every response and final frame count, then the suite proves no peer process remains.

Read the exact interoperability contract →

Release checks around correctness

Coverage boundary

Node V8 coverage does not measure Rust.

The hosted V8 report covers the Node.js implementation only. No Rust coverage percentage is claimed. Rust evidence is the exact native case inventory, platform execution, interoperability checks, compiler lints, documentation checks, and packaged-crate verification.

The 14.0.0 test scope is native. There is no browser or WASM suite.