-
Notifications
You must be signed in to change notification settings - Fork 170
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
83 additions
and
83 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
--- | ||
layout: post | ||
published: false | ||
date: 2024-03-25 10:00:00 | ||
title: SSWG 2024 Annual Update | ||
author: [Joannis, ktoso, FranzBusch] | ||
--- | ||
|
||
In this yearly post, the Swift Server WorkGroup (SSWG) reflects on the community, ecosystem-wide accomplishments and the workgroup's focus areas for the year ahead. | ||
|
||
Since our [previous update post](/blog/sswg-update-2023/), Swift on the Server has continued to mature. | ||
|
||
Let's start with a review of the progress made in 2023, before looking at the next steps for 2024. | ||
|
||
## 2023 in Review | ||
|
||
### Server Community Survey | ||
|
||
For the first time, we ran a developer community survey, aimed at collecting feedback and information about the shape and breadth of the Swift Server ecosystem. | ||
We received a huge amount of responses, for which we'd like to thank everyone! | ||
|
||
We analyzed the responses and used them to figure out how we're doing with current efforts, and help direct the group's goals and efforts in the upcoming year (see below). | ||
For example, while the majority of respondents already use Swift Concurrency, there remain challenges in some areas with adoption. | ||
Among the highlights that shaped our goals for the next year were a huge interest in standardized tooling for e.g. `swift-format` and `sourcekit-lsp`, as well as various IDEs. | ||
|
||
We highly encourage you to have a look at the full [SSWG Community Survey 2024 Report](http://TODO), over on the Swift forums! | ||
|
||
### Continued Focus on Growing the Ecosystem | ||
|
||
The SSWG has continued to focus on growing the ecosystem by incubating packages and providing guidance to package authors. We've seen a lot of new, in-development and improved packages this year. By participating in the [Google Summer of Code](https://www.swift.org/gsoc2024/), we've been able to provide [swift-memcache-gsoc](https://github.com/swift-server/swift-memcache-gsoc). The wire protocol and higher-level connection APIs are done. The remaining work is implementing a connection pool and key sharding. The SSWG is looking forward to continued work on this package. | ||
|
||
### Adoption of Structured Concurrency | ||
|
||
We've seen a lot of progress on the adoption of Structured Concurrency. Most new libraries are adopting it, and we're working on a guide to help existing libraries adopt it as well. Two big drivers of Structured Concurrency in the ecosystem have been SwiftNIO's introduction of `NIOAsyncChannel` and the `ServiceGroup` of the rewritten ServiceLifecycle package. Together we see both of them as foundational pieces for higher-level libraries to build their logic using Structured Concurrency. For example, Hummingbird and GRPC are currently being rewritten from the ground up based on those building blocks. | ||
|
||
### Tooling Improvements | ||
|
||
Tooling has seen some tremendous improvements in 2023. We've seen the introduction of Swiftly, Dependabot for Swift, and Chiseled Containers. | ||
|
||
In addition, thanks to the introduction of Package Plugins, we've seen the OpenAPI Generator make an entry. This plugin allows you to generate Swift boilerplate code from an OpenAPI specification. This is a great way to build both HTTP clients and servers. | ||
|
||
### New Members | ||
|
||
Since our update post of 2023, [Sven A. Schmidt](https://github.com/finestructure) has joined the workgroup. Sven has already been involved with the documentation workgroup, and is known for his work on the [Swift Package Index](https://swiftpackageindex.com). | ||
|
||
## Ecosystem | ||
|
||
Last year, we've seen seven new packages enter the SSWG incubation process. A tremendous amount of work has been done on these packages, showing how rapidly the ecosystem is expanding. | ||
|
||
- **Swift Distributed Actors (Cluster)** was accepted in January 2023. This package enables writing peer-to-peer clusters in Swift using distributed actors. | ||
- **Cassandra Client** was accepted in February 2023, providing a Swift client for Apache Cassandra. | ||
- **SQLiteNIO** was accepted in September 2023. This package provides an SQLite driver for Swift, and is commonly used through Vapor's Fluent ORM. | ||
- **Swift Service Context** and **Swift Distributed Tracing** were accepted in October 2023. These packages enable distributed tracing for Swift, rounding out the three pillars of observability. | ||
- **DiscordBM** was accepted in October 2023. DiscordBM is a Swift client for Discord's Bot API, and is the foundation of Vapor's Penny bot. | ||
- **Swift OpenAPI Generator** was also accepted in October 2023, providing a Swift code generator for OpenAPI specifications enabling generating both servers and clients. | ||
|
||
In addition, **MongoKitten** was pitched and approved at the start of 2024. MongoKitten is a popular MongoDB driver for Swift. | ||
|
||
## Goals for 2024 | ||
|
||
### Preparing for Swift 6 | ||
|
||
In preparation for Swift 6, we'll be looking at the impact of strict concurrency checking across the server ecosystem. We are planning to enable strict checking on every incubated package and make each package compile warning-free under the strict checking rules. | ||
|
||
### Adoption of Structured Concurrency | ||
|
||
Adoption of Structured Concurrency has been going strong but the journey isn't finished. In the coming year, we'll be focusing on adopting Structured Concurrency in even more libraries, with the goal of making SwiftNIO an implementation detail of more and more libraries. | ||
|
||
In addition to working on libraries, we are also planning work on more guides for developers of libraries and applications, describing how to adopt Structured Concurrency and the benefits it brings. | ||
|
||
### Standardized HTTP Server and Middlewares | ||
|
||
In 2023, we've extensively prepared for a standardized HTTP server and middlewares. The in-progress, Hummingbird rewrite is already taking advantage of the new HTTP types. The goal for 2024 is to produce a low-level, general-purpose HTTP server package. | ||
|
||
### Marketing Swift on the Server | ||
|
||
Marketing Swift on the Server is a big focus area for 2024. With the introduction of the redesigned navigation of the [swift.org](https://swift.org/) website, we'll be better able to showcase Swift on the Server. | ||
|
||
We're looking to create more content for the ecosystem, such as integrated example projects and showcases of existing server-focused projects. | ||
|
||
In addition, we're looking to connect developers by organising online user group meetings. We're currently planning the first Swift Server User Group meeting, with our goal being three or four meetings per year going forward. | ||
|
||
Finally, we're seeing a new edition of the [ServerSide.swift](https://serversideswift.info) in 2024, which will be hosted in London. |