Skip to content

Instantly share code, notes, and snippets.

@markmals
Last active June 9, 2026 01:37
Show Gist options
  • Select an option

  • Save markmals/a82039c84533d0102f1082cfb8228153 to your computer and use it in GitHub Desktop.

Select an option

Save markmals/a82039c84533d0102f1082cfb8228153 to your computer and use it in GitHub Desktop.
Features I would like to see from Swift and its core ecosystem

Swift Wish List

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

Language Features

  • β˜‘οΈ Variadic generics
    • β˜‘οΈ Value and type parameter packs
    • β˜‘οΈ Variadic generic types
    • β˜‘οΈ Pack iteration

Systems Programming

  • ⛔️ Memory ownership system
    • β˜‘οΈ Parameter ownership modifiers: borrowing / consuming
    • β˜‘οΈ Noncopyable structs and enums
    • β˜‘οΈ Noncopyable generics
    • β˜‘οΈ Nonescapable types
    • β˜‘οΈ Span
    • β˜‘οΈ Standard Library primitives for nonescapable types
    • ⚠️ Iterable for noncopyable / nonescapable iteration
  • β˜‘οΈ Integer generic parameters
  • β˜‘οΈ InlineArray

Concurrency

Protocols, Existentials, & Generics

Strings

Optionals

Domain Specific Languages

Metaprogramming & Reflection

  • β˜‘οΈ 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

Modules

  • β˜‘οΈ Module name selectors / fully qualified module syntax, e.g. ModuleA::getValue()

Interoperability & Platform Support

  • β˜‘οΈ 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

Ecosystem Features

  • β˜‘οΈ 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

Standard Library & Foundation

  • β˜‘οΈ 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 NotificationCenter messages

Swift Package Manager

SwiftNIO & Networking

  • β˜‘οΈ async / await support
  • ❌ QUIC and HTTP/3 support in SwiftNIO
  • πŸ“œ Networking workgroup / Swift networking vision
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment