介绍 Standard Library Preview Package

Apple 最近新开源了一个项目,命名为 Standard Library Preview Package,主要是用来加强 Swift Evolution 进程的。该 Preview Package 将包含已被纳入 Swift Standard Library 计划但还没被集成到 Swift 正式版中的功能。这可以使得我们在真实环境中使用这些新特性,并给予及时的反馈,同时也降低了给 Standard Library 贡献代码的技术门槛。

Preview Package 最近接收了 SE-0270 提议,该提议实现了获取一个集合的子集,比如 subranges(where:)moveSubranges(_:to:)

使用 Preview Package

想在 Swift Package Manager 项目中使用 Standard Library Preview Package,只需要编辑 Package.swift 文件即可。

let package = Package(
    name: "MyPackage",
    dependencies: [
       .package(url: "https://github.com/apple/swift-standard-library-preview.git", from: "0.0.1"),
    ],
    targets: [
        .target(
            name: "MyTarget",
            dependencies: [.product(name: "StandardLibraryPreview", package: "swift-standard-library-preview")]),
    ]
)

继续阅读“介绍 Standard Library Preview Package”

介绍 Swift Crypto 库

最近 Apple 官方推出了一个新的 SwiftSwift Crypto 。该库将 Apple 平台的 CryptoKit 库拓展到了其它平台(比如:Linux),这样其它平台上也将可以使用加密相关的 API 了。

使用方法很简单,只需要导入对应库即可:

import Crypto

示例代码

func encrypt(input: [UInt8]) throws -> Data {
    // Don't forget to save your key somewhere!
    let key = SymmetricKey(size: .bits256)
    let sealedBox = try AES.GCM.seal(input, using: key)
    return sealedBox.combined!
}

跨平台

Apple 平台上,Swift Crypto 直接使用已有的 CryptoKit 库,但其它平台上将基于 BoringSSL 库重新实现,最终将在所有平台上提供一套统一且方便使用的 API

继续阅读“介绍 Swift Crypto 库”