forked from swiftlang/swift-org-website
-
Notifications
You must be signed in to change notification settings - Fork 0
SSWG Update 2024 #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
Joannis
wants to merge
21
commits into
main
Choose a base branch
from
jo/update-sswg
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from 8 commits
Commits
Show all changes
21 commits
Select commit
Hold shift + click to select a range
59bbcfa
Draft
Joannis fb1117d
Update _posts/2024-02-01-sswg-update-2024.md
Joannis 983ad15
Update _posts/2024-02-01-sswg-update-2024.md
Joannis cff08a6
Process franz' feedback
Joannis 875cc8d
Update 2024-02-01-sswg-update-2024.md
ktoso 5543f84
Merge pull request #2 from ktoso/patch-1
Joannis 1c7317f
Update 2024-02-01-sswg-update-2024.md
Joannis 57178f2
Add "new members" and "incubated packages". Plus some textual changes
Joannis f544794
Update _posts/2024-02-01-sswg-update-2024.md
Joannis 5ae4b34
Update _posts/2024-02-01-sswg-update-2024.md
Joannis 28100cd
Update _posts/2024-02-01-sswg-update-2024.md
Joannis 30c5a3c
Update _posts/2024-02-01-sswg-update-2024.md
Joannis f6f0cda
Adopt Franz' new paragraph with minor tweaks
Joannis 06499dc
Update _posts/2024-02-01-sswg-update-2024.md
Joannis 955c38f
Update 2024-02-01-sswg-update-2024.md
Joannis 735e8d4
Apply suggestions from code review
ktoso a41e9d1
Update blog post
Joannis e627169
Fix a typo in the OpenAPI post (#510)
czechboy0 9936aeb
SSWG projects and members update (#509)
finestructure 01389df
Editorial pass
cthielen 2e708df
Update timestamp and blog link
cthielen File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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,87 @@ | ||
| --- | ||
| layout: post | ||
| published: false | ||
| date: 2024-03-01 10:00:00 | ||
| title: SSWG 2024 Annual Update | ||
| author: [Joannis, ktoso] | ||
| --- | ||
|
|
||
| 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 in 2024. | ||
|
|
||
| # 2023 in Review | ||
|
|
||
| ## 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. | ||
|
|
||
| Memcached, which been in development througn GSoC, has made a lot of progress. 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. SwiftNIO has been a big driver of this, through the addition of `NIOAsyncChannel`. | ||
|
|
||
| Rewrites of ServiceLifecycle, Hummingbird and GRPC are under way that are implemented entirely with Structured Concurrency. Moving to structured concurrency allows NIO to become more of an implementation detail. In addition, structured concurrency provides many advantages to libraries and the adopters, which will be further elaborated on in our guides. | ||
Joannis marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| ## 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 for building both HTTP clients and servers. | ||
|
|
||
| ## Server Community Survey | ||
|
|
||
| For the first time, we did run 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 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 challanges 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, as well as sourcekit-lsp and 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! | ||
|
|
||
| ## 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 Swift Package Index. | ||
Joannis marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| # 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** was accepted in January 2023. This package allows you to write 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. DiscirdBM is a Swift client for Discord's Bot API, and is used in Vapor's Penny bot. | ||
| - **Swift OpenAPI Generator** was also accepted in October 2023, providing a Swift code generator for OpenAPI specifications, allowing you to generate 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 | ||
|
|
||
| ## Adoption of Structured Concurrency | ||
|
|
||
| Adoption of Structured Concurrency has been going strong. In the coming year, we'll be focusing on adopting structured concurrency in more libraries across the ecosystem. In the end goal, SwiftNIO is an implementation detail to the extend possible. | ||
|
|
||
| We're still lacking some guides. In order to drive further adoption, we'll be focusing on sharing our knowledge and expertise needed to adopt Structured Concurrency. | ||
Joannis marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| ## Preparing for Swift 6 | ||
|
|
||
| In preparation for Swift 6, we'll be looking at the impact of the new concurrency features on the ecosystem. By enabling strict concurrency checking, and working these warnings to zero, we'll be able to prepare the ecosystem for Swift 6. | ||
Joannis marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| ## Standardised HTTP Server and Middlewares | ||
|
|
||
| In 2023, we've extensively prepared for a standardised HTTP Server and Middlewares. Since then, Hummingbird 2 has been working on a rewrite that is entirely based on Structured Concurrency. The experiences from that rewrite will be used to further improve the standardised HTTP Server and Middlewares designs. | ||
Joannis marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| ## 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](swift.org) website, we'll be able to better showcase Swift on the Server. | ||
|
|
||
| We're looking to create more content for the ecosystem, such as integrated example projects and showcases of Swift-Server 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 [Swift Server Conference](https://serversideswift.info) in 2024, which will be hosted in London. | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.