Vapor is a web framework for Swift. It provides a beautifully expressive and easy to use foundation for your next website, API, or cloud project.
Take a look at some of the awesome stuff created with Vapor.
Join the welcoming community of fellow Vapor developers on Discord.
If you find a bug, please create an issue.
If you find a security vulnerability, please contact email@example.com as soon as possible.
💙 Code of Conduct
Our goal is to create a safe and empowering environment for anyone who decides to use or contribute to Vapor. Please help us make the community a better place by abiding to this Code of Conduct during your interactions surrounding this project.
The awesome Vapor community is always adding new tutorials and articles out there, Vapor University is a great place to get started!
Support us with a monthly donation and help us continue our activities. [Become a backer]
- 🥇 Become a Gold sponsor
- 🥈 Become a Silver sponsor
- 🥉 Become a Bronze sponsor
- 👥 Contribute on Open Collective
Help us keep the lights on
4.0.0-alpha.1.5 - Jun 25, 2019
- Fixes a channel handler assertion when using WebSocket server (#2010, #2009)
4.0.0-alpha.1.4 - Jun 22, 2019
- Adds a new overload to
services.singletonthat accepts a shutdown closure for cleanup (#2007)
4.0.0-alpha.1.3 - Jun 19, 2019
Clientcan now modify
beforeSendclosure (.POST can add data)
RoutesBuildernow has a delete method
4.0.0-alpha.1.2 - Jun 11, 2019
AsyncKitis now included and exported by default.
- New application lifecycle hooks added to
- Session authentication middleware now short-circuits if a user has already been authenticated
DirectoryConfigurationnow uses Custom Working Directory set in the Edit Scheme menu in Xcode
- Fixed an an assertion failure when attempting to connect via WebSocket to an unknown route (#1997, #2000)
4.0.0-alpha.1.1 - Jun 6, 2019
- Updated minimum Swift version to 5.1
- Temporarily disabled FoundationClient due to SR-10848