Vapor 5 beta introduces async/await as the default, removes locks and storage requirements, and simplifies service dependency injection. The API remains largely familiar to Vapor 4 users, with the main changes being async calls for streaming bodies and direct dependency injection replacing extension-based service access.
Vapor 5 Beta was announced 10 years after Vapor 1.0, featuring a complete framework rewrite with async/await support, a new HTTP server built on Swift HTTP Server, streaming-first request/response bodies, and integration with Swift Configuration and HTTP Types. The beta requires Swift 6.4 and includes known issues with compression and WebSocket support.
This paper explores the design space of async/await constructs across modern programming languages, examining how languages with similar syntax differ in semantic behavior. The authors identify nine design dimensions affecting asynchronous computation lifecycles and provide formal semantics to help programmers and language designers understand straight-line asynchrony implementation choices.