Abstract storage component, providing a shared API surface for file storage drivers written in Swift.
- Storage-agnostic abstraction layer
- Designed for modern Swift concurrency
- DocC-based API Documentation
- Unit tests and code coverage
-
Swift 6.3+
-
Platforms:
- Linux
- macOS 15+
- iOS 18+
- tvOS 18+
- watchOS 11+
- visionOS 2+
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.
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.
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.
- Build:
swift build - Test:
- local:
swift test - using Docker:
make docker-test
- local:
- Format:
make format - Check:
make check
Pull requests are welcome. Please keep changes focused and include tests for new logic.