Rust SDK Releases — June 2026 (detailed)#145
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
a4ea75f to
41f4cee
Compare
…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>
41f4cee to
725280a
Compare
szokeasaurusrex
left a comment
There was a problem hiding this comment.
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 |
|
|
||
| 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. |
There was a problem hiding this comment.
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.
| 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. |
There was a problem hiding this comment.
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.
| `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. |
There was a problem hiding this comment.
m: See comment below
| - `EnvelopeFilter` / `EnvelopeFilterCallbacks` to observe all items removed by `Envelope::filter`, including attachments. |
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
left a comment
There was a problem hiding this comment.
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)
Builds on #132 with three improvements:
## What changed→## TL;DR--
View Junior Session in Sentry