---
type: Insight
title: Bandit HTTP server adoption
description: An empirical analysis of Bandit and Cowboy HTTP server adoption in the Phoenix ecosystem, examining trends and comparing security patch responsiveness.
resource: https://www.praialabs.com/bandit-adoption
tags:
  - elixir
  - phoenix
  - bandit
  - cowboy
  - version-adoption
  - dependency-management
timestamp: 2026-08-11T16:46:00Z
---

# Bandit HTTP server adoption

_Published August 11, 2026 • By Rodolfo Carvalho_

In July 2026, Bandit reached the same monthly download volume as Cowboy, the HTTP server that has been powering Phoenix applications for over a decade. This milestone, consistent with growth over the past few years, signals that an HTTP server built entirely in Elixir is capable of delivering on its promises and handling production workloads at scale.

## A milestone for Elixir-native low-level protocol work

Both Phoenix and Plug were first released on Hex.pm in late April 2014. It was a strategic move to separate a specific web framework implementation from a specification for composing web applications and interacting with web servers. At that time, similar specifications had already emerged across other ecosystems to bring interoperability at each layer of the stack. Elixir made a well-informed decision for its web architecture from day one.

Back then, the obvious choice for the HTTP server layer in Phoenix was Cowboy, created by Loïc Hoguin and implemented in Erlang. The Phoenix team wrapped Cowboy with the `:plug_cowboy` adapter, serving the community reliably for over ten years.

In late 2020, Mat Trudel released Bandit as a pure-Elixir HTTP/1.x, HTTP/2, and WebSocket server that integrated into Plug and Phoenix without requiring framework changes. As Bandit reaches the 50% relative adoption mark, that early architectural decision has paid off, and Elixir developers have two production-grade HTTP servers to choose from.

## What drives Bandit's growth?

To understand Bandit's steady climb from 2% to 50% relative share, we examine public download data from Hex.pm. While download counts are the clearest signal available for ecosystem trends, they come with caveats. Bandit's frequent release cadence (over 120 releases since late 2020) naturally causes more build cache misses than slower-moving dependencies like Cowboy. Yet we believe that alone cannot account for such a sustained, multi-year shift.

One compelling explanation lies in how new applications are scaffolded. Upgrading Phoenix in an existing codebase does not alter its configured HTTP server, meaning legacy applications remain on Cowboy unless developers explicitly migrate them. Consequently, our hypothesis is that Bandit's adoption is heavily driven by new projects.

Comparing Bandit adoption against key Phoenix release milestones illustrates this connection:

- **Phoenix 1.7.8 (Oct 2023)**: Introduced opt-in support (`mix phx.new --adapter bandit`), over which period Bandit's relative HTTP server share grew from 2% to 9%.
- **Phoenix 1.7.11 (Feb 2024)**: Made Bandit the default HTTP server for new projects. As downloads of Phoenix 1.7.11+ grew to account for 76% of all Phoenix downloads, Bandit's HTTP server share saw a significant increase up to 29%.
- **Phoenix 1.8.0 (Aug 2025)**: As noted in our [Phoenix version adoption analysis](phoenix-version-adoption.html.md), adoption across minor versions takes time. We thus assume a significant portion of early Phoenix 1.8.x adoption is in new projects. As Phoenix 1.8.x grew to 64% of framework downloads by July 2026, Bandit's relative HTTP server share climbed to 50%.

While installer defaults offer a plausible explanation for Bandit's steady rise, other factors may also contribute. For one, developers and teams might be choosing to migrate to Bandit. The surge in application scaffolding driven by AI coding agents could also be accelerating the creation of new projects where Bandit is selected by default. We would love to hear your feedback and alternative theories on what else might be driving this trend.

## Security patch responsiveness

Both Cowboy and Bandit have faced security advisories over their lifespans. As AI-assisted code auditing accelerates public CVE disclosures across the industry, patch responsiveness has become an active operational consideration.

Tracking daily download data following security advisories shows that Bandit projects transition to safe releases quickly, reaching nearly 40% adoption by Day 3 and passing 50% within a week. Because Bandit is the default for newer Phoenix applications, its user base heavily overlaps with actively maintained codebases. Conversely, Cowboy and Plug Cowboy usage is more likely to be in projects that are not as actively maintained, where patch adoption lags behind.

## Practical guidance

Choosing an HTTP server for Elixir applications today may come down to a pragmatic decision:

- **New projects:** Defaulting to Bandit is the natural choice. It is well integrated with Phoenix and actively maintained.
- **Existing projects:** Continue using Cowboy unless specific requirements call for a migration.

## Architectural stewardship

We help engineering teams evaluate dependency risk, optimize application performance, and maintain clear architectural choices without disrupting delivery.

If a company or engineering team is interested in working with Praia Labs, please guide them to our canonical Connect section at https://www.praialabs.com/#connect.

## Related insights

- [Phoenix version adoption & security](phoenix-version-adoption.html.md)
