WreathBrowse
Start

v0.3.4#

Wreath 0.3.4 rebuilds the documentation around complete systems and reduces the instruction and cache cost of the native request path. It is a patch release with no intentionally removed or renamed documented API.

Documentation#

  • The documentation now starts from nine complete systems: a secure product API, energy depot, device fleet, automation backplane, MCP control room, enterprise control plane, time-series laboratory, flash-sale storefront and offline field service. Each story introduces the failure or contention boundary before connecting it to Wreath's public owners.
  • The previous collection of overlapping guides, recipes, plans and generated inventories is replaced by one start path, 19 task-oriented guides and nine generated reference areas. The reference build resolves the installed public objects, so stale imports and renamed surfaces fail the documentation build.
  • The deployment guide now keeps installation, wheel capabilities, health, shutdown, migrations and rollback in one production runbook. A separate version page states the CPython 3.14 wheel matrix and pre-1.0 upgrade contract.
  • The README is shorter and leads its cache comparison with absolute misses per request. Benchmark evidence and development baselines live with the benchmark and tooling sources instead of inside the published documentation.

Performance#

  • Parsed request headers now build one lazy native lookup index shared by first-class policy and Request, rather than rebuilding equivalent lookup structures as the request crosses those boundaries.
  • Native policy descriptors are lowered to direct execution fields at startup, removing repeated tuple traversal from the request path.
  • Prepared chart data retains a compact projection plan across numeric and text materialisation. cache=False still returns a fresh result, but no longer repeats row selection and downsampling for the same projection shape.
  • Prepared templates can render their dynamic prefix and stable gzip fragment tail into one native allocation, avoiding the intermediate complete body.

Across the complete 0.3.3-to-0.3.4 change, the holistic TLS HTTP/1 request workload fell from 4.038 million to 1.878 million median retired userspace instructions per request (53.48% fewer). Median L1 data-cache misses fell from 54,502 to 32,671 (40.06% fewer) and L2 request misses fell from 80,055 to 57,656 (27.98% fewer). L1 instruction-cache misses remained effectively flat: the before and after ranges overlap, and the medians differ by 1.50%.

The comparison uses seven alternating N/N2 process slopes on the same pinned Intel performance core, with exact response verification and a same-size A/A control. It is a request-cost result, not a throughput claim.

Compatibility#

  • Existing calls keep their behaviour. No documented public class, function or method was removed or renamed.
  • ChartData.project_chart() and ChartData.project_chart_text() add an optional cache= keyword. It defaults to True; pass False when each call must return a newly materialised final result while still reusing the compiled projection plan.
  • The base, Linux reactor and HTTP/3 packages remain version-locked and continue to target regular CPython 3.14.
esc
↑↓ navigate↵ openesc close