Skip to content

[pull] master from fcsonline:master#38

Open
pull[bot] wants to merge 77 commits into
kubestone:masterfrom
fcsonline:master
Open

[pull] master from fcsonline:master#38
pull[bot] wants to merge 77 commits into
kubestone:masterfrom
fcsonline:master

Conversation

@pull

@pull pull Bot commented Jul 9, 2022

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

fcsonline and others added 4 commits July 9, 2022 17:08
It is really interesting to hold the request status codes to be able to
interact with them. For example assertion but it can be nice for other
flow paths.
Fix clippy offenses in the source code and enable GH action check for
clippy.
@pull pull Bot added the ⤵️ pull label Jul 10, 2022
fcsonline and others added 25 commits July 10, 2022 11:47
Allows to pick a subset of items from with_items.
Pick limits the amount of requests done instead of doing one for each item.
When used in conjunction with shuffle it can be used to send one request with a random item from the list.

Resolves #131
Bumps [qs](https://github.com/ljharb/qs) from 6.5.1 to 6.11.0.
- [Release notes](https://github.com/ljharb/qs/releases)
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](ljharb/qs@v6.5.1...v6.11.0)

---
updated-dependencies:
- dependency-name: qs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Found via `typos --format brief`
Added some extra code to cover more cases in the new interpolator
mechanism. Also, fixing some clippy offenses too.
It seems that items that were included with the `include` directive and
contains tags, they are ignored.

Trying to fix this.

Issue:
#164
fcsonline and others added 30 commits December 28, 2025 11:17
Bumps [hashbrown](https://github.com/rust-lang/hashbrown) from 0.15.0 to 0.15.5.
- [Release notes](https://github.com/rust-lang/hashbrown/releases)
- [Changelog](https://github.com/rust-lang/hashbrown/blob/master/CHANGELOG.md)
- [Commits](rust-lang/hashbrown@v0.15.0...v0.15.5)

---
updated-dependencies:
- dependency-name: hashbrown
  dependency-version: 0.15.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [hickory-proto](https://github.com/hickory-dns/hickory-dns) from 0.24.1 to 0.24.4.
- [Release notes](https://github.com/hickory-dns/hickory-dns/releases)
- [Changelog](https://github.com/hickory-dns/hickory-dns/blob/main/CHANGELOG.md)
- [Commits](hickory-dns/hickory-dns@v0.24.1...v0.24.4)

---
updated-dependencies:
- dependency-name: hickory-proto
  dependency-version: 0.24.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.40.0 to 1.43.1.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](tokio-rs/tokio@tokio-1.40.0...tokio-1.43.1)

---
updated-dependencies:
- dependency-name: tokio
  dependency-version: 1.43.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [cookie](https://github.com/jshttp/cookie) to 0.7.2 and updates ancestor dependencies [cookie](https://github.com/jshttp/cookie), [cookie-parser](https://github.com/expressjs/cookie-parser), [express](https://github.com/expressjs/express) and [express-session](https://github.com/expressjs/session). These dependencies need to be updated together.


Updates `cookie` from 0.3.1 to 0.7.2
- [Release notes](https://github.com/jshttp/cookie/releases)
- [Commits](jshttp/cookie@v0.3.1...v0.7.2)

Updates `cookie-parser` from 1.4.3 to 1.4.7
- [Release notes](https://github.com/expressjs/cookie-parser/releases)
- [Changelog](https://github.com/expressjs/cookie-parser/blob/master/HISTORY.md)
- [Commits](expressjs/cookie-parser@1.4.3...1.4.7)

Updates `express` from 4.18.2 to 4.22.1
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/v4.22.1/History.md)
- [Commits](expressjs/express@4.18.2...v4.22.1)

Updates `express-session` from 1.15.6 to 1.18.2
- [Release notes](https://github.com/expressjs/session/releases)
- [Changelog](https://github.com/expressjs/session/blob/master/HISTORY.md)
- [Commits](expressjs/session@v1.15.6...v1.18.2)

---
updated-dependencies:
- dependency-name: cookie
  dependency-version: 0.7.2
  dependency-type: indirect
- dependency-name: cookie-parser
  dependency-version: 1.4.7
  dependency-type: direct:production
- dependency-name: express
  dependency-version: 4.22.1
  dependency-type: direct:production
- dependency-name: express-session
  dependency-version: 1.18.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [crossbeam-channel](https://github.com/crossbeam-rs/crossbeam) from 0.5.13 to 0.5.15.
- [Release notes](https://github.com/crossbeam-rs/crossbeam/releases)
- [Changelog](https://github.com/crossbeam-rs/crossbeam/blob/master/CHANGELOG.md)
- [Commits](crossbeam-rs/crossbeam@crossbeam-channel-0.5.13...crossbeam-channel-0.5.15)

---
updated-dependencies:
- dependency-name: crossbeam-channel
  dependency-version: 0.5.15
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps every dependency to the latest release, including four that
required code changes:

- clap 2 -> 4: migrate the builder API (App -> Command, Arg::with_name
  -> Arg::new, takes_value -> ArgAction, value_of/is_present ->
  get_one/get_flag).
- rand 0.8 -> 0.10: thread_rng() -> rand::rng().
- colored 2 -> 3 and reqwest 0.12 -> 0.13 (drop-in).

reqwest 0.13 defaults to rustls, so OpenSSL is no longer needed: the
openssl-sys dependency and the `vendored` feature are removed, and the
`trust-dns` feature is replaced with its successor `hickory-dns`. The
README's OpenSSL build instructions are updated accordingly.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- request.rs: replace is_some()/unwrap() with if-let (clippy 1.96's
  unnecessary_unwrap fires on the newer toolchain CI uses).
- release.yml: bump the release toolchain from 1.83.0 to stable; the
  updated deps pull in edition-2024 crates (e.g. cpufeatures 0.3.0,
  rust-version 1.85) that 1.83.0 cannot parse.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Runs `npm audit fix` on the example server, resolving all 4 reported
advisories (1 high, 3 moderate):

- path-to-regexp 0.1.12 -> 0.1.13 (ReDoS, GHSA-37ch-88jc-xwx2)
- qs 6.14.0 -> 6.15.2 (DoS, GHSA-w7fw-mjwx-w883 and others)
- body-parser 1.20.4 -> 1.20.5, express 4.22.1 -> 4.22.2

`npm audit` now reports 0 vulnerabilities. Only package-lock.json
changes; the version ranges in package.json already allowed the fixed
releases. Supersedes the Dependabot PRs for qs and path-to-regexp
(which only bumped qs to 6.14.2, still within the vulnerable range).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add a "Max time per request" line to both the per-task and global
statistics blocks. The output previously stopped at the 99.9th
percentile, which hides the true worst-case latency. The value is
read from the existing hdrhistogram via `max()`, so no extra
bookkeeping is needed.

Closes #188

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
* Migrate to Rust 2024 edition

Bump the package edition from 2021 to 2024. `cargo fix --edition` found
no source migrations were necessary, so the only changes are the edition
field in Cargo.toml and rustfmt's 2024 style-edition import ordering.

Building now requires Rust 1.85+ (the toolchain that stabilized the 2024
edition). CI builds on stable, well past that.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Collapse nested ifs into let-chains for edition 2024

Under edition 2024, clippy's `collapsible_if` (on current stable) flags
`if let X { if cond { .. } }` because it can now be written as a single
let-chain `if let X && cond { .. }`. Apply clippy's machine-applicable
fix across the expandable helpers and tags, keeping behavior identical.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
The .claude/scheduled_tasks.lock file was accidentally committed in
#229. It is local Claude Code tooling state, not part of the project.
Untrack it and add .claude to .gitignore so it is not re-added.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
#227)

drill stopped its timer as soon as the response headers arrived
(`client.execute().await`), but reqwest streams the body lazily, so
body-transfer time was never measured. The body was only read when a
request used `assign`, and even then after the timer had already stopped.
Endpoints serving non-trivial bodies (files, large JSON) were reported as
completing far faster than they really did.

Read the full response body before stopping the timer, so latency now
measures time-to-last-byte, matching wrk, k6 and vegeta. Status, headers
and cookies are snapshotted into an owned struct before the body stream is
consumed.

The body is drained one chunk at a time and only buffered when a request
uses `assign` (then decoded with the response Content-Type charset, via
encoding_rs, as reqwest's `text()` did); otherwise each chunk is dropped as
it arrives, so peak memory stays O(chunk) rather than O(body) for large
responses. Timing and keep-alive are unchanged -- the body is still read to
the last byte.

Adds regression tests: a server that delays its body (latency must include
the delay) and a 1 MiB non-assign body (drained but not retained).

Fixes #74.
…ixes #186) (#232)

`index` is only seeded inside with_items / with_items_range /
with_items_from_csv / with_items_from_file requests. Referencing it elsewhere
panicked (or warned under --relaxed-interpolations) with a generic
"Unknown 'index' variable" message that gave no clue about the cause.

Detect that specific case and raise a dedicated message explaining the
variable's scope and suggesting `iteration` for the current iteration number.
Also document the built-in interpolation variables in SYNTAX.md.
Bumps [rustls-webpki](https://github.com/rustls/webpki) from 0.103.8 to 0.103.13.
- [Release notes](https://github.com/rustls/webpki/releases)
- [Commits](rustls/webpki@v/0.103.8...v/0.103.13)

---
updated-dependencies:
- dependency-name: rustls-webpki
  dependency-version: 0.103.13
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.