NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #3273 most downloaded on crates.io
Macros to keep types in lockstep with DBus XML definitions
Last release 2 months ago
27 Jul 2026
Release timing varies
gaps range from 1 weeks to 9 months
Nearly every release is documented
notes for 16 of 16 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
16 releases · first in 2023
One column per quarter.
Most notable and breaking change is the Result<T> type alias returns a concrete LockstepError instead of a rype erased, boxed object. For the base ret…
-## [0.7.0] - 2026-07-27
Most notable and breaking change is the Result<T> type alias returns a concrete LockstepError instead of a rype erased, boxed object.
For the base retrieval functions this means users can now conveniently match on LockstepError variants to handle an error.
Also zbus-lockstep does a better job distinguishing between In and Out-ward arguments if users lookup the type of an argument by name.
Before, if In and Out arguments had the same name users would receive the signature for first argument encountered with that name, which might be the wrong one.
Lastly, the lookup functions have been sped up, for what it is worth.
resolve_xml_path to concrete erros (0d12452)Result alias contains concrete Error type (27d1a54)LockstepError from functions. (2ca38af)arg_name argument equally across fns (ff05116)Full Changelog: v0.6.0...v0.7.0
Improve README: show how crate is used as [dev-dependency] .
Improve README: show how crate is used as [dev-dependency].
All macros, including [validate] try to do less when resolving xml path..
Introduces macros feature which re-exports the validate proc-macro,
allowing users to omit the zbus-lockstep-macros from dependencies.
Upgrade to zbus-xml v5.2.0, fxing RUSTSEC-2026-0194
Various small improvements.
Full Changelog: https://github.com/luukvanderduim/zbus-lockstep/commits/v0.6.0
This release documents how to use the crate as [dev-dependency].
The validate macro will return early when env variable LOCKSTEP_XML_PATH is found.
Introduces macros feature which re-exports the validate proc-macro,
allowing users to omit the zbus-lockstep-macros dependency.
macros feature (40a3aa9)resolve_xml_path (09e1e67)dev-dependencies latest (955a5ce)ignore blocks to tests (9440a61)chore: Release zbus-lockstep-macros version 0.5.2
chore: Release zbus-lockstep-macros version 0.5.2
chore: Release zbus-lockstep-macros version 0.5.1
chore: Release zbus-lockstep-macros version 0.5.1
feat: make [validate] attribute more flexible (#6) Tait Hoyem
* Add support for any type - no longer restrict to structs.
build: Support bazel - (#5) by Nils Andre use CARGO_MANIFEST_DIR instead of current dir.
### Update dependencies - Move to zbus 5.0 (by TTWNO)
chore: Release zbus-lockstep-macros version 0.4.4
chore: Release zbus-lockstep-macros version 0.4.4
chore: Release zbus-lockstep-macros version 0.4.3
chore: Release zbus-lockstep-macros version 0.4.3
validate now requires a comma separated argument list if multiple arguments are supplied.resolve_xml_path can now find ..xml/ or ..XML/ too.resolve_xml_path🚸 Remove requirement zbus_xml to be in scope at macro call site.
zbus_xml to be in scope at macro call site.Copy, Clone, Hash, to public MshType.📝 Update Readme to zbus-xml instead of zbus
zbus-xml instead of zbus#[cfg(test)]➖ Remove signatures_are_eq, assert_signatures_eq! and assert_signatures_ne!.
➖ Swap zbus for zbus_xml
➖ Remove signatures_are_eq, assert_signatures_eq! and
assert_signatures_ne!.
➖ Remove tests for signatures_are_eq, assert_signatures_eq! and
assert_signatures_ne!.
➖ Do not add changed Cargo.lock
✨ property_type_signature macro accepts identifying args.
property_type_signature macro accepts identifying args.property_type_signature!(member: "Frequency", interface: "org.noise.Kazoo")
signal_body_type_signature macro accepts identifying args.signal_body_type_signature!(member: "Telegram", interface: "org.mail.Man")
method_args_signature macro accepts identifying args. method_args_signature!(member: "Frequency", interface: "org.noise.Kazoo")
argument parameter to method_return_signature macro.argument parameter to method_args_signature macro.argument parameter to signal_body_type_signature macro.Remove second 2-arg macro invocations.
property_type_signature macro doc examples.signal_body_type_signature macro doc examples.method_return_signature macro doc examples.argument feature
New examples to show how the macros may be called.property_type_signature macro identifier unit tests.signal_body_signature macro identifier unit tests.method_args_signature macro identifier unit tests.method_return_signature macro identifier unit tests.🐛 In macros with 'interface' arms, pass String instead of &str
String instead of &str🩹 Fully qualify signatures_are_eq in macros.
signatures_are_eq in macros.🩹 Fully qualify find_definition_in_dbus_xml! in macros.
find_definition_in_dbus_xml! in macros.✅ Ignore examples from test
✅ Adds tests for XML path retrieval macros:
method_return_signature
method_args_signature
signal_body_type_signature
property_type_signature
✨ Add signature retrieval macros for each msg-type
✨ Add signature retrieval macros for each msg-type
resolve_xml_path functionfind_definition_in_dbus_xml Is used in macros:method_return_signaturemethod_args_signatureproperty_type_signaturesignal_body_type_signatureCursor<str>, read from a File.README.mdvalidate macro documentationCache.xmlmarshall from public APIRemoveNode with an xml-path as env-variable or as
argument.Your coding agent can read these notes before it upgrades. Set up the MCP server →