Skip to content

Rust SDK Releases — June 2026 (detailed)#145

Closed
stephanie-anderson wants to merge 2 commits into
sdk-releases-june-2026/rustfrom
sdk-releases-june-2026/rust-detailed
Closed

Rust SDK Releases — June 2026 (detailed)#145
stephanie-anderson wants to merge 2 commits into
sdk-releases-june-2026/rustfrom
sdk-releases-june-2026/rust-detailed

Conversation

@stephanie-anderson

Copy link
Copy Markdown
Contributor

Builds on #132 with three improvements:

  • Table dates: each release now shows its actual publish date
  • TL;DR: ## What changed## TL;DR
  • Prose release notes: new section structured by craft ordering (New Features → Deprecations → Bug Fixes; Internal omitted) for 0.48.3

--

View Junior Session in Sentry

@vercel

vercel Bot commented Jul 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
sentry-changelog Ready Ready Preview, Comment Jul 11, 2026 9:53pm

Request Review

…l dates

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: rahul <rahul.chhabria@sentry.io>
Co-Authored-By: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com>

@szokeasaurusrex szokeasaurusrex left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good for the most part, but I might remove a couple sections.

Also, it would be cool to have links into the API docs when mentioning APIs. I added those in a separate branch and created a PR against this branch: #149.

broadcastCategory: sdk_update
published: false
date: 2026-06-30
author: rahulchhabria@sentry.io

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is that correct? 😅


0.48.3 makes the SDK automatically track data it discards and report aggregate counts to Sentry's Stats page. Drops from transport layers, background queues, rate-limit backoff, sampling decisions, event processors, and `before_send`/`before_send_transaction` callbacks are all covered. For dropped transactions, span counts are included; for dropped logs and metrics, byte counts are included. No configuration is required — the SDK batches these reports and sends them in future envelopes automatically.

The transport API is modernised in 0.48.3. `TransportFactory::create_transport_with_options` is added as the preferred way to construct transports. It receives a `TransportOptions` struct containing only transport-relevant fields (DSN, user agent, proxy settings, TLS configuration) rather than full `ClientOptions`, making custom transports simpler to write. Transport-specific options types are also introduced — `ReqwestHttpTransportOptions`, `CurlHttpTransportOptions`, `UreqHttpTransportOptions`, and `EmbeddedSVCHttpTransportOptions` — each with `with_options` constructors. The existing `TransportFactory::create_transport` continues to work but now receives `ClientOptions` reconstructed from `TransportOptions`, which only includes transport-relevant fields.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

l: These changes only affect those who have custom transports or who manually configure the built-in transports. As this is likely a minority of users, I would clarify the wording so that we don't leave folks wondering whether these changes affect them.

Suggested change
The transport API is modernised in 0.48.3. `TransportFactory::create_transport_with_options` is added as the preferred way to construct transports. It receives a `TransportOptions` struct containing only transport-relevant fields (DSN, user agent, proxy settings, TLS configuration) rather than full `ClientOptions`, making custom transports simpler to write. Transport-specific options types are also introduced — `ReqwestHttpTransportOptions`, `CurlHttpTransportOptions`, `UreqHttpTransportOptions`, and `EmbeddedSVCHttpTransportOptions` — each with `with_options` constructors. The existing `TransportFactory::create_transport` continues to work but now receives `ClientOptions` reconstructed from `TransportOptions`, which only includes transport-relevant fields.
For users who configure built-in transports or who use custom transports, the transport API has been modernised in 0.48.3. `TransportFactory::create_transport_with_options` is added as the preferred way to construct transports. It receives a `TransportOptions` struct containing only transport-relevant fields (DSN, user agent, proxy settings, TLS configuration) rather than full `ClientOptions`, making custom transports simpler to write. Transport-specific options types are also introduced — `ReqwestHttpTransportOptions`, `CurlHttpTransportOptions`, `UreqHttpTransportOptions`, and `EmbeddedSVCHttpTransportOptions` — each with `with_options` constructors. The existing `TransportFactory::create_transport` continues to work but now receives `ClientOptions` reconstructed from `TransportOptions`, which only includes transport-relevant fields. Nothing changes for users who use the built-in transports without customizations.


The transport API is modernised in 0.48.3. `TransportFactory::create_transport_with_options` is added as the preferred way to construct transports. It receives a `TransportOptions` struct containing only transport-relevant fields (DSN, user agent, proxy settings, TLS configuration) rather than full `ClientOptions`, making custom transports simpler to write. Transport-specific options types are also introduced — `ReqwestHttpTransportOptions`, `CurlHttpTransportOptions`, `UreqHttpTransportOptions`, and `EmbeddedSVCHttpTransportOptions` — each with `with_options` constructors. The existing `TransportFactory::create_transport` continues to work but now receives `ClientOptions` reconstructed from `TransportOptions`, which only includes transport-relevant fields.

`EnvelopeFilter` and `EnvelopeFilterCallbacks` are new in 0.48.3 and allow callers to observe which envelope items are removed by `Envelope::filter`. Previously, the closure received items as they were removed but attachments dropped alongside their parent event or transaction were not surfaced. The new types make all filtered items visible.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

m: I doubt anyone other than us will use these APIs; the APIs are only public because they need to be, as they cross the crate boundary.

I am guessing this changelog is meant to be more end-user-facing than the Rust SDK changelog itself, so I would recommend we just omit this section, and keep it only in the SDK changelog.

Suggested change
`EnvelopeFilter` and `EnvelopeFilterCallbacks` are new in 0.48.3 and allow callers to observe which envelope items are removed by `Envelope::filter`. Previously, the closure received items as they were removed but attachments dropped alongside their parent event or transaction were not surfaced. The new types make all filtered items visible.

- **Bug fix (0.48.3):** Fixed `ureq` transport handling for 429 rate-limit and 413 payload-too-large HTTP responses.
- SDK now reports discarded data to Sentry's Stats page — transport drops, sampling, event processors, and `before_send*` callbacks are all tracked automatically.
- New `TransportFactory::create_transport_with_options` and transport-specific options types for cleaner custom transport construction.
- `EnvelopeFilter` / `EnvelopeFilterCallbacks` to observe all items removed by `Envelope::filter`, including attachments.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

m: See comment below

Suggested change
- `EnvelopeFilter` / `EnvelopeFilterCallbacks` to observe all items removed by `Envelope::filter`, including attachments.

@rahulchhabria
rahulchhabria marked this pull request as ready for review July 11, 2026 03:51
Omit EnvelopeFilter callouts (internal-facing), clarify transport API
changes only affect custom/configured transports, and include docs.rs
API links from #149.

Co-Authored-By: rahul <rahul.chhabria@sentry.io>

@rahulchhabria rahulchhabria left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed @szokeasaurusrex's review:

  • Clarified transport API changes only affect users with custom/configured transports
  • Omitted EnvelopeFilter / EnvelopeFilterCallbacks (internal-facing)
  • Kept docs.rs API links from #149
  • Author remains rahulchhabria@sentry.io (that's the intentional byline for these changelog posts)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants