Files
RustProxy/docs/TEST_REPORT.md
T
2026-10-07 22:22:54 +02:00

3.2 KiB

Verification report - RustProxy 0.27.3

Scope

RustProxy 0.27.3 fixes HTTP/3 HEAD cache eligibility, reduces persistent COLD-cache and rate-limit/IP memory retention, excludes rebuildable managed Python environments from backups, and updates the documented installation path. SQLite schema 8, the saved configuration format and COLD format 3 remain unchanged.

The H3 repair is intentionally narrow: cache policy already accepts both GET and HEAD; the forwarding path now performs the existing bounded empty-body probe for both methods. This prevents an initially unpolled HTTP/3 receive body from being mistaken for request content.

The COLD index no longer stores full response headers or origin validator values for every disk object. These are loaded and validated from the existing metadata JSON only on an actual COLD read. The in-memory SHA-256 is 32 bytes and the map-owned key is not duplicated inside ColdEntry. Rate limiting now groups IP buckets below one vhost string, sweeps expired fixed-window buckets during requests and periodic runtime maintenance, and shrinks sparse hash tables before allocator trimming.

Compression was reviewed but its wire behavior was not changed: it remains streaming through tower_http, uses CompressionLevel::Fastest, and does not aggregate a complete response body before encoding. Its primary RAM cost is therefore per concurrently active compressed response/codec state, not long-lived retained objects.

Application-coupled Python is now separated under scripts/runtime, scripts/build, scripts/deploy and scripts/migration; QA/dev/audit/legacy helpers live under tools/, while OPNsense/RouterOS helpers live under integrations/. Release checks validate the new paths and archive contents.

Verification status in this workspace

Rust/Cargo is not installed in this workspace. Rust-independent checks are run here; compiler/type/runtime gates and real H2/H3 protocol execution remain open until this source is checked on a Rust-enabled host.

The final status table is refreshed from the release checks performed for this archive. Static/source contracts do not substitute for Rust parsing, type checking, unit tests or real protocol runtime tests.

Release checks

Check Result
Rust/source module contracts PASS
Bounded-memory/cache/rate-limit/compression contracts PASS
Documentation and language-pack checks PASS
Web Server, security and dependency source contracts PASS
tools/checks/check_source.py PASS (compiler/runtime explicitly not verified)
tools/checks/release_smoke.py PASS
Python syntax (py_compile) for changed release scripts PASS
Browser Web Service UI regression (node tools/checks/web_service_ui_test.mjs) PASS
Docker Agent (go test ./...) PASS
./dev.sh test static/pre-compiler stages PASS
Rust cargo fmt/check/test, linking and Rust unit tests NOT VERIFIED - Cargo/Rust is not installed in this workspace
Live rebuilt HTTP/2 + HTTP/3 HEAD cache test NOT VERIFIED - requires a compiled 0.27.3 binary and QUIC-capable runtime

./dev.sh test exits with status 127 only when it reaches the Rust toolchain gate; all earlier release/static checks complete successfully.