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
Developer(s)Tanner Nelson and others
Initial releaseJanuary 18, 2016; 8 years ago (2016-01-18)[1][2]
Stable release
4.102.1[3] / July 10, 2024; 2 months ago (2024-07-10)
Written inSwift
Operating systemmacOS, Ubuntu
PlatformSwiftNIO
TypeWeb framework
LicenseMIT License
Websitevapor.codes

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
Old version, no longer maintained: 1.0 Sep 15, 2016 ≥ 3.0
Old version, no longer maintained: 2.0 May 17, 2017 ≥ 3.1
Old version, no longer maintained: 3.0 May 4, 2018 ≥ 4.1
Current stable version: 4.0 April 9, 2020 ≥ 5.2
Future release: 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
  1. ^ "Vapor 0.1.0 Release". GitHub. 2016-01-25. Retrieved 2018-04-03.
  2. ^ "Server-side Swift Frameworks Comparison". Retrieved 2018-05-24.
  3. ^ "Vapor 4.102.1 Release". GitHub. 2023-07-10. Retrieved 2024-07-23.
  4. ^ "Vapor GitHub Organization". GitHub. Retrieved 2018-04-03.
  5. ^ "vapor/vapor LICENSE at master". GitHub. 2018-02-23. Retrieved 2018-04-03.
  6. ^ "Swift Server APIs". 2016-10-25. Archived from the original on 2021-05-10. Retrieved 2018-05-22.
  7. ^ "Swift Blog: Server APIs Work Group". 2016-10-25. Retrieved 2018-05-22.
  8. ^ "Swift is Open Source". 2015-12-03. Retrieved 2018-04-03.
  9. ^ "Vapor 1.0.0 Release". GitHub. 2016-09-15. Retrieved 2018-04-03.
  10. ^ "Vapor 2.0.0 Release". GitHub. 2018-05-17. Retrieved 2018-04-03.
  11. ^ "Vapor 3.0.0 released". 2018-05-04. Retrieved 2018-05-23.
  12. ^ Inc., Apple. "Swift.org". Swift.org. Retrieved 2018-10-04. {{cite web}}: |last= has generic name (help)
  13. ^ Patel, Ankur (2018-03-30). Hands-On Full-Stack Development with Swift. Packt Publishing. ISBN 978-1788625241.
  14. ^ 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.
  15. ^ Kuepper, Ralph (2020-03-12). Hands-On Swift 5 Microservice Development. Packt Publishing. ISBN 978-1789530889.
  16. ^ Hudson, Paul (2018-03-01). Server-Side Swift (Vapor ed.).
  17. ^ Condon, Tim; et al. Server Side Swift with Vapor. Razeware LLC.
  18. ^ "Learning Server-Side Swift with Vapor". Archived from the original on 2021-05-09. Retrieved 2018-05-22.
  19. ^ "Introducing Related Projects to Swift Forums". 2018-05-10.
  20. ^ VAPOR (2019-05-28). "Vapor 4: Alpha 1 Releases Begin". Medium. Retrieved 2019-09-09.
  21. ^ "Release Vapor 4.0.0 · vapor/vapor". GitHub. Retrieved 2021-02-15.
  22. ^ "GitHub: vapor/vapor Releases". GitHub. Retrieved 2021-02-15.
  23. ^ "Vapor Docs: Support". Vapor. Retrieved 2018-05-04.
  24. ^ "Swift Server Workgoup".
  25. ^ "Swift Server Workgroup Members".
  26. ^ "Vapor Docs". docs.vapor.codes. Archived from the original on 2021-07-22. Retrieved 2018-05-22.
  27. ^ Elliot, Keith (2016-10-06). Swift 3 New Features. Packt Publishing. ISBN 978-1786462718.
  28. ^ 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.