Swiftpack.co - Package - vapor/vapor


Documentation Slack Team MIT License Continuous Integration Swift 4.1 Twitter

Vapor is a web framework for Swift. It provides a beautifully expressive and easy to use foundation for your next website, API, or cloud project.

Take a look at some of the awesome stuff created with Vapor.

💧 Community

Join the welcoming community of fellow Vapor developers in Slack.

🚀 Contributing

To contribute a feature or idea to Vapor, create an issue explaining your idea or bring it up on Slack.

If you find a bug, please create an issue.

If you find a security vulnerability, please contact security@vapor.codes as soon as possible.

💙 Code of Conduct

Our goal is to create a safe and empowering environment for anyone who decides to use or contribute to Vapor. Please help us make the community a better place by abiding to this Code of Conduct during your interactions surrounding this project.

🏫 Tutorials

The awesome Vapor community is always adding new tutorials and articles out there, Vapor University is a great place to get started!

👥 Backers

Support us with a monthly donation and help us continue our activities. [Become a backer]

🥇 Sponsors

Proudly sponsored by Nodes


Become a sponsor and get your logo on our README on GitHub with a link to your site. [Become a sponsor]

Michael Dominick



Stars: 13088
Help us keep the lights on


3.0.0-rc.1.1 - Feb 26, 2018


  • Fixes a regression where EngineClient requests could close the connection after receiving only the headers.


3.0.0-rc.1 - Feb 23, 2018

Vapor 3 Release Candidate is here!

The official release of Vapor 3 (3.0.0) will come alongside Swift 4.1.0. We expect this will happen sometime mid-March, but there's no way to know for sure. Until then, we will be focusing all of our efforts on:

  • Bug fixes
  • Additive features
  • Documentation
  • Tutorials

Early adopters

We believe this release is suitable for early adopters to begin using. There are still bugs to be squashed and documentation pages to be written, but the public API is stable at this point and ready to be put to work.

If you do decide to adopt Vapor 3 during this phase, thank you! We are excited to help you through any issues you might encounter (via GitHub issues or Slack) and we appreciate your contribution to helping grow Vapor 3 and make it our best release yet!

Semver during RC

With respect to breaking changes, we will be treating the RC tags like an official release (we will be following semver). Increments to the first number in the pre-release identifier will indicate new functionality added in a backward-compatible manner. Increments to any numbers after that (e.g., -rc.x.1) will indicate bug fixes.

The best way to pull in the RC releases is to use:

.package(url: "https://github.com/vapor/vapor.git", from: "3.0.0-rc"),

The from: syntax will continue to give you the latest possible version of Vapor, even after we release 3.0.0 official tag and beyond (until 4.0.0).

There are of course a myriad of other ways you can define your version preferences. Check out SPM's versioning documentation for more info.

Learn more

Check out the Vapor 3 Release Schedule medium post for more information.


  • EngineClient now supports following redirects.


3.0.0-beta.4.1 - Feb 22, 2018


  • Workaround for https://bugs.swift.org/browse/SR-6922

3.0.0-beta.4 - Feb 22, 2018


  • Middleware can now be configured lazily:
router.grouped(DateMiddleware.self).get("date") { ... }
  • Each event loop now gets its own copy of each middleware. This will allow factory-initialized middleware to store and access local variables without worrying about thread-safety.
  • JSON dates are now serialized using ISO 8601 format by default.
  • Dictionary and Array now conform to Content when their contents also conform.


  • Fixed an issue with FileMiddleware not serving files
  • Fixed a misleading error message in Multipart form decode.
  • Fixed an issue where partial Leaf views could be returned.
  • Fixed a bunch of other stuff in other packages.


3.0.0-beta.3.1.3 - Feb 19, 2018


  • Update to latest DatabaseKit beta.