Scipio 缓存存储协议摘要

这是一个提供 CacheStorage 协议的小型库。

有关详细信息,请参阅 Scipio 文档。

动机

Scipio 使用 swift-package-manager 作为依赖项,但它不遵循 semver。 因此,维护每个缓存存储插件很麻烦。 当 Scipio 版本更新时,必须更新每个插件。

我将向您展示包的结构。

之前

classDiagram
    object SwiftPM

    object ScipioKit

    object ScipioS3Storage

    object executor

    SwiftPM <|-- ScipioKit
    ScipioKit <|-- ScipioS3Storage
    ScipioKit <|-- executor
    ScipioS3Storage <|.. executor
加载中

在这种结构中,SwiftPM 无法解析 swift-package-manager 的版本,因此所有包都必须指定相同的版本。 维护这些包毫无用处。 此外,很难制作其他存储插件。

之后

classDiagram
    object SwiftPM

    object ScipioCacheStorage

    object ScipioKit

    object ScipioS3Storage
    object ScipioAzureStorage
    object ScipioFileServerStorage

    object executor

    SwiftPM <|-- ScipioKit
    ScipioCacheStorage <|-- ScipioKit
    ScipioCacheStorage <|-- ScipioS3Storage
    ScipioCacheStorage <|-- ScipioAzureStorage
    ScipioCacheStorage <|-- ScipioFileServerStorage
    ScipioKit <|-- executor
    ScipioS3Storage <|.. executor
    ScipioAzureStorage <|.. executor
    ScipioFileServerStorage <|.. executor
加载中

ScipioCacheStorage 帮助我们维护版本控制。 它可以减少版本管理的精力。

除了 ScipioKit 之外的包不依赖于 SwiftPM,因此它可以遵循标准 semver。

如果你想制作其他存储插件,你可以很容易地制作它。 你只需要实现 CacheStorage 协议。