What's new in Swift: March 2026 Edition
Welcome to “What’s new in Swift,” a curated digest of releases, videos, and discussions in the Swift project and community.
Swift 6.3 has been released, expanding Swift into new domains and improving developer ergonomics. A highlight of its release is work to improve cross-platform build tooling. Owen Voorhees shares an update on that effort:
Hi! I’m Owen, a lead engineer on the Core Build team at Apple. Last year we shared our goal to bring Swift Build to Swift Package Manager, in an effort to deduplicate build technologies within the Swift ecosystem and deliver a consistent build experience across all platforms that Swift supports.
Since the announcement, we’ve been working in the open, landing hundreds of patches to improve Swift Build’s support across various platforms including Linux and Windows, and to integrate it deeply in Swift Package Manager. With Swift 6.3, developers have the option to enable this integration and try it out with their packages. To validate parity with the previous build system, we’ve used the package list from swiftpackageindex.com, testing thousands of open source packages with Swift Build.
Most recently, the main branch of Swift started using Swift Build as its default build system, paving the way for Swift Build to be the out-of-the-box option for Swift developers in a future Swift release.
Over the coming months, we’ll continue sharing our progress and driving down the remaining bugs to bring the build system to parity. We encourage you to give it a try and file bugs that you encounter. We’re excited by this progress, and look forward to building future tooling improvements across all platforms and project models that will benefit from this build system.
Now on to other news about Swift:
Videos to watch
- Interested in Swift for systems programming? The -ization of Containerization, presented at SCaLE, covers the Containerization project and their experience adopting Swift.
- Swift community meetup #8 featured two talks: real-time computer vision on NVIDIA Jetson, and a production AI data pipeline built with Vapor.
- A new interview with Matt Massicotte on the Swift Academy podcast goes in-depth on Swift Concurrency.
Community highlights
- How can you gradually deprecate APIs ahead of a major release? Point-Free blogged Hard Deprecations and Soft Landings with SwiftPM Traits, a clever approach to solving a common API deprecation problem.
- Daniel Jilg shared TelemetryDeck’s adoption story on the Swift blog, including how they use Swift and Vapor for backend services.
- The March 2026 Swift for Wasm updates are out, highlighting a new JavaScriptKit release with BridgeJS improvements, and continued work in WasmKit.
Swift Evolution
The Swift project adds new language features through the Swift Evolution process. These are some of the proposals currently under review or recently accepted for a future Swift release.
Under active review:
- SE-0522 Source-Level Control Over Compiler Warnings - Swift lets you configure warning behavior at the module level using compiler flags, but that’s an all-or-nothing approach. This proposal adds fine-grained warning control: a
@warnattribute that lets you override warning behavior for a specific diagnostic group within the scope of a single declaration, with support for escalating it to an error, downgrading it to a warning, or suppressing it entirely, without affecting the rest of your module.
Recently accepted:
- SE-0509 Software Bill of Materials (SBOM) Generation for Swift Package Manager - An SBOM is a standardized inventory of all the software components in a project, increasingly required for security auditing and regulatory compliance. This proposal adds native SBOM generation to SwiftPM as both a
--sbom-specflag onswift build, and a separateswift package generate-sbomsubcommand, with support for the CycloneDX and SPDX formats. - ST-0021 Targeted Interoperability between Swift Testing and XCTest - When migrating from XCTest to Swift Testing, it’s common to call existing XCTest helper functions from new Swift Testing tests. Today, an
XCTAssertfailure inside a Swift Testing test is silently ignored. This proposal fixes that: XCTest APIs will work as expected when called in Swift Testing, and Swift Testing APIs will work as expected when called in XCTest, if XCTest already provides similar functionality. - SE-0515 Allow
reduceto produce noncopyable results - Swift’sreducecurrently requires its initial value to be copyable, making it incompatible with noncopyable types. This proposal updatesreduceto support noncopyable initial values and results, and changes it to consume rather than borrow the initial value, eliminating an unnecessary copy even for copyable types.