Features I would like to see from Swift and its core ecosystem, to make it a robust and ergonomic language for all use cases.
- β = Unimplemented / no accepted design
- π = Manifesto / vision
- βΎοΈ = Pitch / discussion
- π = Proposal
- βοΈ = Partially implemented / preview / gated / awaiting fuller implementation
β οΈ = In active review- β = Accepted / implemented, but not yet available in Swift 6.3.2
- βοΈ = Available in Swift 6.3.2, the current stable Swift toolchain
- βοΈ Variadic generics
- βοΈ Value and type parameter packs
- βοΈ Variadic generic types
- βοΈ Pack iteration
- βοΈ Memory ownership system
- βοΈ Parameter ownership modifiers:
borrowing/consuming - βοΈ Noncopyable structs and enums
- βοΈ Noncopyable generics
- βοΈ Nonescapable types
- βοΈ
Span - βοΈ Standard Library primitives for nonescapable types
β οΈ Iterablefor noncopyable / nonescapable iteration
- βοΈ Parameter ownership modifiers:
- βοΈ Integer generic parameters
- βοΈ
InlineArray
- βοΈ
async/await - βοΈ
async letstructured concurrency bindings - βοΈ Actors
- βοΈ Global actors
- βοΈ Distributed actors
- βοΈ
asyncprogram entry points - βοΈ Concurrency in top-level code
- βοΈ
AsyncSequence- βοΈ
AsyncStream
- βοΈ
- βοΈ Effectful properties (
asyncandthrows) - βοΈ Strict concurrency checking / data-race safety in Swift 6 language mode
- βοΈ Approachable concurrency
- βοΈ Default main actor isolation
- βοΈ Async functions inherit caller isolation by default
- βοΈ Explicit
@concurrentopt-out
- βοΈ Existentials for protocols with
Selfor associated type constraints - βοΈ Existential types using
any - βοΈ Opaque types using
some - βοΈ Lightweight same-type requirements for primary associated types
- βοΈ Primary Associated Types in the Standard Library
- βοΈ Primary associated type syntax in structural positions:
- βοΈ Existential types, e.g.
func test(_: any Collection<String>) - βοΈ Opaque types, e.g.
func evenValues(in: some Collection<Int>) -> some Collection<Int> - βοΈ Implicitly opened existentials
- βοΈ Existential types, e.g.
- βοΈ Regex Type
- βοΈ Regex builder DSL
- βοΈ Regex syntax
- βοΈ Regex literals
- βοΈ Result builders
- βοΈ Implicit memberwise initializer
- βοΈ Result builder
letdeclarations
- βοΈ Property wrappers
- βοΈ First-class macro system
- βοΈ Expression macros
- βοΈ Attached macros
- βοΈ Freestanding declaration macros
- βοΈ Extension macros
- βοΈ SwiftSyntax-based macro plugins
- β Pattern-matching macros
- βΎοΈ A way to define default protocol implementations as a macro
- β Stable helper attributes for macro-defined attributes
- βοΈ Module name selectors / fully qualified module syntax, e.g.
ModuleA::getValue()
- βοΈ C++ interoperability
- βοΈ Import C++ types and APIs into Swift
- βοΈ Use Swift from C++ in supported configurations
- βοΈ C interoperability improvements
- βοΈ
@c - βοΈ
@implementation
- βοΈ
- βοΈ Upstream WebAssembly support
- βοΈ JavaScript interoperability
- βοΈ Java interoperability
- βοΈ Official Swift SDK for Android
- βοΈ Swift Testing, an official Swift-native testing library
- βοΈ Included in official Swift toolchains
- βοΈ Integrated with Swift Package Manager
- βοΈ Exit testing
- βοΈ Attachments
- βοΈ Warning issues
- βοΈ Test cancellation
- βοΈ Image attachments
- βοΈ
swiftly, an official Swift toolchain manager - βοΈ Official HTML documentation generation tool
- βοΈ DocC
- βοΈ Static HTML output
- βοΈ Markdown and code-annotation improvements
- βοΈ
Subprocess, a cross-platform process-spawning library - βοΈ Swift Build
- βοΈ Open source build engine
- βοΈ SwiftPM integration preview
- βοΈ Clock, Instant, and Duration time types for the Standard Library
- βοΈ Open source Foundation implementation / Foundation reimplementation
- βοΈ Replace Foundation with modern APIs, split into individually importable submodules
- βοΈ Foundation Essentials
- βοΈ Foundation Internationalization
- βοΈ Typed
NotificationCentermessages
- βοΈ Package editor commands
- βοΈ Package traits
- βοΈ Extensible build tools
- βοΈ Additional package plugin APIs
- βοΈ Package Manager command plugins for
swift package - βοΈ
swift package show-traits - βοΈ Swift Build integration
- βοΈ
async/awaitsupport - β QUIC and HTTP/3 support in SwiftNIO
- π Networking workgroup / Swift networking vision