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:
- Adam Fowler (@adam-fowler)
- Dave Moser (@dave-moser, Amazon)
- Franz Busch (@FranzBusch, Apple)
- Gwynne Raskind (@gwynne, Vapor)
- Jimmy McDermott (@jdmcd , Transeo)
- Joannis Orlandos (@joannis)
- Konrad Malawski (@ktoso, Apple)
- Patrick Freed (@patrickfreed, MongoDB)
- Simon Pilkington (@tachyonics, Amazon)
- Tim Condon (@0xTim, Vapor)
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.