# What changed in @napi-rs/triples

> 19 changes in @napi-rs/triples 3 from its official release notes, upgrade guides and advisories: 17 breaking, 1 new APIs and options. Each one cited. Sources checked 2026-11-03. HTML: https://unstale.sh/npm/@napi-rs/triples/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @napi-rs/triples 3

### Breaking changes

- The flag is removed; use --manifest-path to point at the crate's Cargo.toml. (3.0.0) — [upgrade guide](https://napi.rs/docs/more/v2-v3-migration-guide)
- The flag is removed; pass Cargo flags after -- instead. (3.0.0) — [upgrade guide](https://napi.rs/docs/more/v2-v3-migration-guide)
- This and the listed legacy JsValue APIs are behind compat-mode; migrate to the new APIs. (3.0.0) — [upgrade guide](https://napi.rs/docs/more/v2-v3-migration-guide)
- Use this flag to point napi build at the crate's Cargo.toml. (3.0.0) — [upgrade guide](https://napi.rs/docs/more/v2-v3-migration-guide)
- Flags after -- are passed through to cargo build. (3.0.0) — [upgrade guide](https://napi.rs/docs/more/v2-v3-migration-guide)
- Path flags resolve relative to --cwd or process.cwd() rather than --cargo-cwd or process.cwd(). (3.0.0) — [upgrade guide](https://napi.rs/docs/more/v2-v3-migration-guide)
- The create-npm-dir command is renamed; use create-npm-dirs. (3.0.0) — [upgrade guide](https://napi.rs/docs/more/v2-v3-migration-guide)
- Use this macro in place of napi::module_init. (3.0.0) — [upgrade guide](https://napi.rs/docs/more/v2-v3-migration-guide)
- This macro replaces #[module_exports] from compat-mode. (3.0.0) — [upgrade guide](https://napi.rs/docs/more/v2-v3-migration-guide)
- The macro moved to napi_derive::module_init. (3.0.0) — [upgrade guide](https://napi.rs/docs/more/v2-v3-migration-guide)
- The napi universal command is renamed to napi universalize. (3.0.0) — [upgrade guide](https://napi.rs/docs/more/v2-v3-migration-guide)
- Use binaryName instead of name for the binary name in the napi configuration. (3.0.0) — [upgrade guide](https://napi.rs/docs/more/v2-v3-migration-guide)
- The old nested package name field is no longer read; use napi.packageName instead. (3.0.0) — [upgrade guide](https://napi.rs/docs/more/v2-v3-migration-guide)
- Move the package name from napi.package.name to napi.packageName; v3 does not read the old nested field. (3.0.0) — [upgrade guide](https://napi.rs/docs/more/v2-v3-migration-guide)
- Use a flat targets array listing every target explicitly; the triples config has been removed. (3.0.0) — [upgrade guide](https://napi.rs/docs/more/v2-v3-migration-guide)
- The new CLI requires Node.js ^20.17.0 || ^22.13.0 || >=23.5.0 at build time; this does not change addon runtime support. (3.0.0) — [upgrade guide](https://napi.rs/docs/more/v2-v3-migration-guide)
- Rust 1.88 or newer is a prerequisite for the v3 migration. (3.0.0) — [upgrade guide](https://napi.rs/docs/more/v2-v3-migration-guide)

### New APIs and options

- Enable this feature to keep using deprecated types while migrating incrementally. (3.0.0) — [upgrade guide](https://napi.rs/docs/more/v2-v3-migration-guide)

### Tooling

- Committing these directories is no longer recommended; create them in CI with napi create-npm-dirs instead. (3.0.0) — [upgrade guide](https://napi.rs/docs/more/v2-v3-migration-guide)
