Networking Workgroup

The Networking Workgroup is a team that guides the evolution of networking libraries, protocols, and APIs in the Swift ecosystem.

The Networking Workgroup will:

Current Members of the Networking Workgroup are:

Charter

The ultimate goal of the Networking Workgroup is to make networking in Swift excellent everywhere: high-level and safe by default, modular and interoperable, cross-platform, and observable. In pursuit of that goal, the workgroup develops and guides libraries that implement core networking functionality; coordinates with maintainers of frameworks, tools, and platform implementations to promote a coherent networking experience; and collaborates with other Swift community groups on networking-related improvements.

The workgroup’s efforts are organized around several focus areas:

Some areas of frequent collaboration with other groups include, but are not limited to:

Scope

The workgroup’s scope spans the networking stack: from I/O primitives and transport protocols such as QUIC and TLS, through protocol implementations, to high-level client and server APIs. The following are explicitly out of scope:

Relationship with the Swift Server Workgroup

The Swift Server Workgroup (SSWG) promotes the use of Swift for server application development and runs an incubation process for server-oriented libraries. There is natural overlap: many of the networking libraries the Networking Workgroup governs are heavily used in server contexts, and several SSWG-incubated packages (such as AsyncHTTPClient) are networking libraries.

The two groups have complementary responsibilities:

In practice, the groups will collaborate closely:

Evolution

The Ecosystem Steering Group has delegated the purview over the workgroup’s repositories to the Networking Workgroup. The Networking Workgroup uses the Swift Evolution process for its repositories.

Proposals or vision documents that intersect with platform-specific behavior will be reviewed in collaboration with the Platform Steering Group.

Membership

Membership in the Networking Workgroup is contribution-based and expected to evolve over time. Adding new members and removing inactive ones is subject to a vote by the existing members and requires unanimous agreement.

The Ecosystem Steering Group designates one member of the workgroup as the chair. The chair has no special authority over the workgroup, but they are responsible for ensuring its smooth functioning, including by:

If you’d like to join the workgroup, send a message to @networking-workgroup on the Forums and you will be invited to the next available group meeting to discuss it. See Community Participation for examples of ways to contribute and demonstrate your interest to the group.

Workgroup members will try to make decisions independently by consensus whenever possible, and will raise issues to the Ecosystem Steering Group when there are particular challenges with reaching consensus on significant decisions.

Meetings

The Networking Workgroup meets every two weeks, unless otherwise communicated.

Many workgroup meetings are meant for open discussion, and any Swift community member may attend by sending a message to @networking-workgroup beforehand to request an invite. Some meetings are reserved for private discussion by group members, for example, to make decisions on proposals under review.

Communication

The Networking Workgroup communicates with the broader Swift community on the Swift Forums. The workgroup can also be contacted privately by sending a message to @networking-workgroup.

If any significant decisions are reached during one of the workgroup’s regular meetings, a member will post about them in the Forums within one week. The outcome of each proposal review will be announced by its review manager in a separate thread dedicated to that proposal.

Community Participation

Everyone is invited to help improve Swift’s networking experience and participate in the Networking Workgroup’s initiatives. Here are some ways to participate: