From 59bbcfaaa69ae7d281fbc65b00f4141ea82863f6 Mon Sep 17 00:00:00 2001 From: Joannis Orlandos Date: Thu, 1 Feb 2024 14:47:39 +0100 Subject: [PATCH 01/20] Draft --- _posts/2024-02-01-sswg-update-2024.md | 86 +++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 _posts/2024-02-01-sswg-update-2024.md diff --git a/_posts/2024-02-01-sswg-update-2024.md b/_posts/2024-02-01-sswg-update-2024.md new file mode 100644 index 000000000..9ec2e40e4 --- /dev/null +++ b/_posts/2024-02-01-sswg-update-2024.md @@ -0,0 +1,86 @@ +--- +layout: post +published: false +date: 2024-02-01 10:00:00 +title: SSWG 2024 Annual Update +author: [Joannis] +--- + + +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. + +Memcached, which been in development througn GSoC, has made a lot of progress. The wire protocol and higher level connection APIs are done, but more work is still needed. The SSWG is looking forward to continued work on this package. + +Swift Distributed Tracing has seen it's 1.0 release in the summer of 2023, and has bseen adoption by several packages such as Hummingbird, GRPC and MongoKitten. While much progress has been made, expanding and supporting adoption of this package is still a goal going into 2024. + +The standardised Connection Pool Library has seen a lot of progress, and is currently available under SPI as part of PostgresNIO. This is considered an alpha release, and will eventually be extracted into its own package as the connection pool matures. + +## 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. + +Rewrites of 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. + +While adoption is going strong in the ecosystem, the lack of a guide and adoption by libraries such as Vapor and AHC are still a focus area. + +- swift-service-lifecycle +- Other libraries that have adopted? + +## Expand the documentation and guides + +While guides have been a focus area in 2023, existing work hasn't wrapped up yet. In addition to completing and publishing existing guides, we'll emphasize the importance of guides and documentation even more going into 2024. + +## 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, with 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. + +## Survey + +Last year we've held a survey to get a better understanding of the community's needs and ideas. We're currently working on sharing some of our findings, and will be using the results to guide our work in 2024. + +# Ecosystem + +- Incubated Packages + +# Goals for 2024 + +## Adoption of Structured Concurrency + +As previously mentioned, adoption of Structured Concurrency is going strong. However, we're still missing some guides. In order to drive further adoption, we'll be focusing on sharing our knowledge and expertise needed to adopt Structured Concurrency. + +## Preparing for Swift 6 + +In preparation for Swift 6, we'll be looking at the impact of the new concurrency features on the ecosystem. We're investigating the impact of the new concurrency features on the ecosystem, through compatibility tests. + +## Standardised HTTP Server and Middlewares + +In 2023, we've extensively prepared work on 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. + +## Misc + +- Package Discovery of incubated packages + +## Marketing Swift on the Server + +Marketing Swift on the Server is a big focus area for 2024. With the introduction of the new 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 hope to share more about that soon. + +Finally, we're expecting a new edition of the [Swift Server Conference](https://serversideswift.info) in 2024. + +TODOS: +- Links needed \ No newline at end of file From fb1117d87307644c4bef7da63cacaaa72d519cfe Mon Sep 17 00:00:00 2001 From: Joannis Orlandos Date: Mon, 5 Feb 2024 18:19:56 +0100 Subject: [PATCH 02/20] Update _posts/2024-02-01-sswg-update-2024.md Co-authored-by: Franz Busch --- _posts/2024-02-01-sswg-update-2024.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-02-01-sswg-update-2024.md b/_posts/2024-02-01-sswg-update-2024.md index 9ec2e40e4..9c17b2795 100644 --- a/_posts/2024-02-01-sswg-update-2024.md +++ b/_posts/2024-02-01-sswg-update-2024.md @@ -19,7 +19,7 @@ Let's start with a review of the progress made in 2023, before looking at the ne The SSWG has continued to focus on growing the ecosystem by incubating packages and providing guidance to package authors. -Memcached, which been in development througn GSoC, has made a lot of progress. The wire protocol and higher level connection APIs are done, but more work is still needed. The SSWG is looking forward to continued work on this package. +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. Swift Distributed Tracing has seen it's 1.0 release in the summer of 2023, and has bseen adoption by several packages such as Hummingbird, GRPC and MongoKitten. While much progress has been made, expanding and supporting adoption of this package is still a goal going into 2024. From 983ad15027f64caaeebe2e5561d24969b92ab46f Mon Sep 17 00:00:00 2001 From: Joannis Orlandos Date: Mon, 5 Feb 2024 18:25:53 +0100 Subject: [PATCH 03/20] Update _posts/2024-02-01-sswg-update-2024.md Co-authored-by: Franz Busch --- _posts/2024-02-01-sswg-update-2024.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-02-01-sswg-update-2024.md b/_posts/2024-02-01-sswg-update-2024.md index 9c17b2795..c2813d902 100644 --- a/_posts/2024-02-01-sswg-update-2024.md +++ b/_posts/2024-02-01-sswg-update-2024.md @@ -74,7 +74,7 @@ In 2023, we've extensively prepared work on a standardised HTTP Server and Middl ## Marketing Swift on the Server -Marketing Swift on the Server is a big focus area for 2024. With the introduction of the new Swift.org website, we'll be able to better showcase 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. From cff08a6ba6000d242415af77a8106aacdf7c3687 Mon Sep 17 00:00:00 2001 From: Joannis Orlandos Date: Mon, 5 Feb 2024 18:27:39 +0100 Subject: [PATCH 04/20] Process franz' feedback --- _posts/2024-02-01-sswg-update-2024.md | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/_posts/2024-02-01-sswg-update-2024.md b/_posts/2024-02-01-sswg-update-2024.md index c2813d902..959cdc96f 100644 --- a/_posts/2024-02-01-sswg-update-2024.md +++ b/_posts/2024-02-01-sswg-update-2024.md @@ -21,24 +21,11 @@ The SSWG has continued to focus on growing the ecosystem by incubating packages 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. -Swift Distributed Tracing has seen it's 1.0 release in the summer of 2023, and has bseen adoption by several packages such as Hummingbird, GRPC and MongoKitten. While much progress has been made, expanding and supporting adoption of this package is still a goal going into 2024. - -The standardised Connection Pool Library has seen a lot of progress, and is currently available under SPI as part of PostgresNIO. This is considered an alpha release, and will eventually be extracted into its own package as the connection pool matures. - ## 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. -Rewrites of 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. - -While adoption is going strong in the ecosystem, the lack of a guide and adoption by libraries such as Vapor and AHC are still a focus area. - -- swift-service-lifecycle -- Other libraries that have adopted? - -## Expand the documentation and guides - -While guides have been a focus area in 2023, existing work hasn't wrapped up yet. In addition to completing and publishing existing guides, we'll emphasize the importance of guides and documentation even more going into 2024. +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. ## Tooling Improvements @@ -58,20 +45,18 @@ Last year we've held a survey to get a better understanding of the community's n ## Adoption of Structured Concurrency -As previously mentioned, adoption of Structured Concurrency is going strong. However, we're still missing some guides. In order to drive further adoption, we'll be focusing on sharing our knowledge and expertise needed to adopt 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. ## Preparing for Swift 6 -In preparation for Swift 6, we'll be looking at the impact of the new concurrency features on the ecosystem. We're investigating the impact of the new concurrency features on the ecosystem, through compatibility tests. +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. ## Standardised HTTP Server and Middlewares In 2023, we've extensively prepared work on 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. -## Misc - -- Package Discovery of incubated packages - ## 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. From 875cc8d990d866ad8a1ea0bc3b7abf642fcbe6c2 Mon Sep 17 00:00:00 2001 From: Konrad `ktoso` Malawski Date: Mon, 19 Feb 2024 23:24:16 +0900 Subject: [PATCH 05/20] Update 2024-02-01-sswg-update-2024.md --- _posts/2024-02-01-sswg-update-2024.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/_posts/2024-02-01-sswg-update-2024.md b/_posts/2024-02-01-sswg-update-2024.md index 959cdc96f..9c9e3b6aa 100644 --- a/_posts/2024-02-01-sswg-update-2024.md +++ b/_posts/2024-02-01-sswg-update-2024.md @@ -33,9 +33,16 @@ Tooling has seen some tremendous improvements in 2023. We've seen the introducti In addition, with 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. -## Survey +## Server Community Survey -Last year we've held a survey to get a better understanding of the community's needs and ideas. We're currently working on sharing some of our findings, and will be using the results to guide our work in 2024. +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! # Ecosystem @@ -68,4 +75,4 @@ In addition, we're looking to connect developers by organising online user group Finally, we're expecting a new edition of the [Swift Server Conference](https://serversideswift.info) in 2024. TODOS: -- Links needed \ No newline at end of file +- Links needed From 1c7317fb2178bfaf2d90ee0b48d4baf9e6918b4a Mon Sep 17 00:00:00 2001 From: Joannis Orlandos Date: Mon, 19 Feb 2024 17:03:22 +0100 Subject: [PATCH 06/20] Update 2024-02-01-sswg-update-2024.md --- _posts/2024-02-01-sswg-update-2024.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/_posts/2024-02-01-sswg-update-2024.md b/_posts/2024-02-01-sswg-update-2024.md index 9c9e3b6aa..7c5a85db6 100644 --- a/_posts/2024-02-01-sswg-update-2024.md +++ b/_posts/2024-02-01-sswg-update-2024.md @@ -72,7 +72,4 @@ We're looking to create more content for the ecosystem, such as integrated examp In addition, we're looking to connect developers by organising online user group meetings. We hope to share more about that soon. -Finally, we're expecting a new edition of the [Swift Server Conference](https://serversideswift.info) in 2024. - -TODOS: -- Links needed +Finally, we're expecting a new edition of the [Swift Server Conference](https://serversideswift.info) in 2024, which is based in London. From 57178f2c76db0a14d115cb21370064f90a186008 Mon Sep 17 00:00:00 2001 From: Joannis Orlandos Date: Tue, 20 Feb 2024 10:40:14 +0100 Subject: [PATCH 07/20] Add "new members" and "incubated packages". Plus some textual changes --- _posts/2024-02-01-sswg-update-2024.md | 32 ++++++++++++++++++--------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/_posts/2024-02-01-sswg-update-2024.md b/_posts/2024-02-01-sswg-update-2024.md index 7c5a85db6..9317ecb3c 100644 --- a/_posts/2024-02-01-sswg-update-2024.md +++ b/_posts/2024-02-01-sswg-update-2024.md @@ -1,12 +1,11 @@ --- layout: post published: false -date: 2024-02-01 10:00:00 +date: 2024-03-01 10:00:00 title: SSWG 2024 Annual Update -author: [Joannis] +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. @@ -17,13 +16,13 @@ Let's start with a review of the progress made in 2023, before looking at the ne ## 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. +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. +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. @@ -31,7 +30,7 @@ Rewrites of ServiceLifecycle, Hummingbird and GRPC are under way that are implem Tooling has seen some tremendous improvements in 2023. We've seen the introduction of Swiftly, Dependabot for Swift and Chiseled Containers. -In addition, with 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. +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 @@ -44,9 +43,22 @@ Among the highlights that shaped our goals for the next year were: a huge intere 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. + # Ecosystem -- Incubated Packages +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 @@ -62,7 +74,7 @@ In preparation for Swift 6, we'll be looking at the impact of the new concurrenc ## Standardised HTTP Server and Middlewares -In 2023, we've extensively prepared work on 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. +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. ## Marketing Swift on the Server @@ -70,6 +82,6 @@ Marketing Swift on the Server is a big focus area for 2024. With the introductio 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 hope to share more about that soon. +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 expecting a new edition of the [Swift Server Conference](https://serversideswift.info) in 2024, which is based in London. +Finally, we're seeing a new edition of the [Swift Server Conference](https://serversideswift.info) in 2024, which will be hosted in London. From f54479429b99f0bfe4af103f2317a7e461c8a085 Mon Sep 17 00:00:00 2001 From: Joannis Orlandos Date: Tue, 20 Feb 2024 12:32:58 +0100 Subject: [PATCH 08/20] Update _posts/2024-02-01-sswg-update-2024.md Co-authored-by: Franz Busch --- _posts/2024-02-01-sswg-update-2024.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-02-01-sswg-update-2024.md b/_posts/2024-02-01-sswg-update-2024.md index 9317ecb3c..402d4a44b 100644 --- a/_posts/2024-02-01-sswg-update-2024.md +++ b/_posts/2024-02-01-sswg-update-2024.md @@ -45,7 +45,7 @@ We highly encourage you to have a look at the full [SSWG Community Survey 2024 R ## 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. +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. # Ecosystem From 5ae4b349c8e206b671fcaa1995a93318ed5ebbed Mon Sep 17 00:00:00 2001 From: Joannis Orlandos Date: Tue, 20 Feb 2024 12:33:56 +0100 Subject: [PATCH 09/20] Update _posts/2024-02-01-sswg-update-2024.md Co-authored-by: Franz Busch --- _posts/2024-02-01-sswg-update-2024.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/_posts/2024-02-01-sswg-update-2024.md b/_posts/2024-02-01-sswg-update-2024.md index 402d4a44b..ce9d48b94 100644 --- a/_posts/2024-02-01-sswg-update-2024.md +++ b/_posts/2024-02-01-sswg-update-2024.md @@ -16,9 +16,7 @@ Let's start with a review of the progress made in 2023, before looking at the ne ## 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. +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. One example of a new packages is `swift-memcache-gsoc` which was developed as part of last years Google summer of code. 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 From 28100cd746eeba573f4171a3b64e576b7ca8a37c Mon Sep 17 00:00:00 2001 From: Joannis Orlandos Date: Tue, 20 Feb 2024 12:36:00 +0100 Subject: [PATCH 10/20] Update _posts/2024-02-01-sswg-update-2024.md Co-authored-by: Franz Busch --- _posts/2024-02-01-sswg-update-2024.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-02-01-sswg-update-2024.md b/_posts/2024-02-01-sswg-update-2024.md index ce9d48b94..407635ebd 100644 --- a/_posts/2024-02-01-sswg-update-2024.md +++ b/_posts/2024-02-01-sswg-update-2024.md @@ -68,7 +68,7 @@ We're still lacking some guides. In order to drive further adoption, we'll be fo ## 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. +In preparation for Swift 6, we'll be looking at the impact of the 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. ## Standardised HTTP Server and Middlewares From 30c5a3c9ec06dfdb01815b61536fb9357dd8e67d Mon Sep 17 00:00:00 2001 From: Joannis Orlandos Date: Tue, 20 Feb 2024 12:36:20 +0100 Subject: [PATCH 11/20] Update _posts/2024-02-01-sswg-update-2024.md Co-authored-by: Franz Busch --- _posts/2024-02-01-sswg-update-2024.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-02-01-sswg-update-2024.md b/_posts/2024-02-01-sswg-update-2024.md index 407635ebd..e33aca867 100644 --- a/_posts/2024-02-01-sswg-update-2024.md +++ b/_posts/2024-02-01-sswg-update-2024.md @@ -72,7 +72,7 @@ In preparation for Swift 6, we'll be looking at the impact of the strict concurr ## 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. +In 2023, we've extensively prepared for a standardised 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 From f6f0cda6d280e0bf55e526c51658fd735c33da98 Mon Sep 17 00:00:00 2001 From: Joannis Orlandos Date: Tue, 20 Feb 2024 12:36:57 +0100 Subject: [PATCH 12/20] Adopt Franz' new paragraph with minor tweaks Co-authored-by: Franz Busch --- _posts/2024-02-01-sswg-update-2024.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/_posts/2024-02-01-sswg-update-2024.md b/_posts/2024-02-01-sswg-update-2024.md index e33aca867..9e4bb6014 100644 --- a/_posts/2024-02-01-sswg-update-2024.md +++ b/_posts/2024-02-01-sswg-update-2024.md @@ -3,7 +3,8 @@ layout: post published: false date: 2024-03-01 10:00:00 title: SSWG 2024 Annual Update -author: [Joannis, ktoso] +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. @@ -20,9 +21,7 @@ The SSWG has continued to focus on growing the ecosystem by incubating packages ## 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. +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 using those two building blocks. ## Tooling Improvements From 06499dcef7556743eea9f0b65e14898b638794b4 Mon Sep 17 00:00:00 2001 From: Joannis Orlandos Date: Tue, 20 Feb 2024 12:37:50 +0100 Subject: [PATCH 13/20] Update _posts/2024-02-01-sswg-update-2024.md Co-authored-by: Franz Busch --- _posts/2024-02-01-sswg-update-2024.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2024-02-01-sswg-update-2024.md b/_posts/2024-02-01-sswg-update-2024.md index 9e4bb6014..5bb0d7d89 100644 --- a/_posts/2024-02-01-sswg-update-2024.md +++ b/_posts/2024-02-01-sswg-update-2024.md @@ -61,9 +61,9 @@ In addition, **MongoKitten** was pitched and approved at the start of 2024. Mong ## 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. +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. -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. +In addition to working on libraries, we are also planning to work on more guides for developers of libraries and applications on how they can adopt Structured Concurrency and what benefits it brings. ## Preparing for Swift 6 From 955c38fbe3427dcdc4b3e385b0d99468e788dc1d Mon Sep 17 00:00:00 2001 From: Joannis Orlandos Date: Tue, 27 Feb 2024 10:12:32 +0100 Subject: [PATCH 14/20] Update 2024-02-01-sswg-update-2024.md --- _posts/2024-02-01-sswg-update-2024.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/_posts/2024-02-01-sswg-update-2024.md b/_posts/2024-02-01-sswg-update-2024.md index 5bb0d7d89..5d54ea4c6 100644 --- a/_posts/2024-02-01-sswg-update-2024.md +++ b/_posts/2024-02-01-sswg-update-2024.md @@ -59,16 +59,16 @@ In addition, **MongoKitten** was pitched and approved at the start of 2024. Mong # Goals for 2024 +## Preparing for Swift 6 + +In preparation for Swift 6, we'll be looking at the impact of the 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 to work on more guides for developers of libraries and applications on how they can adopt Structured Concurrency and what benefits it brings. -## Preparing for Swift 6 - -In preparation for Swift 6, we'll be looking at the impact of the 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. - ## Standardised HTTP Server and Middlewares In 2023, we've extensively prepared for a standardised 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. From 735e8d45bd1c6bc0365f6527f6c1bc4d5b451667 Mon Sep 17 00:00:00 2001 From: Konrad `ktoso` Malawski Date: Mon, 4 Mar 2024 10:19:40 +0900 Subject: [PATCH 15/20] Apply suggestions from code review --- _posts/2024-02-01-sswg-update-2024.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/_posts/2024-02-01-sswg-update-2024.md b/_posts/2024-02-01-sswg-update-2024.md index 5d54ea4c6..a4dc7061b 100644 --- a/_posts/2024-02-01-sswg-update-2024.md +++ b/_posts/2024-02-01-sswg-update-2024.md @@ -4,7 +4,6 @@ published: false date: 2024-03-01 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. @@ -48,7 +47,7 @@ Since our update post of 2023, [Sven A. Schmidt](https://github.com/finestructur 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. +- **Swift Distributed Actors (Cluster)** 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. From a41e9d1a30de447c1e12b74fe35fd76ec5bdc068 Mon Sep 17 00:00:00 2001 From: Joannis Orlandos Date: Thu, 21 Mar 2024 10:30:47 +0100 Subject: [PATCH 16/20] Update blog post --- _posts/2024-02-01-sswg-update-2024.md | 83 --------------------------- _posts/2024-03-25-sswg-update-2024.md | 83 +++++++++++++++++++++++++++ 2 files changed, 83 insertions(+), 83 deletions(-) delete mode 100644 _posts/2024-02-01-sswg-update-2024.md create mode 100644 _posts/2024-03-25-sswg-update-2024.md diff --git a/_posts/2024-02-01-sswg-update-2024.md b/_posts/2024-02-01-sswg-update-2024.md deleted file mode 100644 index a4dc7061b..000000000 --- a/_posts/2024-02-01-sswg-update-2024.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -layout: post -published: false -date: 2024-03-01 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 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. One example of a new packages is `swift-memcache-gsoc` which was developed as part of last years Google summer of code. 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 using those two 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 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. - -# 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 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 - -## Preparing for Swift 6 - -In preparation for Swift 6, we'll be looking at the impact of the 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 to work on more guides for developers of libraries and applications on how they can adopt Structured Concurrency and what benefits it brings. - -## Standardised HTTP Server and Middlewares - -In 2023, we've extensively prepared for a standardised 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](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. diff --git a/_posts/2024-03-25-sswg-update-2024.md b/_posts/2024-03-25-sswg-update-2024.md new file mode 100644 index 000000000..01a4a1879 --- /dev/null +++ b/_posts/2024-03-25-sswg-update-2024.md @@ -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. From e6271694c6665ed795fcd30852dc8fadf8746763 Mon Sep 17 00:00:00 2001 From: Honza Dvorsky Date: Thu, 1 Feb 2024 19:29:40 +0100 Subject: [PATCH 17/20] Fix a typo in the OpenAPI post (#510) --- _posts/2024-01-31-swift-openapi-generator-1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-01-31-swift-openapi-generator-1.0.md b/_posts/2024-01-31-swift-openapi-generator-1.0.md index c52d106db..6b0980335 100644 --- a/_posts/2024-01-31-swift-openapi-generator-1.0.md +++ b/_posts/2024-01-31-swift-openapi-generator-1.0.md @@ -9,7 +9,7 @@ excerpt_separator: We’re happy to announce the stable 1.0 release of [Swift OpenAPI Generator][swift-openapi-generator-repo]! -[OpenAPI][openapi] is an open standard for describing the behavior of HTTP services with a rich ecosystem of tooling. One thing OpenAPI is particularly known for is tooling to generate _interactive_ documentation. But the core motivation of OpenAPI is _code-generation_, which allows adopters to use an API-first approach to server development and, because many existing services document their API in this format, allows client developers to generate type-safe, idiomatic to call these APIs. +[OpenAPI][openapi] is an open standard for describing the behavior of HTTP services with a rich ecosystem of tooling. One thing OpenAPI is particularly known for is tooling to generate _interactive_ documentation. But the core motivation of OpenAPI is _code-generation_, which allows adopters to use an API-first approach to server development and, because many existing services document their API in this format, allows client developers to generate type-safe, idiomatic code to call these APIs. From 9936aeba590906b3f4186d6a5803c5617713b043 Mon Sep 17 00:00:00 2001 From: "Sven A. Schmidt" Date: Fri, 2 Feb 2024 11:01:57 +0100 Subject: [PATCH 18/20] SSWG projects and members update (#509) * Projects and members update * Update acceptance date --- _data/server-workgroup/members.yml | 4 ++++ _data/server-workgroup/projects.yml | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/_data/server-workgroup/members.yml b/_data/server-workgroup/members.yml index 2a03918e5..195380384 100644 --- a/_data/server-workgroup/members.yml +++ b/_data/server-workgroup/members.yml @@ -33,3 +33,7 @@ - name: Tom Doron github: tomerd affiliation: Apple, Core team rep + +- name: Sven A. Schmidt + github: finestructure + affliation: Swift Package Index \ No newline at end of file diff --git a/_data/server-workgroup/projects.yml b/_data/server-workgroup/projects.yml index 541ce4a47..a4b139ec8 100644 --- a/_data/server-workgroup/projects.yml +++ b/_data/server-workgroup/projects.yml @@ -193,3 +193,10 @@ pitched: 2023-08-04 accepted: 2023-10-04 url: https://github.com/apple/swift-openapi-generator + +- name: MongoKitten + description: Native MongoDB driver for Swift, written in Swift + maturity: Incubating + pitched: 2024-01-03 + accepted: 2024-02-01 + url: https://github.com/orlandos-nl/MongoKitten From 01389df584f2cdc659f7979e897212218920abc2 Mon Sep 17 00:00:00 2001 From: Christopher Thielen Date: Tue, 26 Mar 2024 15:19:24 -0700 Subject: [PATCH 19/20] Editorial pass --- _posts/2024-03-25-sswg-update-2024.md | 83 -------------------------- _posts/2024-03-28-sswg-update-2024.md | 84 +++++++++++++++++++++++++++ 2 files changed, 84 insertions(+), 83 deletions(-) delete mode 100644 _posts/2024-03-25-sswg-update-2024.md create mode 100644 _posts/2024-03-28-sswg-update-2024.md diff --git a/_posts/2024-03-25-sswg-update-2024.md b/_posts/2024-03-25-sswg-update-2024.md deleted file mode 100644 index 01a4a1879..000000000 --- a/_posts/2024-03-25-sswg-update-2024.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -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. diff --git a/_posts/2024-03-28-sswg-update-2024.md b/_posts/2024-03-28-sswg-update-2024.md new file mode 100644 index 000000000..269907da3 --- /dev/null +++ b/_posts/2024-03-28-sswg-update-2024.md @@ -0,0 +1,84 @@ +--- +layout: post +published: true +date: 2024-03-28 10:00:00 +title: SSWG 2024 Annual Update +author: [Joannis, ktoso, FranzBusch] +--- + +In this annual post, the [Swift Server WorkGroup (SSWG)](/sswg/) reflects on the community, ecosystem-wide accomplishments and the workgroup's focus areas for the year ahead. + +Since our [previous update](/blog/sswg-update-2023/), Swift on the Server has continued to grow in many ways. Let's start with a look at the progress made in 2023, then look ahead and next steps for 2024. + +## 2023 in Review + +### Server Community Survey + +For the first time ever, the SSWG ran a developer community survey aimed at collecting feedback and information about the shape and breadth of the Swift server ecosystem. +We received a great response, and we'd like to thank everyone who participated! + +We've analyzed the responses to help direct the workgroup's efforts, as well as provide visibility into how the ecosystem is doing. For example, while the majority of respondents already use Swift Concurrency, there remain challenges in some areas with adoption. +We also learned that there is a lot of interest in standardized tooling such as `swift-format` and `sourcekit-lsp`, and interest in building out support for various IDEs. + +You can read 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](/sswg/incubation-process.html) and providing guidance to package authors. We've seen a lot of new, in-development, and improved packages in the last year. + +By participating in the [Google Summer of Code](https://www.swift.org/gsoc2024/), we were able to provide [swift-memcache-gsoc](https://github.com/swift-server/swift-memcache-gsoc), which makes it easier to communicate with Memcached servers. The wire protocol and higher-level connection APIs are done, with connection pools and key sharding on the roadmap. + +### 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](https://github.com/apple/swift-nio) introduction of `NIOAsyncChannel` and the `ServiceGroup` in the rewritten ServiceLifecycle package. Together they are foundational pieces for higher-level libraries like [Hummingbird](https://github.com/hummingbird-project/hummingbird) and [gRPC](https://github.com/grpc/grpc-swift) to build logic using Structured Concurrency. + +### Tooling Improvements + +Tooling has seen some tremendous improvements in 2023 with the introduction of [Swiftly](https://github.com/swift-server/swiftly), [Dependabot for Swift](https://github.blog/changelog/2023-08-01-swift-support-for-dependabot-updates/), and [Chiseled Containers](https://forums.swift.org/t/swift-chiselled-containers/65993). + +In addition, thanks to the introduction of Package Plugins, we've seen the [OpenAPI Generator](https://github.com/apple/swift-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 saw 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)](https://github.com/apple/swift-distributed-actors)** was accepted in January 2023. This package enables writing peer-to-peer clusters in Swift using distributed actors. +- **[Cassandra Client](https://github.com/apple/swift-cassandra-client)** was accepted in February 2023, providing a Swift client for Apache Cassandra. +- **[SQLiteNIO](https://github.com/vapor/sqlite-nio)** 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](https://github.com/apple/swift-service-context)** and **[Swift Distributed Tracing](https://github.com/apple/swift-distributed-tracing)** were accepted in October 2023. These packages enable distributed tracing for Swift, rounding out the "three pillars of observability". +- **[DiscordBM](https://github.com/DiscordBM/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](https://github.com/apple/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](https://github.com/orlandos-nl/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](/documentation/concurrency/) 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 Middleware + +In 2023, we've extensively prepared for a standardized HTTP server and middleware. The in-progress, Hummingbird rewrite is already taking advantage of the new [HTTP types](https://github.com/apple/swift-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 organizing online user group meetings. We're currently planning the first Swift Server User Group meeting, with a goal of 3-4 meetings per year. + +Finally, we're excited to see the return of the [ServerSide.swift](https://serversideswift.info) conference in 2024, hosted in London. From 2e708dfccc8725205c667458bdef7337cd1af597 Mon Sep 17 00:00:00 2001 From: Christopher Thielen Date: Thu, 28 Mar 2024 14:13:55 -0700 Subject: [PATCH 20/20] Update timestamp and blog link --- _posts/2024-03-28-sswg-update-2024.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2024-03-28-sswg-update-2024.md b/_posts/2024-03-28-sswg-update-2024.md index 269907da3..0e5e27541 100644 --- a/_posts/2024-03-28-sswg-update-2024.md +++ b/_posts/2024-03-28-sswg-update-2024.md @@ -1,7 +1,7 @@ --- layout: post published: true -date: 2024-03-28 10:00:00 +date: 2024-03-28 14:30:00 title: SSWG 2024 Annual Update author: [Joannis, ktoso, FranzBusch] --- @@ -20,7 +20,7 @@ We received a great response, and we'd like to thank everyone who participated! We've analyzed the responses to help direct the workgroup's efforts, as well as provide visibility into how the ecosystem is doing. For example, while the majority of respondents already use Swift Concurrency, there remain challenges in some areas with adoption. We also learned that there is a lot of interest in standardized tooling such as `swift-format` and `sourcekit-lsp`, and interest in building out support for various IDEs. -You can read the full [SSWG Community Survey 2024 Report](http://TODO) over on the Swift forums. +You can read the full [SSWG Community Survey 2024 Report](https://forums.swift.org/t/report-server-side-swift-developer-survey-2023/70966) over on the Swift forums. ### Continued Focus on Growing the Ecosystem