Skip to content

πŸ”– zbus 4.2.0

Compare
Choose a tag to compare
@github-actions github-actions released this 30 Apr 19:25
· 972 commits to main since this release
  • ✨ Make spawning tasks for method call handling, optional. dbus_interface now provides a spawn
    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 with connection::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.