mrkeyoor.com_
Wed 23 Sept 03:40 UTC
Webevaluationupdated 23 Sept 2026

vapor review

Vapor is an English-documented HTTP framework for writing web applications, APIs, and servers in Swift. It lets a Swift team keep request handling, routing, middleware, testing helpers, and service code in the same language used by its Apple-platform applications.

Verdict

Our lab produced no install, build, or test result for commit 780152c because the harness does not support Swift and the repository has no Dockerfile. Vapor still merits a shortlist for a team already committed to server-side Swift, with stable 4.122.2 the safer starting point. Treat Vapor 5 Beta 2 as an evaluation branch until its documentation and migration path catch up with the code.

We ran it

Screenshot of vapor (vapor.codes)

Answers from our run

Did you run vapor yourself?

No. Its code is Swift, and it carries no manifest our lab installs from, and no Dockerfile, so there was nothing standard to install, build or test. This review is written from the repository's own documentation.

Who should not use vapor?

Buyers who need an independently verified install or test result from our standard sandbox: our harness does not support Swift, and the repository has no Dockerfile.

What are the alternatives to vapor?

Hummingbird, Axum, Fastify. Our lab produced no install, build, or test result for commit 780152c because the harness does not support Swift and the repository has no Dockerfile.

Setup2/5No lab run, and source setup needs a current Swift toolchain
Docs4/5Vapor 4 is well covered, while Vapor 5 docs are still sparse
Community5/526,214 stars with September pushes, releases, issues, and PRs
Maturity4/5Vapor 4 is established, while Vapor 5 remains in beta

Discussed on

  1. hnVapor: a type-safe web framework for Swift200 points
  2. hnVapor – Decentralized Web over Bitcoinized HTTP183 points
  3. hnScientists Confirm Water Vapor on Europa160 points
  4. hnJames Webb Space Telescope detects water vapor around alien planet149 points
  5. hnVapor chamber tech keeps iPhone 17 Pro cool133 points

Who it’s for

Swift 6 teams building an API, website, or HTTP service and willing to operate a server-side Swift toolchain.
Apple-platform developers who want shared language skills and data types across client and backend code.
Teams choosing the stable Vapor 4 line today while evaluating Vapor 5 separately.
Backend engineers comfortable with Swift Package Manager, async code, and companion packages for persistence or templates.

Who it’s NOT for

Buyers who need an independently verified install or test result from our standard sandbox: our harness does not support Swift, and the repository has no Dockerfile.
Teams adopting Vapor 5 that require finished task-oriented documentation: its official documentation currently says the release line is under active development and that more docs are coming soon.
Windows-first shops that require a settled build path: issue 2646, opened in 2021 and updated in September 2026, still requests Windows build support.
Services that require HTTP/3 today: issue 3513 remains an open request to wire it into the framework.
Projects that cannot tolerate a major-version decision now: stable 4.122.2 and the 5.0.0 beta line are moving at the same time.

Setup reality

We did not run Vapor at commit 780152c. Our sandbox harness has no supported Swift ecosystem, and this repository has no Dockerfile, so it produced no install, build, test, dependency, disk, or vulnerability result. The screening environment was an unprivileged container with 3 CPUs, 8 GB of RAM, and no secrets.

The README requires Swift 6.0 or newer, while the measured commit's package manifest declares Swift tools 6.4. Building from source uses Swift Package Manager and downloads the listed server, networking, crypto, logging, metrics, and syntax packages. Core development does not require hosted credentials.

Version selection is the main setup choice. Vapor 4 has full installation and deployment documentation, and 4.122.2 shipped on September 17, 2026. Vapor 5 Beta 2 uses newer platform and package requirements, while its docs remain sparse. An open issue still tracks Windows builds, and HTTP/3 is not yet wired in.

Vapor brings HTTP server work into a Swift 6 codebase

Vapor handles the familiar web-framework jobs in Swift: routes, requests, responses, middleware, content encoding, commands, and test support. Its package manifest connects those APIs to SwiftNIO, Apple crypto, logging, metrics, tracing, HTTP types, certificates, and service lifecycle packages. That makes sense for an organization whose developers already think in Swift types and concurrency. It is a larger commitment for a backend team that would otherwise choose JavaScript, Rust, Go, or Python.

Our lab screened commit 780152c on September 22, 2026, in an unprivileged container with 3 CPUs and 8 GB of RAM. The harness stopped before installation because Swift is outside its supported ecosystems, and the repository did not supply a Dockerfile as a fallback route. We therefore have no measured package count, disk footprint, build result, test result, or vulnerability audit for Vapor. That missing evidence lowers our setup score even though upstream CI exists.

The core framework leaves databases and views to companion packages

The main repository is the HTTP layer rather than an entire application stack. Its manifest produces the Vapor library, VaporTesting helpers, and macro support. The wider documentation points developers to separate sections and packages for Fluent persistence, Leaf templates, and Redis. This separation keeps the core focused, but a real application still needs choices about a database driver, migrations, authentication, deployment, logging export, and secrets. The shortest hello-world path is not the whole production setup.

At commit 780152c, the manifest requested Swift tools 6.4 and enabled several upcoming or experimental language features. The README advertises Swift 6.0 or newer, so a developer following the badge may still find that the current main branch expects a newer compiler. Package Manager must also resolve the networking, crypto, syntax, and server dependencies listed in that manifest. Pin a release tag instead of pointing a production app at main.

What happened when we ran it

There was no execution run for Vapor in our standard sandbox. The lab classified the repository as Swift, an unsupported ecosystem, then found no Dockerfile it could use for a controlled build. It did not start an install, compile the package, execute tests, count resolved dependencies, measure installed size, or run a vulnerability audit. Any sentence claiming that Vapor passed or failed those steps on our box would be invented.

The boundary matters because the available environment had 3 CPUs and 8 GB of RAM, but no Swift toolchain supplied by the harness image. Upstream shows a GitHub Actions test workflow and the source contains test targets, yet those are project signals rather than our result. Before choosing Vapor, run the exact release with your Swift compiler, Linux distribution or macOS version, database packages, and deployment image. Save that output as the evidence this review cannot provide.

Vapor 4.122.2 is stable while Vapor 5 remains beta

Vapor 4.122.2 was published on September 17, 2026, with a file-response header fix. Vapor 5.0.0 Beta 2 was published one day earlier and fixed a Swift Package Manager dependency-resolution problem. The 5.0 release work changes the HTTP server foundation, response and request bodies, testing APIs, routing macros, and concurrency internals. Those are substantial reasons to test the beta, and equally strong reasons to keep a production migration deliberate.

Our screened commit 780152c belongs to the active main line after the Beta 2 release, not to the stable Vapor 4 tag. GitHub's releases/latest endpoint returned 5.0.0-beta.2 because that release is marked as non-prerelease, even though 4.122.2 was published later. Automation that blindly follows the latest endpoint can therefore select the beta-named line. Pin 4.122.2 when stability is the requirement, and isolate Vapor 5 trials.

Windows builds and HTTP/3 are still open requests

Issue 2646 asks for native Windows build support. It was opened in June 2021 and updated on September 12, 2026, but remains open. Issue 3513, opened in August 2026, asks Vapor to connect HTTP/3 support from its newer server layer. A separate routing bug, issue 3349, reports that path components containing slashes can be registered but cannot be reached, returning 404 in the supplied example. These are specific edges to check against your application.

A 3-CPU, 8 GB Debian screening environment tells us nothing about those platform and protocol paths because no Swift command ran. Windows-first teams should prove the toolchain before adopting the framework. Services that require HTTP/3 should choose another server or wait for the issue to close with a release. Applications generating routes dynamically should add a regression for slash-bearing components instead of assuming route registration guarantees reachability.

September releases and issue work show active maintenance

GitHub recorded a push on September 22, 2026, one day before this review. The repository had 26,214 stars and 82 combined open issues and pull requests. Our API page split those into 59 issues and 23 pull requests. The routing report was updated on September 21, and releases for both major lines landed the previous week. That is current activity, while the older open bugs show that age and popularity do not remove application-specific testing.

Vapor is a serious option when Swift itself is part of the architectural decision. commit 780152c could not clear our lab gate, so start with your own proof rather than treating upstream status badges as a substitute. Build stable 4.122.2 in the image you will deploy, connect the real database and logging stack, and keep a separate Vapor 5 branch. The framework choice becomes defensible when that branch survives your routes, load shape, and operating system.

Alternatives

ProjectWhat it isPick it when
HummingbirdA Swift HTTP framework with a smaller modular core and SwiftNIO foundations.pick this instead when you want to stay in Swift but prefer a leaner framework surface.
Axum gh↗A Rust web framework built around Tokio, Tower middleware, and extractors.pick this instead when Rust ownership and the Tokio ecosystem matter more than sharing Swift code.
Fastify gh↗A Node.js web framework with a large plugin ecosystem and schema-based validation.pick this instead when JavaScript or TypeScript hiring and package availability outweigh a Swift-only stack.

What people are saying

  1. [velocity-scout] vapor/vapor

Sources

  1. Vapor repository
  2. Vapor 4.122.2 release
  3. Vapor 5.0.0 Beta 2 release
  4. Vapor 5 documentation status
  5. Windows build request
  6. HTTP/3 support request
  7. Path component routing bug

More web reviews

univer · MovieBox-Tui · thinking-orbs · chakra-ui · vueuse · react-redux · the whole board →