Vapor (web framework)

Last updated
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;53 days ago (2024-07-10)
Written in Swift
Operating system macOS, Ubuntu
Platform SwiftNIO
Type Web framework
License MIT License
Website vapor.codes

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]

Contents

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 and the stable version released in April 2020. [21]

Releases

VersionRelease dateSwift version
Old version, no longer maintained: 1.0Sep 15, 2016≥ 3.0
Old version, no longer maintained: 2.0May 17, 2017≥ 3.1
Old version, no longer maintained: 3.0May 4, 2018≥ 4.1
Current stable version:4.0April 9, 2020≥ 5.2
Future release: 5.0TBD≥ TBD
Legend:Old version, not maintainedOlder version, still maintainedCurrent stable versionLatest preview versionFuture release

Source: Vapor Docs & GitHub Releases. [22] [23]

Swift version support

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

Vapor supports the following features: [26]

Related Research Articles

Hibernate ORM is an object–relational mapping tool for the Java programming language. It provides a framework for mapping an object-oriented domain model to a relational database. Hibernate handles object–relational impedance mismatch problems by replacing direct, persistent database accesses with high-level object handling functions.

<span class="mw-page-title-main">Django (web framework)</span> Python web framework

Django is a free and open-source, Python-based web framework that runs on a web server. It follows the model–template–views (MTV) architectural pattern. It is maintained by the Django Software Foundation (DSF), an independent organization established in the US as a 501(c)(3) non-profit.

Laminas Project is an open source, object-oriented web application framework implemented in PHP 7 and licensed under the New BSD License. The framework is basically a collection of professional PHP-based packages. The framework uses various packages by the use of Composer as part of its package dependency managers; some of them are PHPUnit for testing all packages, Travis CI for continuous Integration Services. Laminas provides to users a support of the model–view–controller (MVC) in combination with Front Controller solution. MVC implementation in Laminas has five main areas. The router and dispatcher functions to decide which controller to run based on data from URL, and controller functions in combination with the model and view to develop and create the final web page.

Spacewalk is open-source systems management software for system provisioning, patching and configuration licensed under the GNU GPLv2.

Web2py is an open-source web application framework written in the Python programming language. Web2py allows web developers to program dynamic web content using Python. Web2py is designed to help reduce tedious web development tasks, such as developing web forms from scratch, although a web developer may build a form from scratch if required.

<span class="mw-page-title-main">Vaadin</span> Web development platform written in Java

Vaadin is an open-source web application development platform for Java. Vaadin includes a set of Web Components, a Java web framework, and a set of tools that enable developers to implement modern web graphical user interfaces (GUI) using the Java programming language only, TypeScript only, or a combination of both.

<span class="mw-page-title-main">Play Framework</span> Open-source web framework written in Scala

Play Framework is an open-source web application framework which follows the model–view–controller (MVC) architectural pattern. It is written in Scala and usable from other programming languages that are compiled to JVM bytecode, e.g. Java. It aims to optimize developer productivity by using convention over configuration, hot code reloading and display of errors in the browser.

<span class="mw-page-title-main">FuelPHP</span> Open-source web application framework

FuelPHP is an open-source web application framework written in PHP which implements the HMVC pattern.

<span class="mw-page-title-main">Socket.IO</span> Library for realtime web applications

Socket.IO is an event-driven library for real-time web applications. It enables real-time, bi-directional communication between web clients and servers. It consists of two components: a client, and a server. Both components have a nearly identical API.

<span class="mw-page-title-main">Phalcon (framework)</span>

Phalcon is a PHP web framework based on the model–view–controller (MVC) pattern. Originally released in 2012, it is an open-source framework licensed under the terms of the BSD License.

Swift is a high-level general-purpose, multi-paradigm, compiled programming language created by Chris Lattner in 2010 for Apple Inc. and maintained by the open-source community. Swift compiles to machine code and uses an LLVM-based compiler. Swift was first released in June 2014 and the Swift toolchain has shipped in Xcode since version 6, released in 2014.

<span class="mw-page-title-main">.NET</span> Software platform developed by Microsoft

The .NET platform is a free and open-source, managed computer software framework for Windows, Linux, and macOS operating systems. The project is mainly developed by Microsoft employees by way of the .NET Foundation and is released under an MIT License.

<span class="mw-page-title-main">Kitura</span>

Kitura is a free and open-source web framework written in Swift, developed by IBM and licensed under Apache License 2.0. It’s an HTTP server and web framework for writing Swift server applications.

Angular is a TypeScript-based free and open-source single-page web application framework. It is developed by Google and by a community of individuals and corporations. Angular is a complete rewrite from the same team that built AngularJS. The Angular ecosystem consists of a diverse group of over 1.7 million developers, library authors, and content creators. According to the Stack Overflow Developer Survey, Angular is one of the most commonly used web frameworks.

<span class="mw-page-title-main">Enonic XP</span>

Enonic XP is a free and open-source web application platform and content management system (CMS) in one based on Java and Elasticsearch. Developed by the Norwegian software company Enonic, the microservice web platform can be used to build progressive web applications, Next.js websites, or web-based APIs. Enonic XP uses an application framework for coding server logic with JavaScript, and has no need for SQL as it ships with an integrated content repository. The CMS is fully decoupled, meaning developers can create traditional websites and landing pages, or use XP in headless mode, that is without the presentation layer, for loading editorial content onto any device or client. Enonic is used by major organizations in Norway, including the national postal service Norway Post, the insurance company Gjensidige, the national lottery Norsk Tipping, the Norwegian Labour and Welfare Administration, and all the top football clubs in the national football league for men, Eliteserien.

Microsoft Docs was a library of technical documentation for end users, developers, and IT professionals who work with Microsoft products. The Microsoft Docs website provided technical specifications, conceptual articles, tutorials, guides, API references, code samples and other information related to Microsoft software and web services. Microsoft Docs was introduced in June 2016 as a replacement for the MSDN and TechNet libraries which previously hosted some of these materials. Microsoft Docs initially contained only .NET documentation. The process of migrating the bulk of the MSDN and TechNet libraries' content took approximately two years.

Hi/Lo is an algorithm and a key generation strategy used for generating unique keys for use in a database as a primary key. It uses a sequence-based hi-lo pattern to generate values. Hi/Lo is used in scenarios where an application needs its entities to have an identity prior to persistence. It is a value generation strategy. An alternative to Hi/Lo would be for the application to generate keys as universally unique identifiers (UUID).

FastAPI is a web framework for building HTTP-based service APIs in Python 3.8+. It uses Pydantic and type hints to validate, serialize and deserialize data. FastAPI also automatically generates OpenAPI documentation for APIs built with it. It was first released in 2018.

References

  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.