• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
  • Home
  • About Us
  • Contact Us

iHash

News and How to's

  • OTTERBOX DEFENDER SERIES SCREENLESS EDITION Case for iPhone 13 Pro (ONLY) – HUNTER GREEN for $29

    OTTERBOX DEFENDER SERIES SCREENLESS EDITION Case for iPhone 13 Pro (ONLY) – HUNTER GREEN for $29
  • DUBLIN 1L Stainless Steel French Press for $63

    DUBLIN 1L Stainless Steel French Press for $63
  • Prodigy Afterschool Masterclasses for Kids for $99

    Prodigy Afterschool Masterclasses for Kids for $99
  • 10.1" WiFi Digital Photo Frame with Photo/Video Sharing for $149

    10.1" WiFi Digital Photo Frame with Photo/Video Sharing for $149
  • 8" WiFi Cloud Photo Frame for $112

    8" WiFi Cloud Photo Frame for $112
  • News
    • Rumor
    • Design
    • Concept
    • WWDC
    • Security
    • BigData
  • Apps
    • Free Apps
    • OS X
    • iOS
    • iTunes
      • Music
      • Movie
      • Books
  • How to
    • OS X
      • OS X Mavericks
      • OS X Yosemite
      • Where Download OS X 10.9 Mavericks
    • iOS
      • iOS 7
      • iOS 8
      • iPhone Firmware
      • iPad Firmware
      • iPod touch
      • AppleTV Firmware
      • Where Download iOS 7 Beta
      • Jailbreak News
      • iOS 8 Beta/GM Download Links (mega links) and How to Upgrade
      • iPhone Recovery Mode
      • iPhone DFU Mode
      • How to Upgrade iOS 6 to iOS 7
      • How To Downgrade From iOS 7 Beta to iOS 6
    • Other
      • Disable Apple Remote Control
      • Pair Apple Remote Control
      • Unpair Apple Remote Control
  • Special Offers
  • Contact us

Swift.org – SSWG Annual Update

May 11, 2022 by iHash Leave a Comment

October 31, 2019

Tanner Nelson is member of the Swift Server Work Group and creator of the Vapor web framework.

The Swift Server Work Group (SSWG) set out 12 months ago to begin defining and prioritizing new efforts to address the needs of the Swift server community. Since then, we’ve been busy meeting regularly, working with the community, defining guidelines, writing Swift packages, voting on proposals, posting in the forums, and much more. We feel that we’ve made significant progress toward those goals we set out last year and we’d like to share a high-level update with you today.

Table of Contents

  • Incubation Process
  • Libraries
    • SwiftNIO
    • SwiftLog
    • SwiftMetrics
    • PostgresNIO
    • rediStack
    • AsyncHTTPClient
    • APNSwift
    • StatsdClient
    • Prometheus
    • Docker
    • Swift Backtrace
    • Linux Patch Releases
  • Future: Focus Areas for 2020
    • Database Drivers and Storage Clients
    • Distributed Tracing
    • Connection Pooling
    • OpenAPI
    • Linux Distros
    • Deployment Guides
    • Showing Adoption
    • And Much More…

Incubation Process

We believe that a healthy open source ecosystem relies heavily on the quality of its packages. Because of this, our biggest focus has been on a proposal process for packages (somewhat similar to Swift Evolution) that we call the Incubation Process. This process defines how someone with an existing Swift package or new idea can get feedback, follow best practices, and eventually be included in the official Swift server package index.

The incubation process is chock-full of well-considered guidelines and requirements around things like concurrency, testing, and code style. The SSWG is working continuously to improve the Incubation Process and its recommendations. Two ammendments to the process have already been proposed and accepted.

While we want code quality high, we are also cognizant of keeping the barrier to entry as low as possible. To make the incubation process simple and accessible, we use the Swift forums. Pitching your idea or package (the first step of the Incubation Process) is done by creating a new post in the Server > Pitches category.

Once a package has completed the incubation process and been accepted by the SSWG, it will be listed on the Swift server package index. Accepted packages will undergo regular review to ensure they still meet qualifying standards. While still in its humble beginnings, we hope this index will grow to be an invaluable asset to Swift programmers.

Libraries

Nine proposals have been accepted via the Incubation Process so far. These packages are being adopted rapidly by upcoming versions of popular server-side Swift frameworks like Vapor 4 and Kitura.

SwiftNIO

Event-driven network application framework for high performance protocol servers & clients, non-blocking.

This package is at the heart of the Swift server ecosystem. It provides a common API for network communication that is highly extensible and efficient. Most packages that do networking will either be built on SwiftNIO directly or provide some wrappers for convenient interoperation.

SwiftLog

A Logging API for Swift

This universal logging API can be used by any package that would like to output logs, but doesn’t want to worry about which specific logging implementation to use. By using SwiftLog, your package lets the end user choose how to accumulate the information.

Since success of a logging API depends heavily on adoption, the SSWG prioritized development of this package to ensure quality and early availability.

SwiftMetrics

A Metrics API for Swift

SwiftMetrics provides a universal API for metrics. This allows packages to report structured information using meters like gauges, timers, counters, and more. Just like SwiftLog, packages that use the SwiftMetrics API give the end user the freedom to choose which metrics implementation is used.

PostgresNIO

Non-blocking, event-driven Swift client for PostgreSQL.

PostgresNIO is the first database driver to be approved by the SSWG (with many more to come). This Postgres client was built from the ground up on SwiftNIO 2 following best practices as outlined by the Incubation Process.

Using SwiftNIO natively makes this Postgres client much more efficient to run alongside a SwiftNIO HTTP server when compared to a blocking, C-based approach.

rediStack

Non-blocking, event-driven Swift client for Redis.

Shortly after the Postgres client came RediStack, a Redis client. This package is also built natively on SwiftNIO 2 and takes great care to follow best practices. Given the simplistic nature of Redis’ RESP protocol, this package makes a great example project for anyone interested in making their own database driver.

AsyncHTTPClient

HTTP client library built on SwiftNIO

This package provides an efficient and easy-to-use alternative to URLSession for Swift server applications. AsyncHTTPClient can be used more efficiently alongside other SwiftNIO-based packages when compared to Linux’s cURL-based URLSession. This package supports streaming bodies, proxying, cookie parsing, and more.

APNSwift

An HTTP/2 APNS library built on swift-nio

This package makes sending push notifications via APNS easy. It provides a simple API that handles the HTTP/2 connection, payload encoding, and JWT signature creation using ECDSA behind the scenes.

StatsdClient

Metrics backend for swift-metrics that uses the statsd protocol.

This package allows the Swift Metrics API to output data to aggregation servers using the statsd protocol.

Prometheus

Client-side Prometheus library in Swift

This package allows the Swift Metrics API to output data to Prometheus.

Beyond package incubation, the SSWG is also focused on improving Swift and its tooling on Linux.

Docker

Official Swift images are now available via Docker hub for Swift 3, 4, and 5 on Ubuntu 16.04 (Xenial) and Ubuntu 18.04 (Bionic). New images are created whenever a new version of Swift is released. In addition to the normal images with everything you need to build and run Swift, there are now “slim” images that contain only what is required to run Swift. These are great for reducing final container size with multi-stage build Docker builds. Checkout the Swift Docker repo for more information.

Swift Backtrace

This package provides support for automatically printing crash backtraces of Swift programs on Linux. Backtraces are generated by a builtin C library libbacktrace and demangled using a private Swift runtime call. We hope to improve the implementation by adopting SE-0262 when it is approved. We are also working with the Swift core team to discuss the benefits of merging this functionality into the Swift standard library.

Linux Patch Releases

Starting with Swift 4.2.2, Linux now receives monthly patch releases containing bug fixes. Each patch release receives a review manager responsible for merging patches during a three-week window. After this window closes, the patch is finalized and released on Swift.org. This means that Linux servers will get much faster access than before to bug fixes and improvements in Swift and its core libraries.

Future: Focus Areas for 2020

Going forward, our main focus will continue to be on adding new packages to our index. There is a plethora of packages we’d like to see in 2020. Outside of packages, we hope to continue improving Swift and its tooling on servers.

If any of the new focus areas listed below pique your interest, we highly encourage you to get involved. If you are not sure where to begin, consider posting in the Server section of the Swift forums with your questions or ideas. You can also consider more formally pitching your idea to the work group. Check out our Incubation Process which describes how to pitch, propose, and submit packages to our index.

