Skip to content

About

An abstract file storage service for Feather CMS.

Resources

Stars

1 star

Watchers

2 watching

Forks

Repository files navigation

Feather Storage

Abstract storage component, providing a shared API surface for file storage drivers written in Swift.

Release: 1.0.0-rc.3

Features

  • Storage-agnostic abstraction layer
  • Designed for modern Swift concurrency
  • DocC-based API Documentation
  • Unit tests and code coverage

Requirements

Swift 6.3+ Platforms: Linux, macOS, iOS, tvOS, watchOS, visionOS

  • Swift 6.3+

  • Platforms:

    • Linux
    • macOS 15+
    • iOS 18+
    • tvOS 18+
    • watchOS 11+
    • visionOS 2+

Installation

Use Swift Package Manager; add the dependency to your Package.swift file:

.package(url: "https://github.com/feather-framework/feather-storage", exact: "1.0.0-rc.3"),

Then add FeatherStorage to your target dependencies:

.product(name: "FeatherStorage", package: "feather-storage"),

For in-memory test support, add FeatherStorageTesting:

.product(name: "FeatherStorageTesting", package: "feather-storage"),

TestStorageClient implements the storage API in memory and exposes recorded content types and multipart upload state for assertions.

Usage

DocC API documentation

API documentation is available at the following link. Use FeatherStorageTesting for an in-memory client in consuming test targets.

Warning

This repository is a work in progress, things can break until it reaches v1.0.0.

Storage drivers

The following storage driver implementations are available for use:

In-memory test support is provided by FeatherStorageTesting in this package; it is not a production storage driver.

Development

  • Build: swift build
  • Test:
    • local: swift test
    • using Docker: make docker-test
  • Format: make format
  • Check: make check

Contributing

Pull requests are welcome. Please keep changes focused and include tests for new logic.

About

An abstract file storage service for Feather CMS.

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages