Skip to content

Tags: swift-server/async-http-client

Tags

1.29.0

Toggle 1.29.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Introduce built-in swift-distributed-tracing support (#857)

Co-authored-by: Moritz Lang <16192401+slashmo@users.noreply.github.com>
Co-authored-by: George Barnett <gbarnett@apple.com>

1.28.0

Toggle 1.28.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Add support for HTTP/1 connection pre-warming (#856)

Motivation

This patch adds support for HTTP/1 connection pre-warming. This allows
the user to request that the HTTP/1 connection pool create and maintain
extra connections, above-and-beyond those strictly needed to run the
pool. This pool can be used to absorb small spikes in request traffic
without increasing latency to account for connection creation.

Modifications

- Added new configuration properties for pre-warmed connections.
- Amended the HTTP/1 state machine to create new connections where
necessary.
- Added state machine tests.

Results

Pre-warmed connections are available.

1.27.0

Toggle 1.27.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fix trailing space in ConnectionPool.Key string (#855)

Motivation:

The trailing space is visible in log message metadata, and depending
upon the log handler in use, will sometimes be visible due to quoting.

Modifications:

Just remove the trailing space.

Result:

There won't be a trailing space in the key anymore. This has no
functional impact whatsoever as far as I was able to determine.

1.26.1

Toggle 1.26.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fix 5.9 build (#844)

Motivation:

An oversight in 373862a meant that 5.9 wasn't actually dropped which
means that the use of 'nonisolated(unsafe)' in 0e715a2 broke users of
5.9.

Modifications:

- Add back a 5.9 path

Result:

- Builds on 5.9
- Resolves #843

1.26.0

Toggle 1.26.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Enable warnings as errors in CI (#842)

Motivation:

Now that strict concurrency has been adopted the AHC should avoid
regressing by treating all warnings as errors in CI.

Modifications:

- Treat warnings as errors in CI

Result:

Stricter CI

1.25.2

Toggle 1.25.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Work around Foundation revert (#813)

Motivation

Foundation has reverted several of the changes of behaviour in the URL
type, leaving 6.0 and 6.1 with a different behaviour on non-Apple
platforms than all other versions.

We should tolerate that.

Modifications

Update the tests to understand the difference.

Result

Tests pass

1.25.1

Toggle 1.25.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix 5.10 compile on Ubuntu 24.04 (Noble) for Intel (x86_64) (#810)

Specifically Swift 5.10 _on Intel on Ubuntu Noble (24.04)_ has a crazy
bug which leads to compilation failures in a `#if compiler(>=6.0)`
block: swiftlang/swift#79285 .

This workaround fixes the compilation by _changing the whitespace_.

Thanks @gwynne for finding this workaround!

---------

Co-authored-by: Johannes Weiss <johannes@jweiss.io>

1.25.0

Toggle 1.25.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
baby steps towards a Structured Concurrency API (#806)

At the moment, `HTTPClient`'s entire API surface violates Structured
Concurrency. Both the creation & shutdown of a HTTP client as well as
making requests (#807) doesn't follow Structured Concurrency. Some of
the problems are:

1. Upon return of methods, resources are still in active use in other
threads/tasks
2. Cancellation doesn't always work

This PR is baby steps towards a Structured Concurrency API, starting
with start/shutdown of the HTTP client.

Co-authored-by: Johannes Weiss <johannes@jweiss.io>

1.24.2

Toggle 1.24.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Add missing import of Network module (#804)

1.24.1

Toggle 1.24.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Avoid precondition failure in write timeout (#803)

### Motivation:

In some cases we can crash because of a precondition failure when the
write timeout fires and we aren't in the running state. This can happen
for example if the connection is closed whilst the write timer is
active.

### Modifications:

* Remove the precondition and instead take no action if the timeout
fires outside of the running state. Instead we take a new `Action`,
`.noAction` when the timer fires.
* Clear write timeouts upon request completion. When a request completes
we have no use for the idle write timer, we clear the read timer and we
should clear the write one too.

### Result:

Fewer crashes.

The supplied tests fails without these changes and passes with either of them.