v0.26.7
This commit is contained in:
1 parent
5d2aaeabe6
commit
9d6614c1b4
62 files changed
+558
-230
No files matched your search
@@ -1,9 +1,9 @@
|
||||
# RustProxy 0.26.6
|
||||
# RustProxy 0.26.7
|
||||
|
||||
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.26.6 release source.**
|
||||
**0.26.7 release source.**
|
||||
|
||||
## Layer-4 streams
|
||||
|
||||
@@ -11,7 +11,18 @@ 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.26.6
|
||||
## What changed in 0.26.7
|
||||
|
||||
- Show explicit HOT and COLD cache occupancy progress on `/cache`, including object-count and byte/disk limits from Cache settings plus percentage usage.
|
||||
- Preserve compatible upstream client pools across unrelated active-snapshot rebuilds so generation age, request count and `Rotations` diagnostics do not restart at zero unless the backend connection policy actually changes.
|
||||
- Keep age-based backend rotation in the maintenance loop and retain request-count rotation; compatible snapshot reuse now makes the existing counters observable over long-running processes.
|
||||
- Refresh container documentation and ship the OCI image with one pinned Certbot environment containing all RustProxy-supported DNS plugins: Cloudflare, OVH and RFC2136.
|
||||
- Review current installation/container/cache/backend lifecycle documentation for stale version or behavior statements.
|
||||
- Keep SQLite schema 8 and the saved proxy configuration format unchanged; upgrading from 0.26.6 requires no data migration.
|
||||
|
||||
0.26.7 retains the 0.26.6 access-policy and administration fixes below.
|
||||
|
||||
### Retained 0.26.6 release notes
|
||||
|
||||
- Keep backend diagnostics visible-column selection, sort key and sort direction synchronized with the account-scoped administrator preferences whenever preferences are loaded or updated.
|
||||
- Clear the ACME certificate-creation form after the issuance job finishes successfully, so successful certificates do not leave stale values while failed jobs keep the non-secret form values available for correction.
|
||||
@@ -66,7 +77,7 @@ Named HTTP/HTTPS listener bind addresses use the same chip-style editor as vhost
|
||||
- Replace backend sort text (`A-Z` / `Z-A`) with direction arrows (`↑` / `↓`).
|
||||
- Keep SQLite schema 8 and the saved proxy configuration format unchanged; upgrading from 0.26.1 requires no data migration.
|
||||
|
||||
The detailed 0.25.5 implementation audit remains available as historical baseline evidence. Current 0.26.6 verification status is maintained in [docs/TEST_REPORT.md](docs/TEST_REPORT.md).
|
||||
The detailed 0.25.5 implementation audit remains available as historical baseline evidence. Current 0.26.7 verification status is maintained in [docs/TEST_REPORT.md](docs/TEST_REPORT.md).
|
||||
|
||||
## Documentation
|
||||
|
||||
@@ -144,7 +155,7 @@ CARGO_BUILD_JOBS=1 CARGO_PROFILE_RELEASE_LTO=false \
|
||||
CARGO_PROFILE_RELEASE_CODEGEN_UNITS=8 cargo build --release --locked
|
||||
```
|
||||
|
||||
The 0.26.6 source archive preserves the resolved `Cargo.lock` supplied with the source tree and
|
||||
The 0.26.7 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
|
||||
@@ -292,17 +303,21 @@ demotes LRU/idle hot objects. Cold objects survive process restart for the same
|
||||
configuration revision and are promoted to RAM on a fresh hit. Large fill buffers grow
|
||||
incrementally and consume multiple permits. Actual process RSS also includes in-flight
|
||||
responses, compression buffers and runtime allocations. HIT/MISS/BYPASS, hit count and
|
||||
standardized RFC 9211 `Cache-Status` diagnostics are independently optional; required Age remains on cache hits. Optional `X-Cache-Resident-Age` tracks RustProxy residency and now survives revalidation/tier movement.
|
||||
standardized RFC 9211 `Cache-Status` diagnostics are independently optional; required `Age` advances on ordinary cache hits even when the origin does not send `Age`. A successful origin `304 Not Modified` starts a new freshness-age calculation, so the next `Age` may legitimately be `0`; optional `X-Cache-Resident-Age` tracks RustProxy residency across revalidation and tier movement.
|
||||
Purge is authenticated, CSRF-protected, audited and invalidates both tiers plus older
|
||||
fills. See [cache behavior and limits](docs/CACHE.md) and
|
||||
[cache diagnostics](docs/CACHE_DIAGNOSTICS.md).
|
||||
|
||||
Response compression is streamed and negotiated with Accept-Encoding; enabled
|
||||
algorithms are gzip, Brotli, Zstandard and deflate. Privacy-sensitive, ranged,
|
||||
upgraded, pre-encoded and no-transform responses are excluded. Strong ETags are
|
||||
weakened after transformation, and obsolete content digests are removed. Server
|
||||
policy is applied after generic response rules. Protected framing/identity headers
|
||||
cannot be edited through generic rules.
|
||||
Response compression is streamed and negotiated with `Accept-Encoding`; enabled
|
||||
algorithms are gzip, Brotli, Zstandard and deflate, and the selected algorithm is
|
||||
reported in `Content-Encoding` with `Vary: Accept-Encoding`. Compression is disabled
|
||||
by default and must be enabled in Settings. Privacy-sensitive, ranged, upgraded,
|
||||
pre-encoded and `no-transform` responses are excluded. Cookie-bearing requests are
|
||||
also excluded unless the response is an already accepted shared-cache HIT or a local
|
||||
static Web Server response. Strong ETags are weakened after transformation, and
|
||||
obsolete content digests are removed. Server policy is applied after generic response
|
||||
rules. Protected framing/identity headers and cache-owned `Age` cannot be edited
|
||||
through generic rules.
|
||||
|
||||
With the separate demo enabled, `/cache-demo` returns an explicitly public 30-second
|
||||
object. Enable cache and X-Cache in Settings, then issue this twice without cookies:
|
||||
@@ -383,7 +398,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.26.6.zip
|
||||
python3 make_zip.py /tmp/RustProxy-0.26.7.zip
|
||||
```
|
||||
|
||||
## New management and test-origin guide
|
||||
|
||||
Reference in new issue
Block a user