Swift давно перестал быть языком только для iPhone и Mac.
В Swift 6.4 язык получил единый механизм сборки для Linux, macOS и Windows. Расширилась поддержка Android и WebAssembly, добавились возможности для серверных программ и тесная интеграция с C++, Java и Kotlin.
Главное изменение — Swift Package Manager переходит на Swift Build как стандартную систему сборки. Раньше разработчикам нужно было использовать разные механизмы для разных платформ. Теперь SwiftPM запускает один движок везде: на Linux, macOS и Windows. Это сокращает расхождения в поведении проектов между системами и упрощает разработку библиотек и приложений сразу для нескольких платформ.
Swift Build вырос из сборочного движка Xcode. Apple открыла исходный код в феврале 2025 года и добавила поддержку Linux и Windows. В Swift 6.3 новый механизм появился в предварительном режиме, разработчики проверяли совместимость на тысячах открытых пакетов. Swift 6.4 завершил переход и сделал Swift Build стандартом.
Swift Package Manager научился создавать SBOM — перечень компонентов и зависимостей проекта в форматах SPDX и CycloneDX. Команды видят состав приложения, отслеживают версии библиотек и быстрее проверяют продукты после обнаружения новых уязвимостей.
Для серверных программ заметным изменением стал выпуск Subprocess 1.0. Библиотека дает единый кроссплатформенный API для запуска внешних программ, передачи аргументов, получения вывода и работы с потоками. Реализация построена вокруг модели конкурентности Swift и работает на всех поддерживаемых операционных системах.
Swift расширил взаимодействие с другими языками. Тип Span теперь совместим с std::span из C++20 — данные можно передавать между Swift и C++ без ручного преобразования. Swift/Java получил поддержку асинхронных функций, обработки ошибок, обратных вызовов, Java record и Runnable. Это позволяет вызывать Swift-код из Java и Kotlin, что критично для Android.
Поддержка Android углубилась. Новый Swift SDK использует LTS-версию Android NDK 30, а Swift Build собирает Android-проекты через Swift Package Manager без дополнительных скриптов. Разработчики используют одну инфраструктуру SwiftPM для десктопа и Android вместо отдельных цепочек сборки.
Swift 6.4 усилил и веб-разработку. JavaScriptKit и WebAssembly ускорили передачу данных между Swift и JavaScript до 40 раз. WebAssembly SDK теперь доступен на Swift.org, поэтому для компиляции Swift под браузер достаточно установить соответствующий SDK.
Расширение Swift для Visual Studio Code появилось в Open VSX Registry. Поддержка языка теперь доступна не только в VS Code, но и в Cursor, Kiro и Antigravity. Интеграция со Swiftly упрощает выбор разных версий компилятора для отдельных проектов.
Переработана отладочная информация. LLDB находит Swift-модули через точное отслеживание зависимостей, а не поиск по имени. Бинарные модули Swift больше не встраивают в отладочные данные, поэтому размеры отладочных сборок на Linux и Windows, а также пакетов dSYM на Apple-платформах, заметно уменьшились.
Язык получил несколько изменений. Swift 6.4 разрешает асинхронные вызовы в defer, защищает операции очистки от отмены внешней задачи, позволяет управлять предупреждениями компилятора через @diagnose и вводит селектор :: для разрешения конфликтов имен из разных модулей. Новые UniqueArray, UniqueBox, Ref, MutableRef и Iterable сокращают лишнее копирование и выделение памяти без отказа от механизмов безопасной работы с памятью.
Вместе изменения показывают развитие Swift за пределами экосистемы Apple. Swift 6.4 сближает инструменты для macOS, Linux, Windows, Android и WebAssembly, одновременно расширяя возможности языка для серверного ПО, системного программирования и кроссплатформенных проектов.
