Breaking changes:
- api: replace the
drainConnections()
method with a broaderresetConnectivityState()
. (#2225). - api: disallow setting 'host' header directly (#2275)
- android: respect Android's NetworkSecurityPolicy isCleartextTrafficPermitted APIs.
- net: enable happy eyeballs by default (#2272)
- iOS: remove support for installing via CocoaPods, which had not worked since 2020 (#2215)
- iOS: enable usage of
NWPathMonitor
by default (#2329) - iOS: replace
enableNetworkPathMonitor
with a newsetNetworkMonitoringMode
API to allow disabling monitoring (#2345) - iOS: release artifacts no longer embed bitcode
- api: engines are no longer a singleton, you may need to update your code to only create engines once and hold on to them.
You also cannot assume that anenvoy_engine_t
value of1
will return the default engine.
Support for using multiple engines concurrently is coming later. (#2129)
Bugfixes:
- iOS: change release artifacts to use xcframeworks (#2216)
- Cronvoy: Cancel the scheduled onSendWindowAvailable callback when a stream is cancelled (#2213)
- fix bug where writing prevented the read loop from running (#2221)
- Android: update Kotlin standard libraries to 1.6.21 (#2256)
- fix bug where finalStreamIntel was not consistently set on cancel (#2285)
- iOS: fix termination crash in ProvisionalDispatcher (#2059)
- api: make headers lookup in
HeadersBuilder
andHeaders
case-insensitive. RenameallHeaders
method tocaseSensitiveHeaders
. (#2383, #2400) - iOS: use correct DNS resolver when using C++ config builder (#2378)
Features:
- Android, iOS, & C++: add support for registering a platform KV store (#2134, #2335, #2430)
- api: add option to extend the keepalive timeout when any frame is received on the owning HTTP/2 connection. (#2229)
- api: add option to control whether Envoy should drain connections after a soft DNS refresh completes. (#2225, #2242)
- api: add option to disable the gzip decompressor. (#2321) (#2349)
- api: add option to enable the brotli decompressor. (#2342) (#2349)
- api: add option to enable socket tagging. (#1512)
- configuration: enable h2 ping by default. (#2270)
- android: enable the filtering of unroutable families by default. (#2267)
- instrumentation: add timers and warnings to platform-provided callbacks (#2300)
- iOS: add support for integrating Envoy Mobile via the Swift Package Manager
- android: create simple persistent SharedPreferencesStore (#2319)
- iOS: A documentation archive is now included in the GitHub release artifact (#2335)
- api: improved C++ APIs compatibility with Java / Kotlin / Swift (#2362)
- Android: default to use a
getaddrinfo
-based system DNS resolver instead of c-ares (#2419) - iOS: add
KeyValueStore
protocol conformance toUserDefaults
(#2452) - iOS: add experimental option to force all connections to use IPv6. (#2396)
- android: force the use of IPv6 addresses for all connections. (#2510)