Skip to content

chore: Merge 3.x branch into mainline#156

Open
keelerm84 wants to merge 18 commits intomainfrom
feat/3.x
Open

chore: Merge 3.x branch into mainline#156
keelerm84 wants to merge 18 commits intomainfrom
feat/3.x

Conversation

@keelerm84
Copy link
Member

BEGIN_COMMIT_OVERRIDE
feat!: Replace local hyper dependency with new launchdarkly-sdk-transport
feat!: Remove deprecated initialized_async function
feat!: Allow filtering all_flags_state to mobile only
feat: Support synchronous event sending with new flush_blocking method
feat!: Add native-tls feature
feat: Choose crypto library with crypto-(aws-lc-rs|openssl) features
feat!: Enable event compression by default
END_COMMIT_OVERRIDE

Update from hyper 0.14 to hyper 1.0 ecosystem, matching the
eventsource-client dependency. This includes:

- Upgrade http crate from 0.2 to 1.0
- Use hyper-util for legacy Client API
- Use http-body-util for body types
- Update hyper-rustls from 0.24 to 0.27
- Update all trait bounds and type annotations
- Add tower as direct dependency for Service trait

BREAKING CHANGE: hyper-related trait bounds have changed for custom
connector implementations. The Future associated type now requires Unpin
bound, and trait bounds have been updated to use tower::Service and
hyper_util::client::legacy::connect types.
Introduce a generic HttpTransport trait to decouple the SDK from
specific HTTP client implementations. This follows the pattern
established in eventsource-client.

- Add transport.rs with HttpTransport trait and error types
- Add transport_hyper.rs with hyper 1.0 implementation
- Make hyper an optional dependency via feature flags
- Use Bytes for request bodies (supports binary and empty)
- Stream response bodies via ByteStream type alias

This commit adds the abstraction without changing existing code.
Convert feature requester and polling data source to use the generic
HttpTransport trait instead of hyper Client directly.

- Replace HyperFeatureRequester<C> with HttpFeatureRequester<T>
- Replace HyperFeatureRequesterBuilder with HttpFeatureRequesterBuilder
- Update PollingDataSourceBuilder to accept transport
- Stream and collect response body for JSON parsing
- Remove hyper-specific imports and trait bounds
- Update test helpers to use HyperTransport

BREAKING CHANGE: PollingDataSourceBuilder generic parameter
changed from connector (C) to transport (T: HttpTransport).
@keelerm84 keelerm84 requested a review from a team as a code owner February 26, 2026 14:34
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.

1 participant