π zbus 4.2.0
·
972 commits
to main
since this release
- β¨ Make spawning tasks for method call handling, optional.
dbus_interface
now provides aspawn
attribute to control whether the method call handling is spawned as a task or not. - β¨ Add serial to Message's Debug representation.
- π Add connection::Builder::authenticated_socket for creating a connection with a
pre-authenticated socket. This could also be socket that doesn't need any authentication. #590. - β¨ Add connection::socket::{ReadHalf::receive_message, WriteHalf::send_message} methods. These
method have a default implementation that just uses the lower-level sibling methods. Implementers
can either override this method or the lower-level method, depending on the underlying socket
they're using. - β¨ Introducing connection::socket::Channel. This new socket type, uses channels for in-process p2p
communication. This can be used withconnection::Builder::authenticated_socket
to create a
connection for in-process communication. #591. - β‘οΈ Pipeline client-side handshake as much as possible, including the
Hello
method call to the
bus. This reduces unnecessary round-trips & hence latencies. #493 - β¨ Add connection::Builder::auth_mechanism. Unlike auth_mechanisms method, this method only allows
one mechanism to be set. - ποΈ Deprecate connection::Builder::auth_mechansims. In favor of
auth_mechansim
. This is in
preparation for #731, when we will remove this method entirely. - π₯
Don't assert on invalid serve_at() usage. Document that standard interfaces are already added.
Return an error instead of an explicit panic if attempted, since it is not an internal invariant. - π₯ Catch interface handler error.
- π Reduce the amount of tracing data when adding traces in handlers (duplicated "msg").
- π₯ Remove now unnecessary hack to ensure ObjectManager signals aren't sent before Hello method.
- π Instrument all async methods of server handshake.
- π© Support autolaunch address on Windows without
windows-gdbus
feature and associated hacks.
Turns out that the reference D-Bus implementation supports autolaunch fine and we don't need
special support for gdbus binary. Hopefully, in the near future, busd will also support it. #687 - π Clearly document
Interface
being unstable API. Also recommend what people should do when
dbus_interface
isn't enough. - π₯ Drop impossible scope on autolaunch session bus address. We currently can't handle scopes on
autolaunch addresses so there is no need to create an address with scopes. - π₯
Correctly handle cancellation of handshake in server. If the client sends a
CANCEL
command
during a handshake, the server must move on to the next handshake method available (if any). - π Server-side handshake should be as lenient as the spec says. If a received command from the
client is unknown or invalid in the current context, we shouldn't completely error out but rather
send an error and continue as if nothing happened. - π Exclude newline terminators from String repr of commands. Otherwise it messes up the logging
output. - π·οΈ Implement Default for address::transport::Autolaunch.
- π¨ Remove duplicate trait bounds.
- π Use the new logo in docs.
- β¬οΈ Updated depdencies:
- blocking to 1.6.0
- async-fs to 2.1.2
- async-task to 4.7.1
- async-process to 2.2.2
- async-executor to 1.11.0
- async-trait to 0.1.80
- vsock to 0.5.0
- serde_repr to 0.1.19
- event-listener to 5.3.0
- async-io to 2.3.2
- async-recursion to 1.1.1
- tempfile to 3.10.1
- quote to 1.0.36
- zvariant_utils to 1.1.1
- β Removed depdencies:
- regex
- derivative
- π¨ Use imports over qualifies in macros.
- βοΈ Fix some typos.
- β»οΈ Many internal code cleanups and improvements.