npm / @napi-rs/cli
@napi-rs/cli
What changed in @napi-rs/cli 3, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-19.
2 breaking1 new APIs and options1 performance2 behavior and defaults4 tooling16 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@napi-rs/cli 326 changes
Breaking changes 2
Conversion depth is bounded at 128 levels, preventing excessively deep serde_json::Value conversions.
The build now fails when a --pipe post-process command exits non-zero.
New APIs and options 1
The CLI can resolve the command from the provided arguments.
Performance 1
Type definition generation is parallelized deterministically.
Behavior and default changes 2
The threaded WASI worker pool is preloaded from the loader.
New projects now apply enableTypeDef when generating project files.
Tooling 4
The CLI recognizes the aarch64-unknown-freebsd target.
Generated JSON, TOML, YAML,
.d.ts, and JS/WASI loader files now share a house style; regenerating bindings may produce noisy diffs without behavior changes.The interactive new-project prompt now includes napi9.
The CLI is compatible with the latest wasi-sdk toolchain.
Fixes and other changes 16
The CLI keeps a WASI-managed root entry when it differs from package main.
On Android, generated Node loaders preopen the current working directory instead of
/, which Termux cannot open.Builds now select the matching emnapi archive and avoid double-linking _initialize on current WASI toolchains.
The variable now activates only when set to 'true' or 'error'.
Worker error messages are now received correctly.
New non-WASI projects no longer retain stale browser metadata.
WASI package generation preserves stricter Node engine ranges.
Generated class methods are preserved.
Pre-publish preserves existing optionalDependencies.
universalize resolves an absolute packageJsonPath correctly.
The pre-publish git log lookup now uses the target working directory.
Renaming a project now preserves its repository.
The CLI now uses jsPackageName from CLI options.
The CommonJS binding no longer uses createRequire.
Corrects how the CLI detects the OpenHarmony SDK path.
The package no longer invokes process.report on Windows.