Generate legacy sync interfaces for your async/await code, and migrate to Swift 6 Structured Concurrency with both APIs available.
Why it exists
Swift’s async/await adoption is all-or-nothing, and you can’t easily call async functions from sync contexts. AwaitlessKit makes the migration incremental. It bypasses Swift’s concurrency safety mechanisms, so it is a migration tool and not a permanent solution.
What it does
- @Awaitless family
- async to sync, Combine publisher or completion handler.
- @Awaitable family
- Publisher and completion-handler APIs to async/await.
- PromiseKit integration
- Conversion in both directions, as a separate product.
- @IsolatedSafe
- Thread-safe wrappers for nonisolated(unsafe) properties.
Use it
class DataService {
@Awaitless
func fetchUser(id: String) async throws -> User {
// Your async implementation
}
}