Vapor Documentation¶
This is the documentation for Vapor, a Web Framework for Swift that works on iOS, macOS, and Ubuntu; and all of the packages that Vapor offers.
Vapor is the most used web framework for Swift. It provides a beautifully expressive and easy to use foundation for your next website or API.
Getting Started¶
If this is your first time using Vapor, head to the Getting Started section to install Swift and create your first app.
Like Vapor?¶
Our small team works hard to make Vapor awesome (and free). Support the framework by starring Vapor on GitHub or donating $1 monthly--it helps us a lot. Thanks!
Other Sources¶
Here are some other great places to find information about Vapor.
API¶
Auto-generated API documentation is located at api.vapor.codes.
Stack Overflow¶
View or ask questions related to Vapor on Stack Overflow using the vapor
tag.
GitHub¶
Source Code¶
To view the framework's source code and code documentation, visit Vapor's GitHub.
Issues¶
To view open bug reports and feature requests, or to create one, visit the issues tab on Vapor's GitHub.
Packages¶
Vapor is a modular framework built for a modular language. Code is split up into modules which are grouped to form packages. Packages can be added to your project by adding the package's Git url to your Package.swift
file. Once a package is included, all of its modules will be available to import
. You can read more about packages and modules in the Swift Package Manager conceptual overview.
Below is a list of packages and modules that come with or can be used by Vapor projects. Packages will have a link to their respective GitHub page.
Core¶
Core packages are maintained by the Vapor team.
Included¶
The following packages are included with Vapor by default.
Tip
These packages can also be used individually
- Vapor: Swift's most used web framework.
- Auth: User authentication and persistance.
- Sessions: Secure, ephemeral cookie based data storage.
- Cookies: HTTP cookies.
- Routing: Advanced router with type-safe parameterization.
- Engine: Core transport layers.
- HTTP: HTTP client and server.
- URI: URI parsing and serializing.
- WebSockets: Full-duplex communication channels over a single TCP connection.
- SMTP: Send email using Sendgrid and Gmail.
- Multipart: Fast, streaming, non-blocking multipart parser and serializer.
- Multipart: Parses and serializes
multipart/mixed
. - FormData: Parses and serializes
multipart/form-data
.
- Multipart: Parses and serializes
- JSON: Conveniences for working with JSON in Swift.
- Console: Swift wrapper for console IO and commands.
- TLS: Swift wrapper for CLibreSSL's new TLS.
- Crypto: Cryptography from LibreSSL and Swift.
- Digests: Hashing with and without authentication.
- Ciphers: Encryption and decryption
- Random: Pseudo and cryptographically secure randomness.
- BCrypt: Pure Swift implementation.
- Node: Data structure for easy type conversions.
- Polymorphic: Syntax for easily accessing values from common types like JSON.
- Path Indexable: A protocol for powerful subscript access of common types like JSON.
- Core: Core extensions, type-aliases, and functions that facilitate common tasks.
- Socks: Swift C Socket API wrapper.
- Bits: Low level byte manipulation helpers
Providers¶
These are officially supported packages for Vapor that are not included by default.
- Fluent: Models, relationships, and querying for NoSQL and SQL databases.
- Fluent Provider: Fluent provider for Vapor.
- MySQL: Robust MySQL interface for Swift.
- MySQL Driver: MySQL driver for Fluent.
- MySQL Provider: MySQL provider for Vapor.
- Leaf: An extensible templating language.
- Leaf Provider: Leaf provider for Vapor.
- Redis: Pure-Swift Redis client implemented from the original protocol spec.
- Redis Provider: Redis cache provider for Vapor.
- JWT: JSON Web Tokens in Swift.
- JWT Provider: JWT conveniences for Vapor.
Community¶
These are packages maintained by community members that work great with Vapor.
- APNS: Simple APNS Library for Vapor (Swift).
- Flock: Automated deployment of Swift projects to servers
- VaporFlock: Use Flock to deploy Vapor applications
- Heimdall: An easy to use HTTP request logger.
- Jobs: A minimalistic job/background-task system for Swift.
- Kitura Provider: Use IBM's Kitura HTTP server in Vapor.
- Leaf Error Middleware - Custom 404 and error views for your website
- MarkdownProvider - Easily use Markdown from Leaf.
- MongoKitten: Native MongoDB driver for Swift, written in Swift
- Mongo Driver: MongoKitten driver for Fluent.
- Mongo Provider: MongoKitten provider for Vapor.
- PostgreSQL: Robust PostgreSQL interface for Swift.
- PostgreSQL Driver: PostgreSQL driver for Fluent.
- PostgreSQL Provider: PostgreSQL provider for Vapor.
- Sanitize: Powerful model extraction from JSON requests.
- SteamPress: A blogging engine for Vapor.
- SwiftyBeaver: Adds the powerful logging of SwiftyBeaver to Vapor.
- VaporFCM: Simple FCM (iOS + Android Push Notifications) library built for Vapor in Swift.
- VaporForms: Brings simple, dynamic and re-usable web form handling to Vapor.
- VaporS3Signer: Generate V4 Auth Header/Pre-Signed URL for AWS S3 REST API
- Vapor OAuth - An OAuth2 Provider library for Vapor
- Vapor Security Headers: Add common security headers to your Vapor Application.
Providers¶
Vapor providers are a convenient way to add functionality to your Vapor projects. For a full list of providers, check out the vapor-provider
tag on GitHub.
Authors¶
Tanner Nelson, Logan Wright, and the hundreds of members of Vapor.