# What changed in dbus-native

> 32 changes in dbus-native 0.13 to 0.16 from its official release notes, upgrade guides and advisories: 10 breaking, 10 new APIs and options. Each one cited. Sources checked 2026-11-10. HTML: https://unstale.sh/npm/dbus-native/

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

## dbus-native 0.16

### New APIs and options

- Bun gains a Unix transport that carries file descriptors. (0.16.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.16.0)

### Performance

- Introspection XML loads with the first proxy rather than when the package loads. (0.16.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.16.0)

### Fixes and other changes

- A failed Hello now closes the connection instead of crashing the process. (0.16.3) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.16.3)
- Calling unref() on a Bun transport connection lets the process exit. (0.16.2) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.16.2)
- Polling retries EINTR without limit, so a d-bus connection survives a GC-heavy script. (0.16.1) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.16.1)

## dbus-native 0.15

### Breaking changes

- unixexec: addresses now read argv1, argv2, ... instead of arg1, arg2, ...; old spellings pass no arguments, while spec-conformant addresses now work. (0.15.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.15.0)

### Fixes and other changes

- defineInterface refuses positional in/out rather than indexing them. (0.15.2) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.15.2)
- A message that cannot be written now settles its call once, preventing repeated settlement. (0.15.1) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.15.1)
- A bus keeps the options it was given and cannot be crashed by a path. (0.15.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.15.0)
- Exported signals follow the export and stop when it ends. (0.15.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.15.0)

## dbus-native 0.14

### Breaking changes

- Use this command in place of the removed `dbus2js` binary. (0.14.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.14.0)
- The binary is removed; use `dbus-native types` instead. (0.14.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.14.0)
- The file is removed because it required a package that was never a dependency and threw on require. (0.14.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.14.0)
- The package is no longer a dependency; Long values are still accepted on input. (0.14.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.14.0)
- Node.js 22.12.0 or newer is required, up from 20.8.0. (0.14.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.14.0)
- Defaults to true, so variants read as their value and string-keyed dicts as plain objects. (0.14.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.14.0)
- Defaults to true, so `x` and `t` values read as bigint; pass false for a lossy number. (0.14.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.14.0)
- ReturnLongjs now throws instead of being ignored; pass returnBigInt: false for a lossy number. (0.14.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.14.0)
- Calls now reject with a TimeoutError after 25 seconds by default; set timeout to 0 to restore the old behavior or raise it for longer methods. (0.14.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.14.0)

## dbus-native 0.13

### New APIs and options

- Provides a live view of a service's object tree. (0.13.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.13.0)
- Exposes the remote object as an object. (0.13.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.13.0)
- Declares a service without positional arrays. (0.13.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.13.0)
- The library can serve org.freedesktop.DBus.ObjectManager. (0.13.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.13.0)
- Adds bounded proxy signals. (0.13.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.13.0)
- Adds bounded proxy watching. (0.13.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.13.0)
- Opt-in reconnect restores names and match rules. (0.13.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.13.0)
- UNIX_FD can be carried over a transport supplied by the caller. (0.13.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.13.0)
- The 'wrap' variant lets a variant carry its type without the tree. (0.13.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.13.0)

### Behavior and default changes

- bus.close() is disposable. (0.13.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.13.0)
- bus.ownName() is disposable. (0.13.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.13.0)
- bus.watch() is disposable. (0.13.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.13.0)

### Fixes and other changes

- The library no longer answers a method call addressed to someone else. (0.13.0) — [release notes](https://github.com/sidorares/dbus-native/releases/tag/v0.13.0)
