File system-based driver implementation for the abstract Feather Storage Swift API package.
- File system-based (NIO) driver for Feather Storage
- 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+
Add the dependency to your Package.swift:
.package(url: "https://github.com/feather-framework/feather-storage-fs", exact: "1.0.0-rc.3"),
Then add FeatherStorageFS to your target dependencies:
.product(name: "FeatherStorageFS", package: "feather-storage-fs"),
API documentation is available at the link below:
Here is a brief example:
import NIOCore import FeatherStorage import FeatherStorageFS let path = "/path/to/storage" let storage = StorageClientFS(rootPath: path) let text = "Hello, World" var buffer = ByteBufferAllocator().buffer(capacity: text.utf8.count) buffer.writeString(text) try await storage.upload( key: "docs/hello.txt", sequence: StorageSequence( asyncSequence: ByteBufferSequence(buffer: buffer), length: UInt64(buffer.readableBytes) ) ) try await storage.exists(key: "docs/hello.txt") try await storage.size(key: "docs/hello.txt") let result = try await storage.download(key: "docs/hello.txt", range: nil) let buffer = try await result.collect(upTo: .max) let value = buffer.getString(at: 0, length: buffer.readableBytes) print(value)
Warning
This repository is a work in progress, things can break until it reaches v1.0.0.
The following storage client implementations are also available for use:
- 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. 🙏