pub type DefaultClient = Client<DefaultProvider>;Expand description
The client this build establishes sessions with.
This alias is where the product’s provider choice lives, and it is the
line decision 0056 step 4 flips. Client on its own defaults to the same
thing, but Rust does not apply a default type parameter when inferring an
associated function call, so Client::connect(..) cannot tell which
provider it is for. Callers write DefaultClient::connect(..) instead.
Naming it here rather than making callers write the provider at every call site is what made the flip on 2026-08-04 one edit rather than a sweep: a caller says “the default”, not which provider it is.
It said Client<Party> until that day, and that was the bug the flip
found. Naming the concrete provider here rather than
crypto::DefaultProvider meant the client kept signing as libsignal after
the server had moved to verifying as open-tacenta, and every provisioning
attempt failed its possession check. Two halves of one deployment have to
move together, which CryptoProvider::verify_challenge says in its own
documentation; the seam was there and this alias was routing around it.
Aliased Type§
pub struct DefaultClient { /* private fields */ }