Mungomash LLC
Swift Versions

2014 – 2026

Swift Versions

Every public release of Swift — Swift 1.0 in September 2014 through the current 6.x line — with the Xcode version that ships it, headline language features, and the concurrency-progression arc from GCD to async/await to strict concurrency. Plus the Chris Lattner / LLVM origin, the closed-source 2014 launch, the December 2015 open-source moment, the Swift Evolution process, Lattner’s 2017 departure, the Swift Server Workgroup, the Linux / Windows / Embedded story, and the Swift 6 strict-concurrency push.

Era & concurrency model

Era

Pre-OSS — Swift 1.0 – 2.x, 2014–2015, closed-source, Apple platforms only
Open Source — Swift 3.0 – 5.x, 2015–2024, Apache 2.0, Swift Evolution process
Strict Concurrency — Swift 6.0+, 2024 onward, data-race safety by default

Concurrency model

GCD Grand Central Dispatch & closures, Swift 1.0–5.4
async / await Structured concurrency, actors, Swift 5.5+
Strict Data-race safety enforced at compile time, Swift 6.0+

Swift version table

Version
Swift 6.1
Strict
Strict
Mar 2025
First 6.x follow-up. Continued strict-concurrency refinement. Embedded Swift improvements.
  • Ships with Xcode 16.3 (March 2025).
  • Continued refinement of the Swift 6 strict-concurrency model: better error messages, more relaxations on common false-positive patterns, deeper integration with the standard library’s sendable annotations.
  • Embedded Swift continues to mature; more standard-library subsets become available for resource-constrained targets.
  • Always confirm exact features against the Swift blog — this row is refreshed quarterly.
Version
Swift 6.0
Strict
Strict
Sep 2024
Strict concurrency by default. Data-race safety enforced. The watershed Swift release.
  • Strict concurrency by default. Data-race safety is enforced at compile time for new projects; existing projects can opt back into the Swift 5 language mode (-swift-version 5) until they migrate.
  • Ships with Xcode 16 (September 2024).
  • Typed throws (throws(MyError)) ship as a stable language feature, allowing functions to declare exactly which error types they can throw.
  • Embedded Swift reaches stable as a supported subset for embedded systems, microcontrollers, and kernel-mode code.
  • The major-version bump from 5.x to 6.0 was deliberate — the strict-concurrency requirement is a structural change to the language semantics, not a feature addition.
  • Java’s answer to the same problem is virtual threads (Project Loom, stable in Java 21); Kotlin’s is structured-concurrency-on-top-of-coroutines (stable in Kotlin 1.3); the three languages converge on similar ergonomics from different starting points.
Version
Swift 5.10
Open Source
async / await
Mar 2024
Final 5.x. Concurrency-safety preview as opt-in. Last release before the 6.0 cutover.
  • Ships with Xcode 15.3 (March 2024).
  • The full Swift 6 strict-concurrency model is opt-in via -strict-concurrency=complete; teams use this release to begin the 6.0 migration before it becomes default.
  • Final Swift 5.x major; subsequent 5.x releases are bug-fix only.
Version
Swift 5.9
Open Source
async / await
Sep 2023
Macros (compile-time codegen). if / switch as expressions.
  • Ships with Xcode 15 (September 2023).
  • Macros ship as a stable language feature: compile-time code generation via the @freestanding and @attached macro system, implemented on top of SwiftSyntax.
  • if and switch as expressions: let x = if cond { a } else { b }.
  • Variadic generics ship as a preview, completing a long-standing language gap.
Version
Swift 5.7
Open Source
async / await
Sep 2022
if let foo shorthand. Regex literals. Generics consolidation.
  • Ships with Xcode 14 (September 2022).
  • if let foo shorthand replaces the verbose if let foo = foo.
  • Regex literals: let pattern = /\d+/.
  • Generics consolidation work: opaque parameters (some in parameter position) and primary associated types.
Version
Swift 5.5
Open Source
async / await
Sep 2021
async / await. Actors. Structured concurrency. The watershed concurrency release.
  • Ships with Xcode 13 (September 2021).
  • Structured concurrency. async/await, Task, async let, task cancellation, structured-concurrency lifetime model.
  • Actors. Reference types whose state is protected by an isolation domain; the foundation that the Swift 6 strict-concurrency model builds on.
  • @MainActor for ergonomic main-thread isolation.
  • The single largest concurrency overhaul in Swift’s history. Replaces the GCD + closures pattern that had been the standard since Swift 1.0.
Version
Swift 5.3
Open Source
GCD
Sep 2020
Apple Silicon. Multi-pattern catch. SPM resources. Windows / Linux improvements.
  • Ships with Xcode 12 (September 2020) — the Apple Silicon transition release.
  • Multi-pattern catch; multiple trailing closures.
  • Swift Package Manager resources (bundled images, JSON files, etc.).
  • First major Swift release with substantive Linux / Windows quality-of-life improvements; AArch64 and Windows toolchains advance.
