Hello Swift Community.
The Ecosystem Steering Group would like to gather feedback on a prospective vision for Networking in Swift. Vision documents help describe an overall direction for Swift. The actual Swift and Swift ecosystem changes for executing on the vision will come as a series of separate proposals, so concrete details (e.g., specific syntax, API names, etc.) are less important than the overall direction. There is more information about the role of vision documents in the evolution process here.
The text of the introduction of the vision follows. The vision is quite long, so if you find it interesting, please follow the link above to read more.
A Prospective Vision for Networking in Swift
Almost every Swift application touches a network, yet Swift developers face a fragmented landscape of overlapping solutions with no clear guidance on which to choose.
Today, Swift offers multiple networking APIs with overlapping capabilities. Developers who aren't networking experts must determine which tools fit their problem, often with minimal guidance. A suboptimal choice leads to platform-support gaps, missing features, and costly rewrites.
Meanwhile, Swift itself has evolved significantly. The introduction of Swift Concurrency, featuring async/await, structured concurrency, actors, Sendable, and non-copyable types, has transformed how we write asynchronous and performant code. These modern language features open new possibilities for networking APIs: natural expression of asynchronous I/O, safer concurrent access to network resources, and clearer lifecycle management for connections and streams. However, most existing networking APIs predate these capabilities, built around completion handlers, delegates, or reactive patterns that don't leverage Swift's modern strengths.
This document proposes a vision for networking in Swift that addresses fragmentation and embraces modern Swift. We outline goals, describe design considerations that guide the solution space, and present an approach.
This is a prospective vision which has not yet been reviewed by the Ecosystem Steering Group. Even if it is approved by the Ecosystem Steering Group in exactly this form, it is merely laying out a high-level vision for the design and does not constitute pre-approval of any specific ideas in this document. Everything in this document will need to be separately proposed and reviewed.