Swift Server Workgroup (SSWG)

The Swift Server workgroup is a steering team that promotes the use of Swift for developing and deploying server applications. The Swift Server workgroup will:

Analogous to the Core Team for Swift, the workgroup is responsible for providing overall technical direction and establishing the standards by which libraries and tools are proposed, developed and eventually recommended. Membership of the workgroup is contribution-based and is expected to evolve over time.

The current Swift Server workgroup consists of the following people:

We are grateful for the service of the following emeritus workgroup members:

Communication

The Swift Server workgroup uses the Swift Server forum for general discussion.

Community Participation

Everyone is welcome to contribute in the following ways:

These conversations will take place on the Swift Server forum. Over time, the workgroup may form smaller working groups to focus on specific technology areas.

Charter

The main goal of the Swift Server workgroup is to eventually recommend libraries and tools for server application development with Swift. The difference between this workgroup and the Swift Evolution process is that server-oriented libraries and tools that are produced as a result of workgroup efforts will exist outside of the Swift language project itself. The workgroup will work to nurture, mature and recommend projects as they move into their development and release stages.

Membership

Membership in the workgroup is contribution-based and expected to evolve over time. Adding new members and removing inactive ones is subject to a SSWG vote and requires unanimous agreement. A cap of two members per company is in place to avoid overweight representation. A cap of ten members total is in place to keep the group small enough to be effective. Membership term is capped at 2 years, but exiting members may re-apply at the end of their term. When multiple candidates compete for the same seat, the SSWG will vote between all candidates, with a final voting round between the two candidates that received most votes in the first round.

Companies or individuals that would like to join the workgroup should apply by posting a request to the Swift Server forum. Applicants will then be invited to the next available SSWG meeting to present their case.

Inactive members that do not participate in four consecutive workgroup meetings will be contacted to confirm their desire to stay with the group. After missing ten consecutive meetings, the SSWG will vote on removing them from the group.

Voting

In various situations the SSWG shall hold a vote. These votes can happen on the phone, email, or via a voting service, when appropriate. SSWG members can either respond “agree, yes, +1”, “disagree, no, -1”, or “abstain”. A vote passes with two-thirds vote of votes cast based on the SSWG charter. An abstain vote equals not voting at all.

Incubation Process

The Swift Server Workgroup has a process which allows a project to go through incubation stages until it graduates and becomes a recommended project.

Projects

Project Description Maturity Level Pitched Accepted
SwiftNIO Event-driven network application framework. Graduated N/A 2018-09-07
SwiftLog Logging API Graduated 2018-09-10 2019-02-07
SwiftMetrics Metrics API Graduated 2019-01-08 2019-04-04
PostgresNIO PostgreSQL driver Incubating 2018-11-18 2019-05-16
RediStack Redis driver Sandbox 2019-01-07 2019-06-27
AsyncHTTPClient HTTP Client Graduated 2019-04-18 2019-06-27
APNSwift APNS Client Incubating 2019-02-05 2019-06-27
SwiftStatsdClient StatsD driver for the metrics API Incubating 2019-06-02 2019-08-11
SwiftPrometheus Prometheus driver for the metrics API Sandbox 2018-11-18 2019-08-11
gRPC Swift gRPC client & server framework Graduated 2019-09-30 2020-02-19
Swift Crypto Open-source implementation of a substantial portion of the API of Apple CryptoKit Incubating 2020-02-20 2020-03-04
OpenAPIKit OpenAPI client Sandbox 2020-01-14 2020-04-29
MongoSwift MongoDB driver Incubating 2019-10-30 2020-05-13
Swift AWS Lambda Runtime Runtime library for AWS Lambda functions in Swift Sandbox N/A 2020-06-24
Backtrace Nice backtraces in production Incubating 2019-05-30 2020-07-29
Service Lifecycle Lifecycle management Incubating N/A 2020-09-02
Soto for AWS Third-party SDK for AWS Incubating 2020-10-01 2020-11-12
MultipartKit Multipart parser and serializer with Codable support for Multipart Form Data Incubating 2021-03-03 2021-11-11
MQTT NIO A Swift NIO MQTT v3.1.1 and v5.0 Client Sandbox 2021-11-02 2022-01-19
GraphQL GraphQL query language implementation Incubating 2022-08-22 2022-09-15
Graphiti Library for building GraphQL schemas Incubating 2022-08-22 2022-09-15
Swift Distributed Actors Peer-to-peer cluster implementation for Swift Distributed Actors Sandbox 2022-10-27 2023-01-03
CassandraClient Client library for the Cassandra distributed database Incubating 2023-01-19 2023-02-02
SQLite NIO 🐬 Non-blocking, event-driven Swift client for SQLite Sandbox 2023-08-03 2023-09-28
Swift Service Context Minimal type-safe context propagation container Incubating 2023-09-05 2023-10-03
Swift Distributed Tracing A distributed tracing API for Swift Incubating 2023-09-05 2023-10-03
DiscordBM A Swift library for making bots on the Discord API Sandbox 2023-05-05 2023-10-04
Swift OpenAPI Generator A Swift package plugin that can generate the ceremony code required to make API calls, or implement API servers Sandbox 2023-08-04 2023-10-04
MongoKitten Native MongoDB driver for Swift, written in Swift Incubating 2024-01-03 2024-02-01

The SSWG publishes a package collection that contains the projects incubated by the workgroup. The collection is available at https://swiftserver.group/collection/sswg.json.

Meeting Time

The SSWG meets biweekly on Wednesday at 2:00PM PT (USA Pacific). The meetings take place in the weeks with the odd week numbers.