# \#http2

**URL:** https://erlangforums.com/tag/http2/683.md

[Latest](https://erlangforums.com/latest.md) · [Categories](https://erlangforums.com/categories.md) · [Tags](https://erlangforums.com/tags.md)

---

## [Roadrunner - Pure-Erlang HTTP and WebSocket server](https://erlangforums.com/t/roadrunner-pure-erlang-http-and-websocket-server/5623)

<div class="topic-metadata">

**Author:** [@williamthome](https://erlangforums.com/u/williamthome)\
**Replies:** 24\
**Last updated:** [October 27, 2026, 10:32pm UTC](https://erlangforums.com/t/roadrunner-pure-erlang-http-and-websocket-server/5623 "2026-10-27T22:32:17Z")

</div>

Hey folks, Wanted to share a project I’ve been working on for a while: Roadrunner, a pure-Erlang HTTP/1.1 + HTTP/2 + WebSocket server, built from scratch with TDD as the HTTP layer for Arizona. Why another HTTP server?…

---

## [Erlang QUIC 1.8.0 update](https://erlangforums.com/t/erlang-quic-1-8-0-update/5856)

<div class="topic-metadata">

**Author:** [@benoitc](https://erlangforums.com/u/benoitc)\
**Replies:** 2\
**Last updated:** [August 15, 2026, 9:23am UTC](https://erlangforums.com/t/erlang-quic-1-8-0-update/5856 "2026-08-15T09:23:28Z")

</div>

I have not posted an update here since 1.3.0, so here is a short one. Most of the work has been around interoperability with real QUIC/HTTP3 servers, security, and distribution. One important fix landed in 1.4.4. The cl…

---

## [Livery - high-performance HTTP/1.1, HTTP/2, HTTP/3 server for Erlang/OTP 27+](https://erlangforums.com/t/livery-high-performance-http-1-1-http-2-http-3-server-for-erlang-otp-27/5693)

<div class="topic-metadata">

**Author:** [@benoitc](https://erlangforums.com/u/benoitc)\
**Replies:** 6\
**Last updated:** [June 25, 2026, 4:04am UTC](https://erlangforums.com/t/livery-high-performance-http-1-1-http-2-http-3-server-for-erlang-otp-27/5693 "2026-06-25T04:04:28Z")

</div>

Livery 0.2.0 is out. This is the first public release. Livery is a native Erlang web framework, written very much in the spirit of Axum, Tower and Hyper. You write one router and one middleware stack, and it serves them…

---

## [Hackney 4.2.0 - IPv6 and 0-RTT for HTTP/3, cross-sign cert recovery](https://erlangforums.com/t/hackney-4-2-0-ipv6-and-0-rtt-for-http-3-cross-sign-cert-recovery/5689)

<div class="topic-metadata">

**Author:** [@benoitc](https://erlangforums.com/u/benoitc)\
**Replies:** 1\
**Last updated:** [June 4, 2026, 5:23am UTC](https://erlangforums.com/t/hackney-4-2-0-ipv6-and-0-rtt-for-http-3-cross-sign-cert-recovery/5689 "2026-06-04T05:23:42Z")

</div>

hackney 4.2.0 is out. It is a drop-in upgrade from 4.1; the changes are additive so there are no API changes. {hackney, "4.2.0"} %% rebar {:hackney, "~\> 4.2"} # mix Added IPv6 for HTTP/3. The family connect o…

---

## [Hackney 4.1.0 - WebTransport client](https://erlangforums.com/t/hackney-4-1-0-webtransport-client/5667)

<div class="topic-metadata">

**Author:** [@benoitc](https://erlangforums.com/u/benoitc)\
**Replies:** 0\
**Last updated:** [May 29, 2026, 9:37pm UTC](https://erlangforums.com/t/hackney-4-1-0-webtransport-client/5667 "2026-05-29T21:37:42Z")

</div>

hackney 4.1.0 adds a WebTransport client. It mirrors the existing WebSocket client, so moving from WebSocket to WebTransport is a matter of swapping the ws\_ prefix for wt\_: {ok, Conn} = hackney:wt\_connect(\<\<"https://e…

---

## [Hackney 4.0.1 - security release](https://erlangforums.com/t/hackney-4-0-1-security-release/5650)

<div class="topic-metadata">

**Author:** [@benoitc](https://erlangforums.com/u/benoitc)\
**Replies:** 1\
**Last updated:** [May 25, 2026, 4:42pm UTC](https://erlangforums.com/t/hackney-4-0-1-security-release/5650 "2026-05-25T16:42:17Z")

</div>

hackney 4.0.1 is a security release. It fixes vulnerabilities across the HTTP/1.1, HTTP/2, HTTP/3, WebSocket, cookie and URL handling code. There are no API changes, so it is a drop-in upgrade from 4.0.0. If you use h…

---

## [Hackney 3.1.0 - HTTP/3 now pure Erlang, zero C dependencies](https://erlangforums.com/t/hackney-3-1-0-http-3-now-pure-erlang-zero-c-dependencies/5435)

<div class="topic-metadata">

**Author:** [@benoitc](https://erlangforums.com/u/benoitc)\
**Replies:** 12\
**Last updated:** [April 9, 2026, 10:14pm UTC](https://erlangforums.com/t/hackney-3-1-0-http-3-now-pure-erlang-zero-c-dependencies/5435 "2026-04-09T22:14:57Z")

</div>

Hackney 3.1.0 is now available. The main change in this release is replacing the lsquic-based QUIC NIF with a pure Erlang implementation. HTTP/3 support now works without any external dependencies. What changed: Rem…

---

## [Hackney 2.0.0 released](https://erlangforums.com/t/hackney-2-0-0-released/5384)

<div class="topic-metadata">

**Author:** [@benoitc](https://erlangforums.com/u/benoitc)\
**Replies:** 2\
**Last updated:** [February 15, 2026, 7:37pm UTC](https://erlangforums.com/t/hackney-2-0-0-released/5384 "2026-02-15T19:37:00Z")

</div>

hackney 2.0.0 has been released! This is the first stable release of the 2.x series. hackney is an HTTP client for Erlang. Version 2.0 is a major rewrite where each connection runs in its own gen\_statem process. Key Fe…

---

## [Hackney 2.0.0-beta.1 released](https://erlangforums.com/t/hackney-2-0-0-beta-1-released/5364)

<div class="topic-metadata">

**Author:** [@benoitc](https://erlangforums.com/u/benoitc)\
**Replies:** 2\
**Last updated:** [January 9, 2026, 2:52pm UTC](https://erlangforums.com/t/hackney-2-0-0-beta-1-released/5364 "2026-01-09T14:52:12Z")

</div>

hackney is an HTTP client for Erlang. Version 2.0.0-beta.1 introduces a process per connection architecture where each connection runs in its own gen\_statem process. Main changes: HTTP/3 support via QUIC (opt in) HTT…

---

## [How to use Cowboy with HTTP/2 instead of HTTP/1.1?](https://erlangforums.com/t/how-to-use-cowboy-with-http-2-instead-of-http-1-1/2918)

<div class="topic-metadata">

**Author:** [@Ostap](https://erlangforums.com/u/Ostap)\
**Replies:** 2\
**Last updated:** [September 30, 2023, 7:00pm UTC](https://erlangforums.com/t/how-to-use-cowboy-with-http-2-instead-of-http-1-1/2918 "2023-09-30T19:00:38Z")

</div>

When I open http://127.0.0.1:8080/ in the browser, I can see it uses HTTP/1.1. How can I make it use HTTP/2.0 instead and prefer it over HTTP/1.1? My current code: hello\_server\_app.erl -module(hello\_server\_app). -…
