-
v0.6.2 - Fable validation + security exam Pre-Release
released this
2026-06-09 16:45:11 -04:00 | 10 commits to main since this releaseFull-codebase review and polish pass — every loose end finished or removed, the serving hot paths optimized, and the dependency tree refreshed for reliability. No behavior changes for working clients; legacy clients get clearer protocol errors.
Performance (per-boot hot paths)
- Zero-copy iPXE serving — TFTP and HTTP now serve the embedded boot binaries straight from the binary's rodata instead of heap-copying ~1 MiB per request.
- PXE menu background cached — the composited
console --picturePNG was re-encoded (~50–200 ms) for every booting client; it's now composed once per logo change. - bcrypt off the async runtime — boot-password checks and login/setup/rotation run on the blocking pool, so CPU-heavy auth can't stall ISO streaming to imaging machines.
- Per-range-request overhead halved on
/iso/…(single registry lock + clone instead of two), O(1) DHCP driver-escalation bookkeeping, one-allocation MAC formatting, and a fixed introspection buffer that no longer forces a guaranteed 32 MiB realloc.
Correctness & legacy-client polish
- TFTP speaks up instead of going silent: write requests get a proper Illegal TFTP operation error and non-octet (netascii) transfers a clear only octet mode is supported — legacy clients fail fast with a reason instead of retrying into a timeout.
- HTTP Range handling is now RFC 7233-correct: malformed
Range:headers are ignored (200 + full body) instead of answered with a bogus 206.
Cleanup
- Removed the never-enforced
mac_allowlist/subnet_allowlistconfig fields (line-of-sight serving is the design; nothing should advertise access control that doesn't exist). - Removed dead client-registry API and never-emitted event variants; rustfmt sweep over six drifted files.
Dependencies
- dhcproto 0.12 → 0.15 — drops the deprecated/unmaintained
trust-dns-protofrom the tree (replaced byhickory-proto) and picks up three releases of DHCP option coverage. - socket2 0.6 (dedupes the tree), bcrypt 0.19, tower-http 0.6.11 (sheds
iri-string), tokio 1.52.3 / hyper 1.10 lockfile refresh; deadnomworkspace entry deleted.
Validation
cargo fmtclean · clippy (pedantic profile) clean · all 272 workspace tests green on the new dependency stack · WebUI JS syntax-checked.Image
docker pull gitea.milesward.dev/mward4/openpxe:0.6.2:0.6.2/:latest— digestsha256:53f33a65129d1b49106f5b376c0517bcbee117fe743e22e8497a7c2f55563b99(linux/amd64).Downloads