Kristofers Solo 0da83f231b feat(runner): implement concurrent benchmark execution
- Add tokio::Semaphore for bounded parallelism
- Split benchmark into sequential warmup and parallel measured phases
- Refactor to spawn_benchmark_tasks() and spawn_single_iteration()
- Add write_results() to aggregate and output records
- Use u32 for CLI arguments (iters, warmup, concurrency, payload_bytes)
2026-02-04 10:27:37 +02:00
2026-02-03 14:03:21 +02:00
2026-01-27 13:24:45 +02:00
2026-01-26 16:23:31 +02:00
2026-01-26 16:23:31 +02:00
2026-01-26 16:48:51 +02:00

tls-pq-bench

Reproducible benchmarking harness for comparing TLS 1.3 key exchange configurations:

  • Classical: X25519
  • Hybrid PQ: X25519MLKEM768 (via rustls + aws_lc_rs)

Primary metrics:

  • Handshake latency
  • TTLB (Time-to-Last-Byte)

Secondary metrics:

  • CPU cycles (perf)
  • Memory behavior (optional: Valgrind/Massif)
  • Binary size (optional)

This repo is intended as the implementation for the empirical part of the bachelor thesis (following the course thesis methodology).

Non-goals

  • Not a general-purpose TLS load tester
  • Not a cryptographic audit tool
  • Not a middlebox compatibility test suite (can be added later)

Quick start (local dev)

  1. Install Rust stable and Linux tooling:
    • perf, tcpdump (optional), jq, python3
  2. Build:
    • cargo build --release

Reproducibility notes

All experiments should record:

  • commit hash
  • rustc version
  • CPU model and governor
  • kernel version
  • rustls and aws-lc-rs versions
  • exact CLI parameters and network profile

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Description
No description provided
Readme 288 KiB
Languages
Rust 97%
Just 2.6%
Shell 0.4%