Database Drivers and Storage Clients

The SSWG has accepted client implementations for Postgres and Redis.

Work is being done toward proposing MongoDB clients using both MongoKitten and the MongoDB C Driver.

Vapor is planning to pitch two more of its database drivers, MySQLNIO and SQLiteNIO.

But there are many more databases out there! Zookeeper, Cassandra, and Kafka to name a small few. We highly encourage anyone with expertise in a database driver to consider getting involved.

Distributed Tracing

The first two pillars of observability have been accepted: swift-log and swift-metrics. Now we need the final piece: tracing. There have been exciting developments in tracing in recent times, such as OpenTracing joining the CNCF. If you are interested in helping design the future of distributed tracing in Swift, we’d love to hear from you.

Connection Pooling

Vapor’s AsyncKit package, AsyncHTTPClient, and others are working on connection pool implementations. There are lots of interesting questions coming up already around concurrency and performance. Can there be one connection pool to rule them all, or should there be many separate ones that follow well considered best practices? If you have ideas on how connection pooling in Swift should work, let’s combine forces.

OpenAPI

Kitura has had support for OpenAPI for a while now and Vapor is beginning to explore the space. We believe there is room here for a shared library. Something that integrates deeply with the SSWG’s accepted solutions for logging, metrics, and tracing is especially important. If you are interested in OpenAPI, consider getting involved.

Linux Distros

Swift currently offers prebuilt toolchains for Ubuntu. There are many other distros out there and we’d love to see them supported officially. The process for adding a new Linux distro to Swift is not clear at the moment. We think that can be improved. The community could help by identifying which Linux distros are important and contributing reliable build scripts. In a perfect world, we could make this entire system self serve. Does this sound interesting to you? If so, reach out to us.

Deployment Guides

Getting your applicaton production-ready can be a daunting process. There are the simple things, like remembering to use -c release, and the harder things, like writing code that is horizontally scalable. Once your app is in production, how do you deal with things like leaks and crashes?

There are lots of things we could do to make this process easier: code templates, how-to guides, information on best practices, etc. If this seems interesting to you, we’d love to hear your ideas.

Showing Adoption

“Is server-side Swift production ready?”

YES!

Swift on server is being used in production everywhere by huge and small companies alike. We need to do a better job of showing people this. How can we collect this information? How can we amplify success stories? If you have any ideas, let us know.

And Much More…

Swift on the server is growing quickly and there’s way more that the SSWG wants to do than we can fit on this list. If you have a great idea that wasn’t listed here, let us know about it on the Swift forums. There is also a matching post for this blog post on the Swift forums if you have specific questions or comments!

New Diagnostic Architecture Overview

Swift Numerics

Swift.org – SSWG Annual Update

Share this:

  • Facebook
  • Twitter
  • Pinterest
  • LinkedIn

Filed Under: News Tagged With: Apple

Special Offers

  • OTTERBOX DEFENDER SERIES SCREENLESS EDITION Case for iPhone 13 Pro (ONLY) – HUNTER GREEN for $29

    OTTERBOX DEFENDER SERIES SCREENLESS EDITION Case for iPhone 13 Pro (ONLY) – HUNTER GREEN for $29
  • DUBLIN 1L Stainless Steel French Press for $63

    DUBLIN 1L Stainless Steel French Press for $63
  • Prodigy Afterschool Masterclasses for Kids for $99

    Prodigy Afterschool Masterclasses for Kids for $99
  • 10.1" WiFi Digital Photo Frame with Photo/Video Sharing for $149

    10.1" WiFi Digital Photo Frame with Photo/Video Sharing for $149
  • 8" WiFi Cloud Photo Frame for $112

    8" WiFi Cloud Photo Frame for $112

Reader Interactions

Leave a Reply Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Primary Sidebar

E-mail Newsletter

  • Facebook
  • GitHub
  • Instagram
  • Pinterest
  • Twitter
  • YouTube

More to See

New ‘FabricScape’ Bug in Microsoft Azure Service Fabric Impacts Linux Workloads

Jun 29, 2022 By iHash

Cloud Security Resources and Guidance

Cloud Security Resources and Guidance

Jun 29, 2022 By iHash

Tags

