Swift 核心库
Swift 核心库项目提供比 Swift 标准库更高级的功能。这些库为开发者提供强大的工具,可在 Swift 支持的所有平台上依赖使用。核心库的目标是提供以下关键领域中稳定且实用的特性:
- 常用类型,包括数据、URL、字符集和专用集合
- 单元测试
- 网络基础功能
- 任务调度与执行,包括线程、队列和通知
- 数据持久化,包括属性列表、归档、JSON 解析和 XML 解析
- 日期、时间和日历计算的支持
- 操作系统特定行为的抽象
- 文件系统交互
- 国际化,包括日期和数字格式化及语言特定资源
- 用户偏好设置
项目状态
这些库是我们持续扩展 Swift 跨平台能力的工作的一部分。我们选择将它们作为开源项目发布,以便与社区共同开发和完善。
如果要从零开始编写提供所有这些功能的代码,将是一项庞大的工程。因此,我们决定通过复用现有优秀库的 API 和尽可能多的实现来启动该项目。具体来说,我们将复用以下三个现有库的 API 和实现:Foundation
、libdispatch
和 XCTest
。
Foundation
Foundation 框架定义了几乎所有应用程序所需的基础功能层。它提供了基本的类,并引入了若干概念,定义了语言或运行时未提供的功能。它的设计目标包括:
- 提供一小组基本的实用类。
- 通过引入一致的约定,简化软件开发。
- 支持国际化和本地化,使软件能够服务于全球用户。
- 提供一定程度的操作系统独立性,以增强可移植性。
关于 Foundation 框架的更多信息,请参考 Apple 的文档。 Swift.org 版本的 Foundation 使用与 Apple 实现相同的底层库(例如 ICU 和 CoreFoundation),但它已完全独立于 Objective-C 运行时构建。 因此,它是对相同 API 的一次重要重新实现,采用纯 Swift 代码并构建在这些共同的底层库之上。 关于这项工作的更多信息,请访问我们的 GitHub 项目页面。
libdispatch
Grand Central Dispatch(GCD 或 libdispatch)为多核硬件上的并发代码执行提供了全面支持。
libdispatch 目前在所有 Darwin 平台上可用。这个项目的目标是使 libdispatch 的现代版本能够在所有其他 Swift 平台上使用。为此,我们将尽可能实现 API 的可移植子集,使用现有的开源 C 实现。
关于 Linux 上 libdispatch 的更多信息,请访问我们的 GitHub 项目页面。
XCTest
XCTest 库旨在为 Swift 提供一个通用的单元测试框架,用于 Swift 包和应用的测试编写。
此版本的 XCTest 使用与 Xcode 中熟悉的 XCTest 相同的 API。我们的目标是使您的项目测试能够在所有 Swift 平台上运行,而无需重写测试代码。
关于 Linux 上的 XCTest 的更多信息,请访问我们的 GitHub 项目页面。
正如前述所言,该项目仍处于早期阶段。我们期待与社区携手,共同打造一套强大的库,使 Swift 能够在各个平台上开发出优秀的软件。