cargo / zbus
zbus
What changed in zbus 6, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-12.
4 breaking5 new APIs and options2 performance7 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initzbus 618 changes
Breaking changes 4
Headers with an unended string or a repeated field are rejected.
Received messages whose path field is not an object path are rejected.
Connections check each received message's body, and received messages are checked as a whole rather than only by fields.
The interfaces of fdo::ManagedObjects use HashMap again, matching the InterfacesAdded signal and PropertiesProxy::get_all.
New APIs and options 5
Adds a method for a bus to check message bodies.
Adds Connection::send_all for sending messages.
Adds a method for a bus to set message senders.
Adds WriteHalf::send_messages for sending messages.
Match rules now support the eavesdrop key.
Performance 2
Sockets driven by zbus read ahead of each message.
Deserializing an OwnedMatchRule no longer copies its string.
Fixes and other changes 7
Checks message bodies without an if let guard.
Dictionary entries are counted when checking signatures.
References to unsized types are accepted as interface arguments again.
Nesting is limited for each signature.
Arguments that fail deserialization now receive an InvalidArgs reply.
Apostrophes in match rule strings are now escaped.
Match rule strings are now parsed according to the specification.