Vapor (web framework)
Developer(s) | Tanner Nelson and others |
---|---|
Initial release | January 18, 2016[1][2] |
Stable release | 4.102.1[3]
/ July 10, 2024 |
Written in | Swift |
Operating system | macOS, Ubuntu |
Platform | SwiftNIO |
Type | Web framework |
License | MIT License |
Website | vapor |
Vapor is an open source web framework written in Swift. It can be used to create RESTful APIs, web apps, and real-time applications using WebSockets. In addition to the core framework, Vapor provides an ORM, a templating language, and packages to facilitate user authentication and authorization.[4]
Vapor's source code is hosted on GitHub and licensed under the MIT License.[5] Vapor has been a part of Swift's Server APIs working group since 2016.[6][7]
History
[edit]Vapor 0.1.0 was released as a proof of concept for Swift on the server a month after Apple open sourced Swift and began Linux platform support on December 3, 2015.[8] Vapor 1.0[9] arrived in September 2016, followed by the release of Vapor 2.0 in May 2017.[10]
The framework was rewritten for Vapor 3.0[11] to be built on Apple's non-blocking networking framework SwiftNIO. Vapor 3 was released in May 2018. Apple cited the speed with which Vapor (along with Kitura) adopted the new SwiftNIO framework on the main Swift.org server page.[12]
Vapor 3's beta period saw educational material published by Packt,[13][14][15] Paul Hudson,[16] Razeware LLC,[17] and lynda.com.[18] Vapor was recognized by Swift.org with an official Swift Forum in its inaugural group of Related Projects[19] in May 2018.
Vapor 4[20]'s Alpha 1 Release started in May 2019 and the stable version released in April 2020.[21]
Releases
[edit]Version | Release date | Swift version |
---|---|---|
1.0 | Sep 15, 2016 | ≥ 3.0 |
2.0 | May 17, 2017 | ≥ 3.1 |
3.0 | May 4, 2018 | ≥ 4.1 |
4.0 | April 9, 2020 | ≥ 5.2 |
5.0 | TBD | ≥ TBD |
Legend: | Old version, not maintained | Old version, still maintained | Current stable version | Latest preview version | Future release |
---|
Source: Vapor Docs & GitHub Releases.[22][23]
Swift version support
[edit]Vapor 4 supports the last 3 minor Swift versions. As of October 27th 2023, this includes Swift 5.7, Swift 5.8 and Swift 5.9.
This meets the standards set out by the Swift Server Workgroup,[24] of which Vapor is a member[25]
Features
[edit]Vapor supports the following features:[26]
- Async / non-blocking IO
- Authentication: basic, bearer, JWT, and password
- Cache: Redis and in-memory
- Commands / console formatting
- Content negotiation: JSON, multipart, and URL-encoded form
- Crypto: RNG, ciphers, digests, RSA
- Dependency Injection / Inversion of Control[27]
- Fluent ORM: MySQL,[28] PostgreSQL, MongoDB and SQLite
- HTTP client and server
- Leaf templating: HTML etc
- Logging
- URL routing
- Validation
- WebSocket client and server
- Queue jobs
References
[edit]- ^ "Vapor 0.1.0 Release". GitHub. 2016-01-25. Retrieved 2018-04-03.
- ^ "Server-side Swift Frameworks Comparison". Retrieved 2018-05-24.
- ^ "Vapor 4.102.1 Release". GitHub. 2023-07-10. Retrieved 2024-07-23.
- ^ "Vapor GitHub Organization". GitHub. Retrieved 2018-04-03.
- ^ "vapor/vapor LICENSE at master". GitHub. 2018-02-23. Retrieved 2018-04-03.
- ^ "Swift Server APIs". 2016-10-25. Archived from the original on 2021-05-10. Retrieved 2018-05-22.
- ^ "Swift Blog: Server APIs Work Group". 2016-10-25. Retrieved 2018-05-22.
- ^ "Swift is Open Source". 2015-12-03. Retrieved 2018-04-03.
- ^ "Vapor 1.0.0 Release". GitHub. 2016-09-15. Retrieved 2018-04-03.
- ^ "Vapor 2.0.0 Release". GitHub. 2018-05-17. Retrieved 2018-04-03.
- ^ "Vapor 3.0.0 released". 2018-05-04. Retrieved 2018-05-23.
- ^ Inc., Apple. "Swift.org". Swift.org. Retrieved 2018-10-04.
{{cite web}}
:|last=
has generic name (help) - ^ Patel, Ankur (2018-03-30). Hands-On Full-Stack Development with Swift. Packt Publishing. ISBN 978-1788625241.
- ^ Yeung, Angus (2018). Hands-On Server-Side Web Development with Swift: Build dynamic web apps by leveraging two popular Swift web frameworks: Vapor 3.0 and Kitura 2.5. Packt Publishing Ltd. ISBN 9781789345865. Retrieved 16 December 2019.
- ^ Kuepper, Ralph (2020-03-12). Hands-On Swift 5 Microservice Development. Packt Publishing. ISBN 978-1789530889.
- ^ Hudson, Paul (2018-03-01). Server-Side Swift (Vapor ed.).
- ^ Condon, Tim; et al. Server Side Swift with Vapor. Razeware LLC.
- ^ "Learning Server-Side Swift with Vapor". Archived from the original on 2021-05-09. Retrieved 2018-05-22.
- ^ "Introducing Related Projects to Swift Forums". 2018-05-10.
- ^ VAPOR (2019-05-28). "Vapor 4: Alpha 1 Releases Begin". Medium. Retrieved 2019-09-09.
- ^ "Release Vapor 4.0.0 · vapor/vapor". GitHub. Retrieved 2021-02-15.
- ^ "GitHub: vapor/vapor Releases". GitHub. Retrieved 2021-02-15.
- ^ "Vapor Docs: Support". Vapor. Retrieved 2018-05-04.
- ^ "Swift Server Workgoup".
- ^ "Swift Server Workgroup Members".
- ^ "Vapor Docs". docs.vapor.codes. Archived from the original on 2021-07-22. Retrieved 2018-05-22.
- ^ Elliot, Keith (2016-10-06). Swift 3 New Features. Packt Publishing. ISBN 978-1786462718.
- ^ Hussain, Shaista; et al. (2018-03-12). Proceedings of the 2018 6th International Conference on Bioinformatics and Computational Biology. Association for Computing Machinery. ISBN 978-1-4503-6348-8.