A lightweight S3 client and signer for Swift, designed to work seamlessly with Vapor 4.
S3Kit is a Swift library that provides a lightweight client and signer for interacting with Amazon S3 and S3-compatible storage services. It simplifies common storage operations like uploading, downloading, and managing objects and buckets, offering a clean, type-safe API. The library is designed to work seamlessly with Vapor 4, making it ideal for server-side Swift applications that need reliable cloud storage integration.
Swift developers building server-side applications with Vapor 4 who need to integrate with Amazon S3 or S3-compatible storage services like MinIO.
Developers choose S3Kit for its lightweight, focused design that removes unnecessary dependencies while providing a clean, protocol-driven API. It offers built-in support for AWS signature versions, error parsing, and compatibility with both Amazon S3 and self-hosted MinIO endpoints.
S3 Client written in Swift
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports both SigV2 and SigV4 for secure authentication, ensuring compatibility with Amazon S3 and custom endpoints like MinIO, as highlighted in the key features.
Provides an S3Client protocol for easy mocking and testing, enhancing code testability in Swift projects, as mentioned in the philosophy.
Works with Amazon S3 and self-hosted MinIO endpoints, allowing for both cloud and local storage solutions, demonstrated in the quick start with custom endpoint configuration.
Parses S3 errors into a simple internal ErrorMessage model with helper methods like s3Error(), simplifying error management, as noted in the error handling section.
Primarily designed for Vapor 4 integration, making it less suitable for other Swift frameworks or client-side applications without additional adaptation.
Focuses on basic S3 operations; lacks support for advanced features like multipart uploads or bucket policies, which are omitted from the public surface and key features.
Requires Swift 5.9+ and macOS 12+, limiting compatibility with older systems or projects using earlier Swift versions, as specified in the requirements.