Swift 6.4 chính thức ra mắt: Build thống nhất, Subprocess 1.0 và WebAssembly nhanh gấp 40 lần
Swift 6.4 vừa được phát hành với hàng loạt cải tiến quan trọng: Swift Build trở thành mặc định trong Swift Package Manager, thư viện Subprocess đạt phiên bản 1.0, khả năng tương tác với C++20 và Java được mở rộng, cùng hiệu năng WebAssembly tăng tới 40 lần. Bản phát hành này cũng củng cố Embedded Swift cho vi điều khiển và bổ sung nhiều API an toàn bộ nhớ mới.

Swift 6.4 đã chính thức được phát hành, đánh dấu một bước tiến quan trọng trong nỗ lực đưa ngôn ngữ này phủ sóng toàn bộ ngăn xếp công nghệ — từ ứng dụng di động, máy chủ, cho tới lập trình hệ thống, thiết bị nhúng và cả trình duyệt. Bản cập nhật lần này tập trung vào việc giúp lập trình viên viết code hàng ngày trở nên đơn giản, rõ ràng và hiệu quả hơn.
Swift 6.4 ra mắt với nhiều cải tiến quan trọng
Build thống nhất trên mọi nền tảng
Một trong những thay đổi đáng chú ý nhất của Swift 6.4 là Swift Build đã trở thành hệ thống build mặc định trong Swift Package Manager (SwiftPM). Điều này đồng nghĩa với việc dự án của bạn sẽ được build theo cùng một cách trên Linux, macOS và Windows, giúp giảm thiểu sự khác biệt về môi trường phát triển.
Bên cạnh đó, SwiftPM còn hỗ trợ tạo Software Bill of Materials (SBOM) theo định dạng SPDX hoặc CycloneDX, một tính năng ngày càng được các doanh nghiệp và tổ chức yêu cầu để đảm bảo tính minh bạch trong chuỗi cung ứng phần mềm.
Subprocess 1.0 — chạy tiến trình con an toàn và đa nền tảng
Thư viện Subprocess, ra mắt lần đầu ở phiên bản 0.1 vào năm 2025, nay đã đạt phiên bản 1.0. Đây là gói đa nền tảng cho phép chạy và tương tác với các tiến trình con, được xây dựng hoàn toàn dựa trên mô hình Swift concurrency.
Ví dụ, đoạn mã sau minh họa cách chạy một tiến trình và thu lại kết quả đầu ra:
let result = try await Subprocess.run(
.name("ls"),
arguments: ["-la"],
output: .string(limit: 4096)
)
print(result.standardOutput)
Với các lập trình viên xây dựng công cụ dòng lệnh hay hệ thống xử lý luồng dữ liệu, đây là một bổ sung đáng giá giúp việc gọi tiến trình bên ngoài trở nên gọn gàng và an toàn hơn rất nhiều.
Tương tác sâu hơn với C++, Java và trình duyệt
Swift 6.4 mở rộng đáng kể khả năng tương tác với các hệ sinh thái khác:
- C++20: Kiểu Span của Swift nay có thể cầu nối trực tiếp với std::span của C++20, cho phép truyền qua lại giữa hai ngôn ngữ mà không cần viết code chuyển đổi thủ công.
- Java: Dự án Swift/Java interop mở rộng hỗ trợ cho các hàm bất đồng bộ và hàm ném lỗi, bổ sung ánh xạ Runnable tự động cho closure, nhập tham số biến đổi và hỗ trợ kiểu record của Java.
- C: Kết hợp
@cvới@implementationcho phép dùng hàm Swift để cung cấp phần triển khai cho header C mà không cần khai báo C riêng biệt.
Về phía WebAssembly, JavaScriptKit đạt hiệu năng cầu nối an toàn nhanh hơn tới 40 lần so với cơ chế bridging động trước đây. Bộ Wasm SDK nay có sẵn ngay trên trang Install Swift của Swift.org, giúp việc biên dịch Swift cho trình duyệt không còn cần thiết lập thêm phức tạp. Song song đó, Swift trên Android cũng được nâng cấp với NDK 30 LTS, và Swift Build hỗ trợ Android trực tiếp trong SwiftPM.
Embedded Swift mạnh mẽ hơn cho vi điều khiển
Với các nhà phát triển nhúng, Embedded Swift nay hỗ trợ kiểu tồn tại (existential types) như any Protocol, cho phép biểu diễn tự nhiên các tập hợp không đồng nhất, đồng thời cải thiện khả năng ném và bắt lỗi Error. Bản phát hành còn bổ sung cảnh báo EmbeddedRestrictions có thể bật cho toàn bộ target:
// Package.swift — bật cảnh báo EmbeddedRestrictions cho target
.target(
name: "FirmwareCore",
swiftSettings: [
.treatWarning("EmbeddedRestrictions", as: .warning)
]
)
Đây là bước tiến đáng kể cho những ai đang phát triển firmware cho vi điều khiển bằng Swift, vốn trước đây bị giới hạn bởi nhiều ràng buộc khắt khe.
Hiệu năng cao hơn mà vẫn an toàn bộ nhớ
Swift 6.4 tiếp tục mở rộng công việc trên Span, kiểu non-copyable và InlineArray để giúp tránh việc sao chép dữ liệu không cần thiết mà vẫn đảm bảo an toàn bộ nhớ:
- UniqueBox cung cấp con trỏ thông minh sở hữu duy nhất một giá trị trên heap, kể cả giá trị non-copyable, mà không cần đếm tham chiếu.
- UniqueArray lưu trữ phần tử non-copyable mà không cần cấp phát copy-on-write như khi dùng
Array. - Giao thức Iterable cho phép lặp qua phần tử và mượn chúng thay vì sao chép từng giá trị.
- withTemporaryAllocation cung cấp bộ đệm tạm thời được tự động khởi tạo và dọn dẹp.
- API nạp dữ liệu an toàn mới cho phép RawSpan đọc và ghi byte một cách an toàn, thay thế các hàm vốn bị đánh dấu là không an toàn.
Song song đó, các API thư viện lõi cũng được cải thiện, chẳng hạn ProgressManager hỗ trợ async/await và kiểu @Observable có thông báo thay đổi chi tiết, liên tục.
Gỡ lỗi tốt hơn và hỗ trợ IDE rộng khắp
Swift 6.4 hoàn tất quá trình cải tổ kéo dài nhiều phiên bản về cách trình biên dịch theo dõi các module Swift trong thông tin gỡ lỗi. LLDB nay nhập module thông qua theo dõi phụ thuộc chính xác thay vì tra cứu theo tên mơ hồ. Nhờ đó, bản build debug trên Linux và Windows, cùng các gói dSYM trên Darwin, giảm kích thước đáng kể do không còn nhúng module Swift dạng nhị phân.
Về phía IDE, tiện ích mở rộng Swift cho VS Code nay đã có mặt trên Open VSX Registry, nhờ đó hoạt động không chỉ trong VS Code mà còn cả Cursor, Antigravity, Kiro và nhiều công cụ phát triển khác. Tiện ích này cũng tích hợp với Swiftly, giúp chọn và sử dụng các phiên bản toolchain Swift khác nhau cho dự án trở nên dễ dàng hơn.
Swift 6.4 nâng cao trải nghiệm phát triển đa nền tảng
Điều gì tiếp theo?
Swift 6.4 là thành quả đóng góp của đông đảo cộng đồng Swift thông qua mã nguồn, các đề xuất tiến hóa ngôn ngữ, thảo luận trên diễn đàn và phản hồi thực tế. Bạn có thể trải nghiệm ngay bằng cách làm theo hướng dẫn trên trang Install Swift, hoặc tải toolchain 6.4 mới thông qua Swiftly.
Đối với các lập trình viên Việt Nam đang theo đuổi phát triển ứng dụng iOS/macOS hoặc tìm kiếm một ngôn ngữ hiện đại cho backend và hệ thống nhúng, Swift 6.4 là một bản cập nhật đáng để cân nhắc nhờ khả năng build thống nhất đa nền tảng và hệ sinh thái ngày càng mở rộng.


