Releases: dbus2/zbus
Releases · dbus2/zbus
🔖 zbus_xmlgen 5.0.1
- ⬇️ Reduce
rust-version
to1.80
. #1107
🔖 zbus_xml 5.0.1
- ⬇️ Reduce
rust-version
to1.80
. #1107
🔖 zbus_names 4.1.0
- ⚡️ Use winnow for validation of all names. This greatly simplifies the code and in most
cases, also much faster. #1070. - 🥅 More appropriate error on bus name parsing failure.
- 🚸 More specific error on invalid name conversion.
- 🏷️ Add Error::InvalidNameConversion.
- 🗑️ Deprecate specific invalid name variants of Error.
- 🚸 Use Error::InvalidName variant for invalid name everywhere.
- 🏷️ Add Error::InvalidName variant and all name parsing failures now return this variant.
- ⬇️ Reduce
rust-version
to1.80
. #1107 - ➕ Add direct dep on
winnow
.
🔖 zbus 5.1.0
- ⬇️ Reduce
rust-version
to1.80
. #1107 - 🦺 Verify validity of names and object paths pased to macros at compile time.
- 🐛 Generate interface properties signal methods only when needed.
- ♻️ Use winnow for parsing GUID and D-Bus address strings. #1070
- ✨ Add support for
unixexec
transport. - 🔌 Add
Command
stdio socket type. This socket communicates with a spawned child process via
its standard input and output streams. - ➕ Add direct dep on
winnow
.
🔖 zvariant_utils 3.0.1
- ⚡️ Switch from
nom
towinnow
for signature parsing. This brings in 2 benefits:- The signature parsing code is now up to 30% faster. This directly translates to
encoding/decoding speed of variants (used extensively in the D-Bus/gvariant world). This is the
path that saw the least optimization in 5.0.0. - We'll now be able to remove
nom
andminimal-lexical
deps (recently introduced in 5.0.0).
Apparentlywinnow
was already our indirect dependency so no new deps needed.
- The signature parsing code is now up to 30% faster. This directly translates to
- ➕ Add a direct dep on
winnow
. - ➖ Drop now unneeded
nom
dependency.
🔖 zvariant 5.0.1
- 📌 Don't pin
zvariant_utils
dep. We don't always releasezvariant_utils
together with other
crates, so unlike the macros crates, the versions don't need to be tied together. This will also
allow us to bringzvariant_utils
improvements to users without having to release all dependent
packages as well.
🔖 zbus 5.0.1
- 📌 Don't pin
zvariant_utils
dep. We don't always releasezvariant_utils
together with other
crates, so unlike the macros crates, the versions don't need to be tied together. This will also
allow us to bringzvariant_utils
improvements to users without having to release all dependent
packages as well.
🔖 zbus_xmlgen 5.0.0
- ⬆️ Upgrade dependencies:
- zbus 5.0.0
- zbus_xml 5.0.0
- clap 4.5.4.
- ⬆️ Bump MSRV to 1.81.
- ➖ Remove direct dep on zvariant.
- 🩹 Set visibility of generated proxy to pub. This was the default visibility until
proxy
macro started to respect the visibility of the input trait. Let's set it topub
by default as
that's what most folks will likely want. If not, they can easily modify it.
🔖 zbus 5.0.0
- 👽️ Adapt to zvariant 5.0 API. This brings in massive performance improvements to message
encoding and decoding. - 💥 Breakinging changes:
- Message body signature now mandatory.
proxy
macro respects visibility. This includes all types generated byproxy
. Unfortunately
this means that the existing code will have to set the visiblity explicitly topub
if they
were relying on the generated proxy to be public.- Drop support for
DBUS_COOKIE_SHA1
auth mechanism. #727- It drags the
sha1
crate as a dependency, which can be problematic for some users. #543 - It makes the handshake more complex, not allowing to pipeline all the commands.
- It's not widely used. If
EXTERNAL
is not an option, you might as well just useANONYMOUS
.
- It drags the
- 🛂 Only support one authentication method at a time. Now that we're down to only two
authentication mechanisms with one of them being no-authentication, this really makes sense
since we can just autodetect what authentication method to use for a specific socket type on a
specific platform. This also simplifies the handshake logic and will allow us to pipeline the
whole client-side handshake in the future, when we can drop the xdg-dbus-proxy workarounds. #781 - Drop unnecessary lifetimes on genarated signal streams.
- Streamline Message & message::Builder constructors. They should be named the same and take the
same type of arguments. - proxy::Defaults now has typed values.
- Rename proxy::ProxyDefault to proxy::Defaults.
- 🔥 Drop API deprecated in 4.0.
- Minor changes in
fdo
API.
- ✨ New features:
interface
now generates a trait, Signals, that provides the same signal
methods as user specifies but w/o theSignalEmitter
argument (#871). The macro also generates
2 implementations of this trait for:- InterfaceRef, for emitting signals from outside the context of an interface
method. - SignalEmitter, for emitting signals from inside an interface methods.
- InterfaceRef, for emitting signals from outside the context of an interface
- Add
SignalContext::emit
. Add a new method to SignalContext that allows emitting a signal for
a given interface and singal name. - Add Connection::graceful_shutdown.
- Add conn::AuthMechanism::as_str(). This gives you a static string representation of the
mechanism. We'll use this in a following commit to avoid an allocation. - Add Socket::auth_mechanism. The socket impl will now inform us which authentication mechanism
should be used with it. The implementation can choose this based on the socket type and the
target platform. - Allow specifying visibility of interface-generated proxy. This implies that by default, it will
be private. - ObjectServer now implements Clone.
- 🚚 Renames and moves:
- Rename
SignalContext
toSignalEmitter
. Since now this emits signals, this is a more
appropriate name. We keep a deprecatedSignalContext
type alias as well as the
signal_context
attribute ofinterface
for not completely breaking the existing code. - Move AuthMechanism from crate root to conn. We leave the
AuthMechanism
in the root as
deprecated.
- Rename
- 🚑️ Gracefully handle serial number wrap. When SERIAL_NUM wraps past u32::MAX back to zero,
the conversion to NonZeroU32 panics. #946 - 🩹 Fix some lifetimes in Proxy API. We were unnecessarily constraining the lifetimes in some of
theProxy
API. - ⚡️ Optimizations
- Only enable Guid::generate() if
p2p
feature is enabled. - Use relaxed load order for serial number fetch & add.
- msg::Header no longer allocates.
- Avoid deserialization of msg::Header needlessly.
- Only enable Guid::generate() if
- 🚩 Add
serde_bytes
Cargo feature. This is just a proxy feature forzvariant
'sserde_bytes
feature. #1052 - 🚩 Feature-gate blocking API. Add a cargo feature called
blocking-api
tozbus
&
zbus_macros
. When enabled, thezbus::blocking
module is available. When disabled,proxy
macro ignores the value ofgen_blocking
attribute and doesn't generate blocking proxy. This
feature is enabled by default. - ➕ Add
camino
feature as proxy for zvariant feature of the same name. - ➖ Dependendies removed:
- Remove dependency on
sha1
crate. - Drop direct dep on
futures-sink
. rand
now an optional dependency. It is only enabled ifp2p
feature is enabled. This means
thatrand
dependency is dropped for typical users.
- Remove dependency on
- ⬆️ Updated dependencies:
- zvariant to 5.0.
- windows-sys to 0.59.
- tokio-vsock 5. #643
- ⬆️ Bump MSRV to 1.81.
- 📝 Documentation
- Tidy documentation across entire crate.
- Improve
blocking
module docs. - Correct wrong documentation links.
- Remove a now incorrect warning from Message::header method.
- ✏️ Fix doc list item missing indentation.
- 🚨 Drop invalid cfg from documentation example.
🔖 zvariant_utils 3.0.0
- 🧑💻 Add support for multiple lists to def_attrs! macro.
- ✨ Add
Signature
type that represents a D-Bus type signature in parsed form. - 🚚 Move
serialized::Format
from zvariant to zvariant_utils. - 🔥 Drop
old_new
macro. Also the relatedAttrParse
trait. We only needed it to support the
olddbus_proxy
anddbus_interface
attributes in zbus macros but we just dropped them. - 🚩 Add
gvariant
cargo feature. This is the same feature flag we've in other crates. - ➕ New deps:
serde
nom
static_assertions
- ⬆️ Bump MSRV to 1.81.