Skip to content

Bump wacore from 0.5.0 to 0.6.0#7

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/wacore-0.6.0
Open

Bump wacore from 0.5.0 to 0.6.0#7
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/wacore-0.6.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 11, 2026

Copy link
Copy Markdown
Contributor

Bumps wacore from 0.5.0 to 0.6.0.

Release notes

Sourced from wacore's releases.

v0.6.0

This is the largest release since the project's first crates.io publish. It brings the receive and send pipelines into WhatsApp Web behavioural parity, lands a major performance overhaul (zero-copy node decoding, take-ownership session cache, allocation diet across every hot path), adds first-class support for albums, sticker packs, ephemeral chats, status reactions, message-edit decryption and group call detection, and exposes new extension points for HTTP, transport, and crypto.

Many APIs changed — see Breaking changes below — but the new shape eliminates a long tail of clones, redundant decodes, and stringly-typed parameters that were holding back further optimisation. Downstream crates will need a one-shot migration; in exchange the receive pipeline performs effectively zero deep clones on dispatch.

Highlights

  • Message edits via secret_encrypted_message (#618) — WhatsApp's new E2E envelope for edits (secretEncType = MESSAGE_EDIT) is now decryptable. Ships MessageEdits::decrypt and a generalised secret_enc_addon helper covering the full addon family (PollVote, PollEdit, PollAddOption, EventResponse, EventEdit, EncReaction, EncComment, ReportToken, MessageEdit).
  • Album sends (#449) and sticker pack sends (#454).
  • Ephemeral messages (#450) — send and receive of disappearing chats.
  • Status reactions (#541, #563, #568, #569).
  • Pin / unpin (#424), Client::logout() (#422), per-message message_id in SendOptions (#423).
  • Incoming call events + group call detection (#562, #599).
  • ClientProfile for noise-handshake identity (#596) and Noise_IK + XXfallback (#598).
  • Pluggable SignalCryptoProvider (#561) — bring your own AES-CBC/GCM + HMAC-SHA256 backend.
  • Proxy + custom TLS extension points (#536) and a generic from_websocket transport API (#486).
  • Public refresh_prekeys() (#538) for device-migration flows.
  • LID + PN support in is_on_whatsapp (#453).
  • Lazy history sync blob (#533) — history sync events expose a LazyHistorySync you decode on demand.
  • Full GroupMetadata returned by create_group / community.create (#615).
  • MEX notification dispatcher + consolidated doc-id registry (#574).
  • 32-bit target support via portable-atomic (#481).

Performance

This release is built around a sustained allocation-discipline pass on the receive, send, and signal paths. Selected wins:

  • Receive pipeline: zero-copy node decoding via yoke (#513), NodeStr replacing Cow<str> for inline decoded strings (#514), Arc<wa::Message> end-to-end on dispatch (#613), and Arc<MessageInfo> across retry/PDO (#520). Zero-copy receive pipeline + take-ownership session cache (#522).
  • Startup: −21% allocations, −31% peak heap (#525).
  • Connect time: −23% total allocs, −43% connect-time allocs (#551).
  • Hot-path audits: 11 trims from a targeted pass (#570), per-device sender-key tracking cache (#445), parallel group encrypt fan-out (#610).
  • Token lookup: PHF + SipHash replaced with hashify PTHash (FNV-1a) (#544); single/double-byte token maps unified into one PHF lookup (#543).
  • Jid / nodes: CompactString for Jid.user, NodeValue, NodeContent (#512); zero-copy Serialize for the NodeRef family (#539); zero-alloc dedup (#500); eliminated fmt::Write dispatch from JID formatting (#540).
  • Cache miss penalty: unified device resolution removed a ~700 ms latency spike on cold lookups (#428).
  • Signal store: lightweight PN, cache-first identity, reusable flush buffer (#554); Bytes for sessions, [u8; 32] for identities, pre-encoded acks (#555).
  • Decrypt hot path: LID-PN persist + migrations off-loaded from the decrypt path (#578).

WhatsApp Web compliance

A major theme of 0.6.0. The wire format, addressing, retry, and key-management code paths now match WA Web's reference behaviour:

  • Pair + ADVcompanion_platform_id derivation, ADV HMAC enforcement, <prop> round-trip, Android → Chrome mapping (#592, #593, #594, #595, #601).
  • DM multi-device fanout with phash validation (#524); single-device DM retry with chat/requester separation + alternate key lookup (#549, #550).
  • Group / status session rebuild on retry (#559).
  • SKDM — always distribute on first group send, keep tracker on identity change, close forward-secrecy gaps (#603, #604).
  • LID / PN / Hosted addressing — Signal address for Hosted JIDs (#605), unified get_lid_pn_entry(&Jid) (#487), session migration via signal cache (#482), status@broadcast resolves to @lid (#609).
  • Identity change handler completed to match WA Web (#489, #490).
  • PDO recovery + UndecryptableMessage dispatch (#585), <unavailable> via PDO (#506).
  • Stale device filtering via decoded key-index-list (#469); sender-key cache invalidation on device changes (#489).
  • view_once nested-wrapper detection (#602).

... (truncated)

Commits
  • 56ed1b0 ci(release): install cargo-release via taiki-e action (#620)
  • fcc9739 chore: update all deps
  • b2612d1 chore(release): bump workspace to 0.6.0 (#619)
  • 65fb66a feat(message_edit): decrypt secretEncryptedMessage MESSAGE_EDIT envelope (#618)
  • 88a0fe0 feat(groups): return full GroupMetadata from create_group / community.create ...
  • 7bd875a feat(history_sync): expose peer_data_request_session_id on LazyHistorySync (#...
  • ceb62b8 perf(events): share wa::Message via Arc end-to-end (zero deep-clone on dispat...
  • 240d631 perf(send): parallelize group encrypt fan-out + adjacent wins (#610)
  • 64cad79 fix(portable_cache): add iter() to mirror moka::Cache (#612)
  • ee65b63 refactor(time): split monotonic clock from wall clock (#611)
  • Additional commits viewable in compare view

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update rust code labels Jul 11, 2026
Bumps [wacore](https://github.com/jlucaso1/whatsapp-rust) from 0.5.0 to 0.6.0.
- [Release notes](https://github.com/jlucaso1/whatsapp-rust/releases)
- [Changelog](https://github.com/oxidezap/whatsapp-rust/blob/main/release.toml)
- [Commits](oxidezap/whatsapp-rust@v0.5.0...v0.6.0)

---
updated-dependencies:
- dependency-name: wacore
  dependency-version: 0.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot force-pushed the dependabot/cargo/wacore-0.6.0 branch from 13563e9 to 736869f Compare July 11, 2026 06:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants