rload 0.1.2

A Rust HTTP/1.1 load generator with Nginx access-log and JSONL replay
Documentation
1
2
3
4
5
6
7
8
9
<!doctype html>
<html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="description" content="rload:Rust 原生 HTTP 压测与真实流量回放引擎"><title>rload · Replay reality. Find the limit.</title><link rel="stylesheet" href="styles.css"></head>
<body><header class="nav wrap"><a class="logo" href="#top"><b>r</b>load</a><nav><a href="#features">能力</a><a href="#compare">对比</a><a href="#install">开始使用</a><a class="nav-cta" href="https://github.com/wenhaozhao/rload/releases">Releases ↗</a></nav></header>
<main id="top"><section class="hero wrap"><div><p class="eyebrow"><i></i> RUST-NATIVE HTTP LOAD GENERATION</p><h1>回放真实流量。<br><em>找到系统极限。</em></h1><p class="lead">rload 是一个兼容 wrk 核心语义的 Rust 压测引擎,支持静态请求、Nginx access-log 和结构化 JSONL 回放。</p><div class="actions"><a class="button primary" href="#install">立即开始 ↓</a><a class="button" href="https://github.com/wenhaozhao/rload">查看源码 ↗</a></div><p class="meta">0.1.1 最新版本 · MIT / Apache-2.0 · Rust 1.96+</p></div><div class="terminal"><div class="term-head"><span>●</span><span>●</span><span>●</span><b>rload</b></div><pre><code><em>$</em> rload -t2 -c100 -d30s<br> --access-log access.log<br> https://api.example.com<br><br><strong>Requests/sec:</strong> 42,814.20<br><strong>Average latency:</strong> 2.31ms<br><strong>99%:</strong>     8.74ms<br><strong>Socket errors:</strong> connect 0, read 0<br><br><mark>● load complete</mark></code></pre></div></section>
<div class="ribbon"><div class="wrap"><span>BUILT FOR THE TRAFFIC YOU ACTUALLY HAVE</span><span>HTTP/1.1 · HTTPS · TLS · JSONL</span></div></div>
<section id="features" class="section wrap"><p class="eyebrow">01 / 核心能力</p><h2>从一个URL,<br><em>到生产级流量。</em></h2><p class="section-lead">先做干净的基准测试,再把真实请求序列带进来。每一步都可复现、可解释、可验证。</p><div class="cards"><article class="card dark"><small>01</small><h3>回放你的日志</h3><p>将Nginx common/combined日志转换成可重复工作负载。顺序、shuffle或带seed的随机顺序。</p><code>--access-log production.log<br>--replay-order shuffle --seed 42</code></article><article class="card"><small>02</small><h3>塑造每个请求</h3><p>curl风格method、header、UTF-8 body、二进制payload和JSONL请求文件。</p><code>-X POST -H 'Content-Type: application/json'</code></article><article class="card"><small>03</small><h3>看见完整结果</h3><p>HDR延迟分布、状态码、method摘要、URI热点和分类socket错误。</p><div class="bars"><i></i><i></i><i></i><i></i><i></i></div></article><article class="card orange"><small>04</small><h3>面对故障仍可继续</h3><p>时长模式恢复reset、timeout、拒绝连接和服务重启,同时保留错误统计。</p><strong>connect · read · write · timeout</strong></article></div></section>
<section id="compare" class="contrast"><div class="section wrap"><p class="eyebrow lime">02 / 为什么是 RLOAD</p><h2>兼容 wrk。<br><em>回放更多现实。</em></h2><div class="table"><div class="thead"><span>能力</span><span>wrk 4.2.0</span><span>rload 0.1.1</span></div><div><span>静态HTTP压测</span><b>✓</b><b>✓</b></div><div><span>HTTPS + TLS验证</span><b>—</b><b>✓</b></div><div><span>Nginx日志回放</span><b>—</b><b>✓</b></div><div><span>JSONL body/header</span><b>—</b><b>✓</b></div><div><span>seeded random</span><b>Lua</b><b>✓</b></div><div><span>Lua/LuaJIT脚本</span><b>✓</b><b class="muted">首期不支持</b></div></div></div></section>
<section id="install" class="section wrap install"><div><p class="eyebrow">03 / 开始使用</p><h2>一条命令,<br><em>得到第一个信号。</em></h2><p class="section-lead">从crates.io安装最新版本,或从GitHub Releases获取发布包。</p><div class="links"><a href="https://crates.io/crates/rload">crates.io ↗</a><a href="https://docs.rs/rload">docs.rs ↗</a><a href="https://github.com/wenhaozhao/rload/releases">GitHub Releases ↗</a></div></div><pre class="install-code"><code><span># 安装</span><br>cargo install rload<br><br><span># 压测服务</span><br>rload -t2 -c10 -d30s https://api.example.com<br><br><span># 回放生产流量</span><br>rload --access-log ./access.log https://staging.example.com</code></pre></section></main>
<footer class="footer wrap"><a class="logo" href="#top"><b>r</b>load</a><span>Rust-native load generation for real traffic.</span><div><a href="https://github.com/wenhaozhao/rload">GitHub</a><a href="https://github.com/wenhaozhao/rload/blob/main/RELEASE_PLAN.md">Roadmap</a></div></footer></body></html>