github.com/mholt/caddy-l4
v0.1.2
#934 most downloaded on Go modules
mholt/caddy-l4
What this package is like to depend on
Last release 1 months ago
15 Jul 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 3 of 3 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
213 releases · first in 2020
83 releases in the last 12 months
see the full history below
Release timeline
213 releases · May 2020 to Jul 2026Releases
latest 60 of 213-
v0.1.215 Jul 2026Release notes
Open source →This minor release adds new capabilities for the
proxyhandler and expands features of thepostgresmodule, along with reliability fixes and dependency updates.Thanks to everyone who contributed code, tests, and feedback for this release. Special thanks to @tannevaled for your hard work on already merged and pending changes.
Highlights
- proxy: Rise/fall thresholds for active health checks (#427), weighted load balancing (#428), optional connection closing when an upstream peer goes unhealthy (#425) and support for Prometheus metrics (#431); collaborated by @tannevaled
- postgres: Dedicated intermediate handler (
postgres_tls) to terminate TLS on classic PostgreSQL connections (#432), support for matching on user, client, and TLS parameters (#436); collaborated by @metafeather and @tannevaled - regexp: Hex option to match non-UTF8 byte sequences (#448); collaborated by @vnxme
Fixes
- proxy_protocol: Align the internal buffer size with the app's maximum buffer size to prevent connection drops (#420 -> #450); collaborated by @carterbryden and @vnxme
What's Changed
- build(deps): bump the all-updates group with 2 updates by @dependabot[bot] in #433
- build(deps): bump the actions-deps group with 4 updates by @dependabot[bot] in #434
- build(deps): bump the actions-deps group with 2 updates by @dependabot[bot] in #441
- build(deps): bump the all-updates group with 4 updates by @dependabot[bot] in #442
- deps: Bump Caddy to v2.11.4 by @vnxme in #443
- l4proxy: add rise/fall thresholds to active health checks by @tannevaled in #427
- l4proxy: add weighted load balancing by @tannevaled in #428
- l4proxy: add Prometheus metrics by @tannevaled in #431
- l4proxy: add Caddyfile unmarshaling tests by @tannevaled in #424
- test(l4proxy): add unit tests for Handle (the proxy main loop) by @tannevaled in #435
- l4proxy: optionally close connections when a peer goes unhealthy by @tannevaled in #425
- l4proxy: fix duplicate metrics registration panic (fixes #445) by @tannevaled in #446
- l4postgres: add a Postgres TLS handler (terminate inbound + re-originate outbound) by @tannevaled in #432
- l4postgres: consolidate into one postgres matcher (user/database, client, TLS) — supersedes #188 by @tannevaled in #436
- docs: Adjust the Postgres-over-TLS example by @vnxme in #447
- regexp: Introduce hex option to match non-UTF8 bytes by @vnxme in #448
- proxy_protocol: Adjust go-proxyproto's internal buffer size by @vnxme in #450
New Contributors
- @carterbryden made their first contribution in #420
- @tannevaled made their first contribution in #427
Full Changelog: v0.1.1...v0.1.2
-
v0.1.2-0.20260715121110-42db5690dea115 Jul 2026 pre-releaseNothing published for this version
-
v0.1.2-0.20260715085456-19ec3a20df3b15 Jul 2026 pre-releaseNothing published for this version
-
v0.1.2-0.20260707094320-bd96009ea73707 Jul 2026 pre-releaseNothing published for this version
-
v0.1.2-0.20260706171203-4fbda738cbe706 Jul 2026 pre-releaseNothing published for this version
-
v0.1.2-0.20260703160116-bf180f4a228c03 Jul 2026 pre-releaseNothing published for this version
-
v0.1.2-0.20260703085640-b0529035965503 Jul 2026 pre-releaseNothing published for this version
-
v0.1.2-0.20260702170156-afd4a761fad102 Jul 2026 pre-releaseNothing published for this version
-
v0.1.2-0.20260702155856-7b7abcbbb8af02 Jul 2026 pre-releaseNothing published for this version
-
v0.1.2-0.20260702072337-678da1df111102 Jul 2026 pre-releaseNothing published for this version
-
v0.1.2-0.20260603064814-1d459d3c0a3203 Jun 2026 pre-releaseNothing published for this version
-
v0.1.113 May 2026Release notes
Open source →This minor release expands routing capabilities of this app, so that any context variable can be used as a basis for routing decisions. It also brings in a few niche features to the proxy handler, and contains dependency upgrades and several important fixes to the QUIC matcher.
Thank you to everyone who was involved in this release!
Highlights
- vars: Now it's possible to route connections based on placeholders and other context variables and define custom context variables per connection. It enables to use client certificate data to orchestrate mutual TLS connections, filter TLS connections based on the protocol version, and much more. Regular expression matching for context variables is on board as well. See also #396.
- proxy: Placeholders and context variables are valid in port numbers of upstream dial addresses with #289; collaborated by @lelemka0.
- proxy: Source addresses and DNS resolver preferences for upstream dial addresses are respected with #361; collaborated by @JDTX0.
- proxy: Fixed a few bugs related to how
tls_server_nameis treated for upstream configuration; collaborated by @c00ldchan in #392. - quic: Several important fixes to the matcher code in #413, #414, #415, #416; collaborated by @kkroo.
What's Changed
- deps: Bump Caddy to v2.11.2 by @vnxme in #397
- proxy: Treat TLS server names carefully by @vnxme in #398
- lint: Modernize atomic operations in the proxy handler by @vnxme in #403
- build(deps): bump the all-updates group across 1 directory with 4 updates by @dependabot[bot] in #404
- build(deps): bump the actions-deps group with 2 updates by @dependabot[bot] in #401
- chore: No space between // and nolint by @vnxme in #406
- feat: Enable routing based on placeholders and custom variables by @vnxme in #396
- remote_ip_list: Fix phantom test failures by @vnxme in #407
- proxy: support dynamic port number by @lelemka0 in #289
- proxy: Quick fix for #408 by @vnxme in #409
- lint: Modernize reverse loops over slices by @vnxme in #417
- build(deps): bump step-security/harden-runner from 2.17.0 to 2.19.1 in the actions-deps group across 1 directory by @dependabot[bot] in #411
- build(deps): bump the all-updates group across 1 directory with 3 updates by @dependabot[bot] in #412
- l4quic: close qListener on every Match() exit path by @kkroo in #416
- l4quic: distinguish Accept() deadline from cancellation in Match() by @kkroo in #413
- l4quic: panic-recover the WaitForMore goroutine by @kkroo in #414
- l4quic: log Accept() errors at WARN/DEBUG split by @kkroo in #415
- Support upstream source addresses and DNS resolver preferences by @JDTX0 in #361
- deps: Bump Caddy to v2.11.3 by @vnxme in #418
New Contributors
- @lelemka0 made their first contribution in #289
- @JDTX0 made their first contribution in #361
- @kkroo made their first contribution in #416
Full Changelog: v0.1.0...v0.1.1
-
v0.1.1-0.20260715121110-42db5690dea115 Jul 2026 pre-releaseNothing published for this version
-
v0.1.1-0.20260513141457-45e9c728448b13 May 2026 pre-releaseNothing published for this version
-
v0.1.1-0.20260507081748-77920167a64107 May 2026 pre-releaseNothing published for this version
-
v0.1.1-0.20260505065500-714ee1ebaa2805 May 2026 pre-releaseNothing published for this version
-
v0.1.1-0.20260504183635-d52df4e8a13b04 May 2026 pre-releaseNothing published for this version
-
v0.1.1-0.20260504161730-66a192bce62504 May 2026 pre-releaseNothing published for this version
-
v0.1.1-0.20260504150220-78cd4ae7ebb304 May 2026 pre-releaseNothing published for this version
-
v0.1.1-0.20260420130221-6faae83b167f20 Apr 2026 pre-releaseNothing published for this version
-
v0.1.1-0.20260420075200-be9b32e5d13020 Apr 2026 pre-releaseNothing published for this version
-
v0.1.1-0.20260417113008-0bf1763abf1817 Apr 2026 pre-releaseNothing published for this version
-
v0.1.1-0.20260416162231-b13c8567966816 Apr 2026 pre-releaseNothing published for this version
-
v0.1.1-0.20260415193936-19ea876424b715 Apr 2026 pre-releaseNothing published for this version
-
v0.1.1-0.20260413084544-55b132ea6f1913 Apr 2026 pre-releaseNothing published for this version
-
v0.1.1-0.20260413071509-f6fdab03f34e13 Apr 2026 pre-releaseNothing published for this version
-
v0.1.1-0.20260318160304-afd229714fb118 Mar 2026 pre-releaseNothing published for this version
-
v0.1.1-0.20260316183735-962399cbcfd716 Mar 2026 pre-releaseNothing published for this version
-
v0.1.007 Mar 2026Release notes
Open source →We are excited to announce the first public release of caddy-l4, a Layer 4 (TCP/UDP) app for Caddy.
It enables Caddy to inspect and route raw network connections using composable matchers and handlers, similar in spirit to how the HTTP app processes requests. This allows building flexible Layer 4 routing pipelines for arbitrary protocols.
Capabilities
- TCP/UDP proxying
- Routing based on protocol detection (TLS, HTTP, SSH, etc.)
- TLS termination and SNI-based routing
- Protocol multiplexing on shared ports
- IP-based filtering and connection controls
- Pluggable matchers and handlers
Stability
⚠️ The module is still evolving and breaking changes may occur before a stable release.
Documentation
ℹ️ See the README and the docs directory for configuration examples and usage details.
Thanks
❤️ We are grateful to everyone who has experimented with early versions of this module, contributed new features, and provided feedback.
-
v0.0.0-20260715121110-42db5690dea115 Jul 2026 pre-releaseNothing published for this version
-
v0.0.0-20260707094320-bd96009ea73707 Jul 2026 pre-releaseNothing published for this version
-
v0.0.0-20260706171203-4fbda738cbe706 Jul 2026 pre-releaseNothing published for this version
-
v0.0.0-20260703160116-bf180f4a228c03 Jul 2026 pre-releaseNothing published for this version
-
v0.0.0-20260702170156-afd4a761fad102 Jul 2026 pre-releaseNothing published for this version
-
v0.0.0-20260603064814-1d459d3c0a3203 Jun 2026 pre-releaseNothing published for this version
-
v0.0.0-20260513141457-45e9c728448b13 May 2026 pre-releaseNothing published for this version
-
v0.0.0-20260507081748-77920167a64107 May 2026 pre-releaseNothing published for this version
-
v0.0.0-20260505065500-714ee1ebaa2805 May 2026 pre-releaseNothing published for this version
-
v0.0.0-20260504183635-d52df4e8a13b04 May 2026 pre-releaseNothing published for this version
-
v0.0.0-20260504150220-78cd4ae7ebb304 May 2026 pre-releaseNothing published for this version
-
v0.0.0-20260420130221-6faae83b167f20 Apr 2026 pre-releaseNothing published for this version
-
v0.0.0-20260417113008-0bf1763abf1817 Apr 2026 pre-releaseNothing published for this version
-
v0.0.0-20260416162231-b13c8567966816 Apr 2026 pre-releaseNothing published for this version
-
v0.0.0-20260415193936-19ea876424b715 Apr 2026 pre-releaseNothing published for this version
-
v0.0.0-20260413084544-55b132ea6f1913 Apr 2026 pre-releaseNothing published for this version
-
v0.0.0-20260318160304-afd229714fb118 Mar 2026 pre-releaseNothing published for this version
-
v0.0.0-20260316183735-962399cbcfd716 Mar 2026 pre-releaseNothing published for this version
-
v0.0.0-20260307192245-45c14772474b07 Mar 2026 pre-releaseNothing published for this version
-
v0.0.0-20260304182434-d882e9c2661d04 Mar 2026 pre-releaseNothing published for this version
-
v0.0.0-20260303160051-86ea3cdf5c8c03 Mar 2026 pre-releaseNothing published for this version
-
v0.0.0-20260303123534-859254a193dc03 Mar 2026 pre-releaseNothing published for this version
-
v0.0.0-20260302122623-f7fc5f70619302 Mar 2026 pre-releaseNothing published for this version
-
v0.0.0-20260302095449-b02a6fd06daf02 Mar 2026 pre-releaseNothing published for this version
-
v0.0.0-20260302083050-4986944b2fa002 Mar 2026 pre-releaseNothing published for this version
-
v0.0.0-20260216070754-eca560d759c916 Feb 2026 pre-releaseNothing published for this version
-
v0.0.0-20260214231904-36fb59e026c614 Feb 2026 pre-releaseNothing published for this version
-
v0.0.0-20260214030102-6acfb893af6b14 Feb 2026 pre-releaseNothing published for this version
-
v0.0.0-20260213082152-f5a1f8edc56e13 Feb 2026 pre-releaseNothing published for this version
-
v0.0.0-20260212155620-dd12cc41346912 Feb 2026 pre-releaseNothing published for this version
-
v0.0.0-20260212153413-9144c0aae13412 Feb 2026 pre-releaseNothing published for this version