This commit is contained in:
Mateusz Gruszczyński committed 2026-10-05 10:58:50 +02:00
1 parent c819f0a335
commit e1a59f6e56
53 files changed
+817 -380

No files matched your search

+9 -10
View File
@@ -1,9 +1,9 @@
# RustProxy 0.25.5
# RustProxy 0.25.6
Independent Rust reverse proxy and static Web Server with a dashboard, SQLite configuration,
streaming HTTP/TLS/WebSocket forwarding, raw TCP/UDP stream hosts, IP-bound vhosts and backend pools.
**0.25.5 release source.**
**0.25.6 release source.**
## Layer-4 streams
@@ -11,14 +11,13 @@ Raw TCP/UDP forwarding has its own **Streams** page in the primary navigation, a
Named HTTP/HTTPS listener bind addresses use the same chip-style editor as vhost hostnames, including multi-address listeners.
## What changed in 0.25.5
## What changed in 0.25.6
- Align the **Revision history** modal with the shared dashboard dialog styling: square corners, shared backdrop/window rules and no duplicated modal-only appearance declarations.
- When a vhost enables verified Cloudflare client-IP mode, accept `CF-IPCountry` only from a direct Cloudflare edge and use that trusted country for country analytics/log capture and country policy evaluation. Invalid, duplicate, unknown or absent values fall back to the local GeoIP lookup of the verified effective client IP.
- Expand the dedicated Prometheus exporter and bundled Grafana dashboard with bounded Traffic analytics: countries, fixed User-Agent families, methods, status classes, cache outcomes, serving source, configured routes and built-in Web Server inventory/traffic. Raw client IPs, request paths and full User-Agent strings remain excluded from Prometheus labels.
- Keep SQLite schema 8 and all existing configuration formats; upgrading from 0.25.4 requires no data migration.
- Show backend Hyper client generation, generation request count, generation age and total rotations directly in the live **Backends** diagnostics table. The table consumes the same status snapshots delivered by `/api/events`, so these fields refresh alongside Active/Requests/Errors/Latency/Traffic without a second polling path.
- Keep the 0.25.5 bounded backend-client behavior: each backend client generation is recycled after 25,000 requests or one hour by default, with a 128 KiB upstream HTTP/1 adaptive read-buffer ceiling. All three limits remain configurable per vhost/backend and recycling does not reload the vhost or purge cache.
- Keep SQLite schema 8 and the existing configuration format; upgrading from 0.25.5 requires no data migration.
The 0.25.4 retained-history restore behavior remains unchanged. See [host access](docs/VHOST_ACCESS.md), [live logs and Traffic](docs/LIVE_LOGS.md), [documentation index](docs/README.md) and the [0.25.5 release audit](docs/V0.25.5_AUDIT.md). Open follow-up work is tracked separately in [TODO](docs/TODO.md).
The detailed 0.25.5 implementation audit remains available as historical baseline evidence. Current 0.25.6 verification status is maintained in [docs/TEST_REPORT.md](docs/TEST_REPORT.md).
## Documentation
@@ -95,7 +94,7 @@ CARGO_BUILD_JOBS=1 CARGO_PROFILE_RELEASE_LTO=false \
CARGO_PROFILE_RELEASE_CODEGEN_UNITS=8 cargo build --release --locked
```
The 0.25.5 source archive preserves the resolved `Cargo.lock` supplied with the source tree and
The 0.25.6 source archive preserves the resolved `Cargo.lock` supplied with the source tree and
updates only this package's own version entry. This packaging environment has no Cargo, so the
dependency graph was not re-resolved here. On the compiler-enabled deployment host, run the
locked check/test/release gates below and retain the verified lockfile. `dev.sh` can generate a
@@ -334,7 +333,7 @@ python3 scripts/release_smoke.py
# Runs those checks first, then the Rust suite when Cargo is available:
bash dev.sh test
# Source-only package, with no Git checkout required:
python3 make_zip.py /tmp/RustProxy-0.25.5.zip
python3 make_zip.py /tmp/RustProxy-0.25.6.zip
```
## New management and test-origin guide