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