* Apple Cisco computer security cyber attacks cyber crime cyber news Cyber Security cybersecurity cyber security news cyber security news today cyber security updates cyber threats cyber updates data breach data breaches google hacker hacker news Hackers hacking hacking news how to hack incident response information security iOS iOS 7 iOS 8 iPhone iPhone 6 Malware microsoft network security Privacy ransomware malware risk management security security breaches security vulnerabilities software vulnerability the hacker news Threat update video web applications

Latest

MLPerf Results Highlight More Capable ML Training

Today, MLCommons®, an open engineering consortium, released new results from MLPerf™ Training v2.0, which measures the performance of training machine learning models. Training models empowers researchers to unlock new capabilities faster such as diagnosing tumors, automatic speech recognition or improving movie recommendations. The latest MLPerf Training results demonstrate broad industry participation and up to 1.8X […]

OTTERBOX DEFENDER SERIES SCREENLESS EDITION Case for iPhone 13 Pro (ONLY) – HUNTER GREEN for $29

Expires June 28, 2122 21:59 PST Buy now and get 0% off PRODUCT SPECS Compatible with iPhone 13 Pro (ONLY) Multi-layer defense from the solid inner shell and resilient outer slipcover with port covers that block dirt, dust and lint from getting into jacks and ports Tested to survive 4X as many drops as military […]

DUBLIN 1L Stainless Steel French Press for $63

Expires June 29, 2122 23:59 PST Buy now and get 10% off KEY FEATURES This elegant, durable, and stylish coffee press is the ideal way to enjoy coffee at home. It has a one-liter (1000 ml/34 fl. oz) capacity that makes it perfect for making two to three large cups of coffee. The double-wall insulated […]

What Is Data Reliability Engineering?

Data Reliability Engineering (DRE) is the work done to keep data pipelines delivering fresh and high-quality input data to the users and applications that depend on them. The goal of DRE is to allow for iteration on data infrastructure, the logical data model, etc. as quickly as possible, while—and this is the key part! —still […]

Prodigy Afterschool Masterclasses for Kids for $99

Expires June 28, 2122 23:59 PST Buy now and get 85% off KEY FEATURES Unlock Your Child’s Potential For Success! No dream is too big when you have the tools to achieve it. Whether your child dreams of saving lives as a doctor or inspiring people through the arts, Prodigy will give them the tools […]

Cybersecurity Experts Warn of Emerging Threat of “Black Basta” Ransomware

The Black Basta ransomware-as-a-service (RaaS) syndicate has amassed nearly 50 victims in the U.S., Canada, the U.K., Australia, and New Zealand within two months of its emergence in the wild, making it a prominent threat in a short window. “Black Basta has been observed targeting a range of industries, including manufacturing, construction, transportation, telcos, pharmaceuticals, […]

Jailbreak

Pangu Releases Updated Jailbreak of iOS 9 Pangu9 v1.2.0

Pangu has updated its jailbreak utility for iOS 9.0 to 9.0.2 with a fix for the manage storage bug and the latest version of Cydia. Change log V1.2.0 (2015-10-27) 1. Bundle latest Cydia with new Patcyh which fixed failure to open url scheme in MobileSafari 2. Fixed the bug that “preferences -> Storage&iCloud Usage -> […]

Apple Blocks Pangu Jailbreak Exploits With Release of iOS 9.1

Apple has blocked exploits used by the Pangu Jailbreak with the release of iOS 9.1. Pangu was able to jailbreak iOS 9.0 to 9.0.2; however, in Apple’s document on the security content of iOS 9.1, PanguTeam is credited with discovering two vulnerabilities that have been patched.

Pangu Releases Updated Jailbreak of iOS 9 Pangu9 v1.1.0

  Pangu has released an update to its jailbreak utility for iOS 9 that improves its reliability and success rate.   Change log V1.1.0 (2015-10-21) 1. Improve the success rate and reliability of jailbreak program for 64bit devices 2. Optimize backup process and improve jailbreak speed, and fix an issue that leads to fail to […]

Activator 1.9.6 Released With Support for iOS 9, 3D Touch

  Ryan Petrich has released Activator 1.9.6, an update to the centralized gesture, button, and shortcut manager, that brings support for iOS 9 and 3D Touch.

Copyright iHash.eu © 2022
We use cookies on this website. By using this site, you agree that we may store and access cookies on your device. Accept Read More
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT