]> git.kaiwu.me - haproxy.git/commit
MINOR: haload: import source code and documentation master
authorFrederic Lecaille <flecaille@haproxy.com>
Thu, 19 Mar 2026 17:27:48 +0000 (18:27 +0100)
committerFrederic Lecaille <flecaille@haproxy.com>
Wed, 1 Jul 2026 13:22:14 +0000 (15:22 +0200)
commit3ef29b43142e7c98d6f91f7a0d5e78969a04515a
treee2ef0e40445360d088724ed2e6b4668b63640d5b
parent330d60020ddf1e3d5a14636675977bdc1ea0d0de
MINOR: haload: import source code and documentation

This patch imports the implementation of haload, a lightweight,
multi-threaded traffic generator designed to benchmark HTTP infrastructures
under heavy loads. Built onto HAProxy's highly scalable
architecture, it natively supports HTTP/1, HTTP/2, and HTTP/3 (QUIC).

It uses the previously exposed initialization functions, the no-listener mode,
the lightweight hbuf API, and the specialized hldstream object types to
dynamically derive and generate its configuration in memory from basic
command-line inputs. By leveraging HAProxy's internal HTX
(Internal HTTP Native Representation) format, haload abstractly manipulates
HTTP elements independently of the wire protocol. This
abstraction allows it to generate unified requests and process responses
seamlessly across HTTP/1.1, HTTP/2, or HTTP/3 without duplicating the payload
handling logic for each version.

 - Makefile:
   Introduce the 'haload' compilation target and define HALOAD_OBJS.

 - src/haload.c, include/haproxy/haload.h:
   Add user and stream task scheduling handlers, HTX-driven traffic orchestration
   mechanisms, and terminal benchmarking statistical summary rendering.

 - src/haload_init.c:
   Implement program arguments parsing, fileless HAProxy memory configuration
   generation, and target URL allocations.

 - src/stconn.c:
   Wire up sc_attach_mux() to properly allocate the specific tasklet
   context when dealing with a haload stream.

 - doc/haload.txt:
   Add detailed documentation covering compilation, flags, and usage examples.
Makefile
doc/haload.txt [new file with mode: 0644]
include/haproxy/haload.h [new file with mode: 0644]
include/haproxy/hldstream-t.h
src/haload.c [new file with mode: 0644]
src/haload_init.c [new file with mode: 0644]
src/stconn.c