Abstract database component, providing a shared API surface for database drivers written in Swift.
- 🤝 Database-agnostic abstraction layer
- 🔀 Designed for modern Swift concurrency
- 📚 DocC-based API Documentation
- ✅ Unit tests and code coverage
-
Swift 6.1+
-
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-database", exact: "1.0.0-beta.1"),Then add FeatherDatabase to your target dependencies:
.product(name: "FeatherDatabase", package: "feather-database"),API documentation is available at the following link. Refer to the mock objects in the Tests directory if you want to build a custom database driver implementation.
Tip
Avoid calling database.execute while in a transaction; use the transaction connection instead.
Warning
This repository is a work in progress, things can break until it reaches v1.0.0.
The following database driver implementations are available for use:
- Build:
swift build - Test:
- local:
swift test - using Docker:
swift docker-test
- local:
- Format:
make format - Check:
make check
Pull requests are welcome. Please keep changes focused and include tests for new logic. 🙏