Skip to content

zbus-2.0.0-beta.2

Choose a tag to compare

@zeenix zeenix released this 11 May 07:50
· 4701 commits to main since this release

Yet another beta rollout of the upcoming 2.0 release. The highlight of this release is azync::Proxy, including macro support to generate convenient and typed wrappers for it. Other changes:

  • azync::Connection::receive_specific::predicate now async. Like other async API taking an async closure, this shouldn't be any different either.
  • Make Connection's incoming message queue, leaky Instead of dropping all new messages after the queue is full, drop the oldest message in the queue to make room for the new one, instead. With the queue size as large as 64 by default, if the message hasn't yet been picked up by anyone, it likely never will be and the new messages might be of more interest.
  • Bump default max incoming message queue length to 64. Now with more test cases and them running in parallel, we easily end up with 32 messages, so bump it to 64.
  • Re-export futures_core so that it can be used in the macros.
  • Proxy::path now exposes path as ObjectPath.
  • Provide conversion from/to Connection to/from azync::Connection.
  • Add Connection::{inner, into_inner} methods. These methods provide access to the underlying azync::Connection.
  • Ensure proxy only received signals from its destination.
  • Support DBUS_COOKIE_SHA authentication.
  • Handshake API now private.
  • Many fixes and improvements to handshake code.
  • Fix return value of fdo::DBusProxy::release_name.
  • Make API consistent wrt ObjectPath arguments. We've a specific type for object paths but for convenience we've been allowing string types to be passed as object paths that we internally convert to ObjectPath or OwnedObjectPath. However, we've been inconsistent on this practice and require ObjectPath to be passed by the user in some places. We now expect users to always pass something that can be converted into an ObjectPath, which includes both &str and String.
  • Drop links to docs.rs from Cargo.toml file. The link for crates.io is automatically generated for us so specifying it manually could lead to link sending to latest stable release docs from an alpha or beta release page.
  • Update links in docs to point to our new cool repository location.
  • Rename azync::Stream to azync::MessageStream. It's better since we have other streams too (at least SignalStream). Also, azync::Sink to azync::MessageSink for consistency.
  • Fix return value of Proxy::disconnect_signal. If connection was for non-bus, we were returning false even if a signal handler was removed.
  • Drop dep on pollster.
  • Don't setup match rules for DBus.{NameAcquired, NameLost} signals. These signals are sent to the interested app directly and always.
  • Implement Clone for Message.
  • Add Debug impl for all Proxy types.
  • Other minor fixes.