Version
Swift 5.1
Open Source
GCD
Sep 2019
Opaque return types (some View). Property wrappers. Module stability.
  • Ships with Xcode 11 (September 2019) — the SwiftUI launch release.
  • Opaque return types (some View) and property wrappers (@State, @Binding, @Environment) ship together to enable the SwiftUI design.
  • Module stability: Swift modules can now be shipped as binary frameworks with forward-compatibility guarantees.
  • SwiftUI couldn’t have shipped without 5.1 — the language features are load-bearing for the framework’s API surface.
Version
Swift 5.0
Open Source
GCD
Mar 2019
ABI stability. Swift runtime ships in macOS / iOS for the first time.
  • Ships with Xcode 10.2 (March 2019).
  • ABI stability. The Swift runtime is bundled in macOS Mojave 10.14.4 and iOS 12.2; apps no longer need to bundle their own Swift libraries. Reduces app sizes by ~10–20MB and ends the “Swift apps update slowly because every Swift app ships its own toolchain” era.
  • Result type added to the standard library.
  • Raw strings (#"..."#) ship.
Version
Swift 4.2
Open Source
GCD
Sep 2018
Hashable conformance by synthesis. CaseIterable. Random number APIs.
  • Ships with Xcode 10 (September 2018).
  • Synthesized Hashable conformance for structs/enums.
  • CaseIterable protocol for enums.
  • New random-number APIs in the standard library, replacing the C-bridged arc4random family.
Version
Swift 4.0
Open Source
GCD
Sep 2017
Codable. String overhaul. Smart key paths.
  • Ships with Xcode 9 (September 2017).
  • Codable protocol — type-safe JSON / property-list encoding and decoding via compiler synthesis. Replaces the manual NSJSONSerialization + dictionary-juggling pattern.
  • String overhaul: String becomes a Collection again (it had been demoted in Swift 2 for performance reasons).
  • Smart key paths: \Person.name as a first-class language construct.
Version
Swift 3.0
Open Source
GCD
Sep 2016
Source-incompatible reset. First major in the open-source era. The migration that hurt.
  • Ships with Xcode 8 (September 2016).
  • Deliberate source-incompatible reset. Swift API guidelines are formalized; method names lose their first-argument labels in many cases (array.append(x) instead of array.appendObject(x)); much of the standard library is renamed.
  • The largest single migration cost in Swift’s history. Xcode 8 included an automated migrator, but it was incomplete; large codebases needed days of manual fix-up.
  • The last major source-break before Swift committed to long-term backwards compatibility. Subsequent majors (4, 5, 6) preserve source compatibility within their major lines.
  • First Swift release after the December 2015 open-sourcing; Swift Evolution proposals (SE-0001 onward) drive the design.
Version
Swift 2.0
Pre-OSS
GCD
Sep 2015
guard, defer, do/try/catch error handling. Protocol extensions. Open-sourced Dec 2015.
  • Ships with Xcode 7 (September 2015).
  • guard for early-exit patterns; defer for cleanup; do/try/catch error handling replacing the Swift 1.x NSError-pointer pattern.
  • Protocol extensions ship — the foundation of “protocol-oriented programming” (Dave Abrahams’ WWDC 2015 framing). Allows default implementations on protocols without needing inheritance.
  • Open-sourced December 3, 2015 — Swift moves to github.com/apple/swift under Apache 2.0. The transition to the Open Source era happens mid-2.x cycle.
Version
Swift 1.0
Pre-OSS
GCD
Sep 2014
First public release. Closed-source. Apple platforms only.
  • Swift 1.0 ships September 9, 2014 alongside Xcode 6. Originally announced at WWDC 2014.
  • Designed by Chris Lattner and his team at Apple (project started internally around 2010). Built on top of LLVM and Clang.
  • Closed-source; Apple platforms only. The Linux / Windows story doesn’t begin until the December 2015 open-sourcing.
  • Designed as the eventual successor to Objective-C while maintaining seamless interop with the existing Objective-C / Cocoa / UIKit codebases.
  • Pitched as “Objective-C without the C” — modern type system with generics, protocols, optionals as a type-system feature, value semantics for collections, type inference, closure shorthand.

Each row anchors as #swift-N-M (e.g. #swift-6-0, #swift-5-5). Each row links to the Xcode release that ships it. Confirm exact features against swift.org/blog — this table is refreshed quarterly.

Swift × Xcode — quick lookup

Swift and Xcode ship together. Each Xcode major bundles one Swift major; minor Xcode releases occasionally bundle an updated Swift minor. The table below answers the high-traffic “what Swift version is in Xcode N?” query in one scan. (For the inverse — “what Xcode version do I need for Swift N?” — read the same table the other direction.)

Patch and minor Swift releases between the rows above ship with point-release Xcodes (e.g. Swift 5.4 with Xcode 12.5, Swift 5.6 with Xcode 13.3, Swift 5.8 with Xcode 14.3). For the App Store submission floor (which often pins a minimum Xcode independent of the Swift version), see the Xcode Versions page.

Chris Lattner, LLVM, and the closed Swift years (2010–2014)

Swift began as an internal Apple project around July 2010, started by Chris Lattner — the creator of LLVM (started 2000 at the University of Illinois Urbana-Champaign as Lattner’s graduate research) and the architect of the Apple compiler-toolchain modernization that had been ongoing since Lattner joined Apple in 2005. By 2010 LLVM was the foundation of the Apple platform’s entire compiler stack: Clang as the C / C++ / Objective-C front-end, LLDB as the debugger, the LLVM optimizer, and the LLVM-based linker.

Swift the language was conceived as “Objective-C without the C” — modern type system with generics, optionals as a first-class type-system feature, value semantics for collections, type inference, closures, and seamless interop with the existing Objective-C codebase that Apple platforms had been built on since the 1990s NeXTSTEP era. Lattner described the early design goals as making the language “safer than C, faster than scripting languages, and as expressive as a modern functional language.”

Swift remained a closed-source internal project for nearly four years, with a small team (it grew from Lattner alone in 2010 to about a dozen by 2013) building both the language and the standard library. The public reveal happened at WWDC 2014 on June 2, 2014, where Apple announced Swift as a forthcoming developer-facing language. Xcode 6.0 shipped Swift 1.0 in September 2014. The closed-source period seeded a structural problem the open-source era then had to undo — Swift 1 and Swift 2 were not designed with cross-platform portability in mind, and Linux / Windows support didn’t begin in earnest until after the December 2015 open-sourcing.

The December 2015 open-sourcing and Swift Evolution

On December 3, 2015, Apple open-sourced Swift under the Apache 2.0 license with a Runtime Library Exception. The release covered the compiler, the standard library, the REPL, the debugger, the package manager (Swift Package Manager, new at the time), and the foundation libraries needed for cross-platform Swift. The project moved to github.com/apple/swift with public issue tracking, public design discussions on a swift-evolution mailing list, and a Linux toolchain that shipped on the same day as the macOS toolchain.

The open-sourcing came with the Swift Evolution process: every language change after this point would go through a formal Swift Evolution Proposal (SE-NNNN) reviewed by a community-and-Apple committee. The first batch of proposals (SE-0001 through SE-0050ish) were the design changes that produced Swift 3.0. The process has held since: every major language addition or breaking change is an SE-NNNN proposal with a public review window, recorded acceptance/rejection rationale, and a documented migration path. (Reference: github.com/apple/swift-evolution.)

The transition wasn’t smooth. Swift 3.0 in September 2016 shipped a deliberate source-incompatible reset that cleaned up the Swift API guidelines; existing 1.x and 2.x code needed extensive migration. Apple shipped an automated migrator inside Xcode 8, but it was incomplete — large codebases needed days of manual fix-up. Swift 3 was the last major source break before Apple committed to long-term backwards compatibility within major version lines; subsequent majors (4, 5, 6) preserve source compatibility through their entire 4.x / 5.x / 6.x runs.

Chris Lattner’s 2017 departure

Chris Lattner left Apple in January 2017, six months after the Swift 3.0 ship. He went briefly to Tesla to lead Autopilot software (a tenure that lasted six months), then to Google Brain to lead the team that built Swift for TensorFlow (an ambitious, ultimately unsuccessful, effort to make Swift the programming model for ML), then co-founded SiFive (the RISC-V chip company), and most recently founded Modular. Lattner’s departure didn’t derail Swift — the language and toolchain are now stewarded by a much larger team at Apple (Ted Kremenek as project lead since 2018; Doug Gregor on the type system; John McCall on runtime; Holly Borla on concurrency) plus the open-source community — but the conceptual founder isn’t the day-to-day project lead anymore. Swift Evolution proposals from Lattner have become rare since the Tesla move.

The Swift Server Workgroup and Linux maturity

The Linux toolchain had shipped on day one of the December 2015 open-sourcing, but ergonomically Swift on the server was rough through the late 2010s. The standard library’s Apple-platform-only assumptions (Foundation depending on CoreFoundation, certain types being Cocoa-flavored) bled through the Linux toolchain. Building a small Swift HTTP server on Linux in 2016–2017 was a project, not a recipe.

The Swift Server Workgroup, established in 2018, gave the server-side story a formal home. SwiftNIO (Apple’s low-level event-loop networking library, modeled on Netty) launched alongside it. Vapor (the leading server-side Swift framework, started in 2016) consolidated as the recommended high-level option. By the early 2020s, Swift on the server had a credible toolchain — a static-binary Linux build, mature HTTP / GRPC libraries, async/await integration, and competitive performance.

Adoption is still niche compared to Java / Kotlin / Go on the server. The Swift-on-server pitch is most compelling for shops that already have Swift talent (typically iOS / macOS teams looking to share code or move into backend) or for performance-critical workloads where Swift’s value semantics, ARC memory model, and zero-cost abstractions provide a clear advantage. Notable production users include Apple’s own services (parts of the App Store backend), and a small but growing roster of shops where a unified Swift codebase across mobile and server pays off.

The concurrency progression: GCD → async/await → strict

Swift inherited Objective-C’s concurrency model: Grand Central Dispatch (GCD), a queue-based work-stealing system Apple shipped in macOS 10.6 Snow Leopard (2009). The pattern: dispatch closures to queues, use barriers and semaphores for coordination, lift a result back to the main queue when ready. It was a productive model for the iOS / macOS app idiom but sharp-edged: deadlock risks, no compile-time enforcement of thread safety, and verbose escape syntax for any non-trivial coordination.

Swift 5.5 (September 2021) shipped async/await, structured concurrency, and actors. The design (led by Ben Cohen, John McCall, and others on the Apple compiler team, with substantial community input through the Swift Evolution process) drew on Kotlin’s coroutines (cross-link: Kotlin coroutines history), Rust’s async story, and the structured-concurrency literature that had been emerging in academia. Swift’s actor model went farther than either language in baking thread-isolation into the type system: an actor is a reference type whose state is implicitly protected by an isolation domain, accessible only via await from outside.

Swift 6.0 (September 2024) made strict concurrency the default. New projects compile with data-race-safety errors enforced at the type level: any potential data race — passing a non-Sendable type across an isolation boundary, accessing shared state from a non-isolated context — becomes a compile-time error. Existing projects can opt into the Swift 5 language mode for an interim period. The transition has been substantial migration work for production codebases, similar in scope to the Swift 3 source-break of 2016 but more incremental: Swift 6 ships with progressive opt-in flags so teams can migrate file-by-file. Java’s comparable answer is virtual threads (Project Loom, stable in Java 21); Kotlin’s is the structured-concurrency conventions on top of coroutines (stable since Kotlin 1.3); the three languages converge on similar ergonomics from different starting points.

Windows, Embedded, and the cross-platform reach

Windows support landed in the late 2010s and has steadily improved. Saleem Abdulrasool of Apple has been the driving figure on the Windows toolchain; Swift 5.3 (September 2020) shipped substantial Windows quality-of-life improvements, and Swift 5.5+ has been usable for Windows apps without significant friction. The story is still less polished than on Linux — some Foundation features lag, the IDE integration is via VS Code rather than a Microsoft-side IDE — but viable.

Embedded Swift shipped as a stable subset in Swift 6.0. The pitch: Swift compiled with a subset of the standard library, no ARC, no metadata, suitable for microcontrollers (ESP32, RP2040), kernel-mode code, and resource-constrained targets. The work draws on the SwiftPM toolchain’s ability to produce static binaries and on language-level work to make optional features truly optional. Adoption is early but the path is now clear: Swift can target the same range of systems Rust does, with a different ergonomic profile.

People who actually shaped Swift

Original team: Chris Lattner (project lead 2010–2017; LLVM creator; Tesla / Google / SiFive / Modular post-departure), Joe Groff (compiler and runtime; key contributor since the early years), John McCall (runtime; one of the longest-tenured engineers on the project), Doug Gregor (type system; Clang background; led much of the Swift 3 redesign), Ted Kremenek (project lead 2018–present; static analysis lineage from Clang).

Concurrency design: Ben Cohen (the structured-concurrency model and async/await proposal), Holly Borla (current concurrency lead, Swift 6 strict-concurrency push), Konrad Malawski (server-side Swift, distributed actors).

Server-side and platform reach: Saleem Abdulrasool (Windows toolchain), Tom Doron (Swift Server Workgroup founding), Tim Condon (Vapor framework). Community: Paul Hudson (Hacking with Swift; long-running tutorial blog and book series that has done as much as any single resource to bring Swift to working iOS developers), Tibor Bödecs (server-side advocacy), Hector Matos and the long roster of Swift Evolution proposers whose names recur on accepted SE-NNNN proposals. Conferences: SwiftCraft and the various try! Swift conferences are the canonical venues; Apple’s WWDC remains the single largest annual event.

Sources: swift.org/blog; github.com/apple/swift/releases; Swift Evolution proposals; Apple Xcode release notes; swift.org/getting-started. Cross-references: Xcode Versions, Mac Versions, iOS Versions, Kotlin Versions, Java Versions. Last updated April 2026.

Mungomash LLC · More data pages