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:

  • Define and prioritize efforts that address the needs of the Swift server community
  • Define and run an incubation process for these efforts to reduce duplication of effort, increase compatibility and promote best practices
  • Channel feedback for Swift language features needed by the server development community to the Swift Core Team

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:

With Tom Doron (@tomerd, Apple) representing the Swift core team.

Communication

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

Community Participation

Everyone is welcome to contribute in the following ways:

  • Proposing new libraries and tools to be considered
  • Participating in design discussions
  • Asking or answering questions on the forums
  • Reporting or triaging bugs
  • Submitting pull requests to the library projects for implementation or tests

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.

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

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.