Greenfield rewrite of Zod v4.4.3: drop-in TypeScript surface, Rust validation core.
cargo build --workspace # Rust crates
cargo nextest run --workspace # Rust tests
cargo clippy --workspace --all-targets -- -D warnings
cargo fmt --all -- --check
pnpm install
pnpm -r build # TS packages (tsc)
pnpm -C packages/conformance test # vendored Zod v4 corpus
pnpm exec oxlint --config .oxlintrc.json packages/- Keep the workspace package name as
zodrs; usepublishConfig.name: zod-rsto publish to npm under thezod-rsname. - After installing the packed tarball with lifecycle scripts disabled, run
pnpm -C packages/zodrs verify:installed <package-directory> nativeandpnpm -C packages/zodrs verify:installed <package-directory> wasm. These checks load the installed raw addons directly, so TypeScript fallback cannot hide a missing release artifact.
Pre-commit hooks are managed by lefthook (lefthook.yml); install once with
pnpm exec lefthook install.
crates/zodrsis pure Rust and never depends on napi. The Rust core never calls JavaScript; a plan containing host closures is not JSON-eligible.crates/zodrs-nodeis the factored-out unsafe/napi surface (cdylib).- The vendored corpus in
packages/conformance/tests/is the conformance oracle. Excisions are recorded inpackages/conformance/EXCISIONS.md; anything failing that was not excised is a bug in zodrs. - Zod source under
.references/is a behavior reference only. Never copy implementation code from it.
Task-scoped success criteria live in .agent-tasks/<task-id>/GOALS.md and
never in this file. The directory is git-ignored scratch; delete it when the
task merges.