Vapor (web framework)
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]
Developer(s) | Tanner Nelson and others |
---|---|
Initial release | January 18, 2016[1][2] |
Stable release | 4.9.0[3]
/ June 12, 2020 |
Written in | Swift |
Operating system | macOS, Ubuntu |
Platform | SwiftNIO |
Type | Web framework |
License | MIT License |
Website | vapor |
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
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.
Releases
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 | Older version, still maintained | Current stable version | Latest preview version | Future release |
---|
Features
Vapor supports the following features:[23]
- 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[24]
- Fluent ORM: MySQL,[25] PostgreSQL, and SQLite
- HTTP Client and Server
- Leaf Templating: HTML etc
- Logging
- URL Routing
- Validation
- WebSocket client and server
- Queue Jobs
References
- "Vapor 0.1.0 Release". 2016-01-25. Retrieved 2018-04-03.
- "Server-side Swift Frameworks Comparison". Retrieved 2018-05-24.
- "Vapor 4.9.0 Release". 2020-06-12. Retrieved 2020-06-15.
- "Vapor GitHub Organization". Retrieved 2018-04-03.
- "vapor/vapor LICENSE at master". 2018-02-23. Retrieved 2018-04-03.
- "Swift Server APIs". 2016-10-25. 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". 2016-09-15. Retrieved 2018-04-03.
- "Vapor 2.0.0 Release". 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.
- 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. 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 Edition).
- Condon, Tim; et al. Server Side Swift with Vapor. Razeware LLC.
- "Learning Server-Side Swift with Vapor".
- "Introducing Related Projects to Swift Forums". 2018-05-10.
- VAPOR (2019-05-28). "Vapor 4: Alpha 1 Releases Begin". Medium. Retrieved 2019-09-09.
- "Github: vapor/vapor Releases". GitHub. Retrieved 2018-05-04.
- "Vapor Docs: Support". Vapor. Retrieved 2018-05-04.
- "Vapor Docs". docs.vapor.codes. 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.