Vapor is an
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
web framework
A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build an ...
written in
Swift
Swift or SWIFT most commonly refers to:
* SWIFT, an international organization facilitating transactions between banks
** SWIFT code
* Swift (programming language)
* Swift (bird), a family of birds
It may also refer to:
Organizations
* SWIFT ...
. It can be used to create
RESTful APIs, web apps, and real-time applications using
WebSocket
WebSocket is a computer communications protocol, providing full-duplex communication channels over a single Transmission Control Protocol, TCP connection. The WebSocket protocol was standardized by the Internet Engineering Task Force, IETF as in ...
s. In addition to the core framework, Vapor provides an
ORM
Orm (in Old Norse and in modern Danish, Swedish, Norwegian ( bokmål and nynorsk) the word for "snake", "worm" or "dragon") became an Anglo-Saxon personal name during period of the Danelaw.
Orm may also refer to:
* Orm or Ormin, the autho ...
, a templating language, and packages to facilitate user
authentication
Authentication (from ''authentikos'', "real, genuine", from αὐθέντης ''authentes'', "author") is the act of proving an assertion, such as the identity of a computer system user. In contrast with identification, the act of indicat ...
and
authorization
Authorization or authorisation (see spelling differences) is the function of specifying access rights/privileges to resources, which is related to general information security and computer security, and to access control in particular. More f ...
.
Vapor's
source code
In computing, source code, or simply code, is any collection of code, with or without comment (computer programming), comments, written using a human-readable programming language, usually as plain text. The source code of a Computer program, p ...
is hosted on
GitHub
GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, co ...
and licensed under the
MIT License
The MIT License is a permissive free software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts only very limited restriction on reuse and has, therefore, high license co ...
. Vapor has been a part of Swift's Server APIs working group since 2016.
History
Vapor 0.1.0 was released as a proof of concept for Swift on the server a month after
Apple
An apple is an edible fruit produced by an apple tree (''Malus domestica''). Apple trees are cultivated worldwide and are the most widely grown species in the genus '' Malus''. The tree originated in Central Asia, where its wild ances ...
open sourced Swift and began
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
platform support on December 3, 2015. Vapor 1.0 arrived in September 2016, followed by the release of Vapor 2.0 in May 2017.
The framework was rewritten for Vapor 3.0 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
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.
In December 2019, IBM announced it had no f ...
) adopted the new SwiftNIO framework on the main Swift.org server page.
Vapor 3's beta period saw educational material published by
Packt
Packt is a publishing company founded in 2003 headquartered in Birmingham, UK,with offices in Mumbai, India.
Packt primarily publishes print and electronic books and videos relating to information technology, including programming, web des ...
, Paul Hudson, Razeware LLC, and
lynda.com
LinkedIn Learning is an American online learning provider. It provides video courses taught by industry experts in software, creative, and business skills. It is a subsidiary of LinkedIn. All the courses on LinkedIn fall into four categories: Bus ...
. Vapor was recognized by Swift.org with an official Swift Forum in its inaugural group of Related Projects in May 2018.
Vapor 4's Alpha 1 Release started in May 2019 and the stable version released in April 2020.
Releases
Source: Vapor Docs & GitHub Releases.
Features
Vapor supports the following features:
* Async / non-blocking IO
* Authentication: basic, bearer,
JWT, and password
* Cache:
Redis
Redis (; Remote Dictionary Server) is an in-memory data structure store, used as a distributed, in-memory key–value database, cache and message broker, with optional durability. Redis supports different kinds of abstract data structures, suc ...
and in-Memory
* Commands / console formatting
* Content Negotiation:
JSON
JSON (JavaScript Object Notation, pronounced ; also ) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other s ...
, multipart, and URL-encoded form
* Crypto:
RNG, ciphers, digests,
RSA
RSA may refer to:
Organizations Academia and education
* Rabbinical Seminary of America, a yeshiva in New York City
*Regional Science Association International (formerly the Regional Science Association), a US-based learned society
*Renaissance S ...
* Dependency Injection / Inversion of Control
* Fluent ORM:
MySQL
MySQL () is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database ...
,
PostgreSQL
PostgreSQL (, ), also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally named POSTGRES, referring to its origins as a successor to the In ...
, and
SQLite
SQLite (, ) is a database engine written in the C programming language. It is not a standalone app; rather, it is a library that software developers embed in their apps. As such, it belongs to the family of embedded databases. It is the mo ...
*
HTTP
The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, ...
Client and Server
* Leaf Templating:
HTML
The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScri ...
etc
* Logging
* URL Routing
* Validation
* WebSocket client and server
* Queue Jobs
References
{{reflist
Web frameworks