Releases: zoxy-io/zoxy
Releases · zoxy-io/zoxy
Release list
v0.0.9
What's Changed
- chore: ignore worktrees by @floatdrop in #155
- config: reject a dial budget that does not sit below the idle one (§5) by @floatdrop in #156
- Update README to remove project description line by @floatdrop in #157
- bench: fix the overload stall gate, then move the generator to zrk v1.4.1 (§9) by @floatdrop in #158
- Code review cleanup: stale comments and duplication by @floatdrop in #160
- docs: record why the loopback harness cannot saturate zoxy (§9) by @floatdrop in #161
- The operator sizes their deployment: eight config-shape ceilings removed by @floatdrop in #163
- chore(release): bump version to 0.0.9 by @floatdrop in #164
Full Changelog: v0.0.8...v0.0.9
v0.0.8
What's Changed
- config: let the shipped example demonstrate the defaults, not restate them by @floatdrop in #152
- main: say which build this is, not just which release it claims to be (§9) by @floatdrop in #153
- chore(release): bump version to 0.0.8 by @floatdrop in #154
Full Changelog: v0.0.7...v0.0.8
v0.0.7
What's Changed
- config: a working config is a listener and a cluster (§5, §8) by @floatdrop in #149
- chore(release): bump version to 0.0.7 by @floatdrop in #151
Full Changelog: v0.0.6...v0.0.7
v0.0.6
What's Changed
- shed: keep the connection when the stream allows it, and show the wall coming (§8) by @floatdrop in #101
- bench: close the c10k revisit of the Conn layout, and gate the measurement tools (§9) by @floatdrop in #102
- counters: say which syscall failed and why, not just that something did (§8) by @floatdrop in #103
- io: EPIPE on send is the peer leaving, not kernel pressure (§8) by @floatdrop in #104
- docs: the pool-ceiling decision, and retire a fork-queue item (§1, §5) by @floatdrop in #105
- constants: give the upstream pool a range, not just a wall (§1, §5) by @floatdrop in #107
- constants: pin the upstream ceiling to the conn ceiling (§1, §5) by @floatdrop in #108
- http: give §8 a rung that sheds on time, not exhaustion (§8) by @floatdrop in #109
- bench: move the profiler to zrk 1.3.1, and size both pools for c10k (§9) by @floatdrop in #110
- teardown: close synchronously once the armed set drains (§5, §8) by @floatdrop in #111
- bench: refuse to profile a busy box, and make the §8 deadline measurable (§9) by @floatdrop in #113
- docs: reject the hand-rolled short copy in the head render (§7, §9) by @floatdrop in #114
- sim: split the gate, close the injector and seam-coverage gaps (#106) by @floatdrop in #112
- Raise upstream_slots_default to the fd-budget ceiling (1314) by @floatdrop in #116
- bench: report what the ring did, not just what the CPU did (§9) by @floatdrop in #115
- release: build x86_64 release binaries at -Dcpu=x86_64_v3 (AVX2) by @floatdrop in #117
- sim: the origin oracle measures one request, not a connection's life (§5, §7, §9) by @floatdrop in #118
- sim: a failing night reports its whole block, not the first seed (§9) by @floatdrop in #119
- sim: restart the soak's sweep, and name the epoch that decides it (§9) by @floatdrop in #120
- docs: retire PLANS.md, split planned work into GitHub issues by @floatdrop in #126
- log: one JSON access line per exchange and per L4 connection (§8) by @floatdrop in #129
- health: active TCP health checks for upstream endpoints (§5, §7, §9) by @floatdrop in #127
- health: HTTP checks, and fall/rise as config (§5, §7, §9) by @floatdrop in #130
- lb: rendezvous hashing for client-to-backend stickiness (§7) by @floatdrop in #131
- docs: document the whole config surface, not the last two features added by @floatdrop in #135
- lb: max_inflight — cap the work one endpoint may be asked to carry (§7, §8) by @floatdrop in #136
- config: accept a root
$schemaeditor hint instead of rejecting it (§5) by @floatdrop in #145 - ci: tell zoxy.io to refresh /config when a release publishes by @floatdrop in #146
- sim: the sweep gates its own reach, not just each seed's outcomes (§9) by @floatdrop in #143
- http: tell the origin who the client is, on the operator's terms (§7) by @floatdrop in #141
- style: bring two functions back under the 70-line limit (§9) by @floatdrop in #147
- chore(release): bump version to 0.0.6 by @floatdrop in #148
Full Changelog: v0.0.5...v0.0.6
v0.0.5
What's Changed
- http: classify a header name once, not once per decision (§7, §9) by @floatdrop in #94
- http: reserve a header line once, not four times (§7, §9) by @floatdrop in #95
- docs: name the stall, and stop overclaiming the memory budget (§3, §5) by @floatdrop in #96
- http: decide Connection nomination once, not once per pass (§7, §9) by @floatdrop in #97
- http: canonicalize a target once per request, not twice (§7, §9) by @floatdrop in #98
- http: give the asterisk-form rule one home (§7) by @floatdrop in #99
- chore(release): bump version to 0.0.5 by @floatdrop in #100
Full Changelog: v0.0.4...v0.0.5
v0.0.4
What's Changed
- Cut conn_ops_max 5 → 4: lift the c10k ceiling to 14074 (§8) by @floatdrop in #64
- bench: repin zrk to v1.1.1, zoxy-io/zrk by @floatdrop in #67
- Guard the deadline expiry behind the rebase cancel (#65) by @floatdrop in #68
- docs: retire the CPU worker seam — TLS runs on the loop (§1, §3, §5, §8) by @floatdrop in #69
- docs: plan the prefactoring Phase 3a asked for (PLANS) by @floatdrop in #70
- refactor: one protocol fork, callable twice (§6, §7 — PLANS A5) by @floatdrop in #71
- refactor: pair conn-slot release with its pressure update (§5, §8 — PLANS A4) by @floatdrop in #72
- refactor: name the forwarding debt on a direction (§6, §7 — PLANS B2) by @floatdrop in #73
- refactor: give the pump a transform seam, identity for every user (§4, §6 — PLANS B1) by @floatdrop in #74
- test: prove the transform seam with a non-identity transform (§4, §6, §9 — PLANS B5) by @floatdrop in #76
- refactor: one channel for every client-directed write (§7, §8 — PLANS B3) by @floatdrop in #78
- refactor: name what a head source replaces (§4, §7 — PLANS B4) by @floatdrop in #79
- refactor: close out Tier A — lint boundaries as data, pools that may be empty (PLANS A3, A1) by @floatdrop in #80
- refactor: close out Tier C — a self-summing gate identity, named pool sizes (PLANS C2, C1) by @floatdrop in #81
- bench: gate achieved rate against offered, and band a bulk body (§9 — PLANS D1, D2) by @floatdrop in #83
- bench: gate every band by reflection, not by a list to keep in step (§9) by @floatdrop in #86
- net: let a transform say its stream ended, not just paused (§4, §6) by @floatdrop in #85
- http: witness the separately-written response excess (§7, §8) by @floatdrop in #88
- test: pin the four head-boundary arms no gate reached (§7) by @floatdrop in #89
- sim: make the socket ring a per-scenario cap, not a ceiling (§9) by @floatdrop in #91
- perf: stop zeroing 2 KiB per request, and stop profiling nothing (§9) by @floatdrop in #92
- chore(release): bump version to 0.0.4 by @floatdrop in #93
Full Changelog: v0.0.3...v0.0.4
v0.0.3
v0.0.2
What's Changed
- refactor(net): extract shared recv→send body pump (§6, §7) by @floatdrop in #59
- Admin/metrics listener: Prometheus scrape endpoint (§8, PLANS.md Phase 2.5) by @floatdrop in #60
- feat: operator-selectable concurrency via the io_uring CQSIZE c10k lever by @floatdrop in #61
- Make the ⅞ CQ fill an operator-tunable default (§8) by @floatdrop in #62
Full Changelog: v0.0.1...v0.0.2
v0.0.1
What's Changed
- ci(release): use the HOMEBREW_TAP_DEPLOY_KEY secret name by @floatdrop in #56
- fix(l7): suppress keep-alive under relay pressure only (§8) by @floatdrop in #58
Full Changelog: v0.0.0...v0.0.1
v0.0.0
This is a test of release workflows.
Full Changelog: https://github.com/zoxy-io/zoxy/commits/v0.0.0
What's Changed
- cleanup: mechanical TigerStyle fixes + TLS heap overflow guard by @floatdrop in #1
- refactor(test): extract OneShotClient + TestHarness (−485 lines in proxy.zig) by @floatdrop in #2
- refactor: decompose all oversized functions under the 70-line limit by @floatdrop in #3
- fix: strip hop-by-hop response headers on the close path by @floatdrop in #4
- docs: adopt Zig reference naming convention over blanket snake_case by @floatdrop in #5
- refactor(tls): extract a shared WireRelay for the TLS wire driver by @floatdrop in #6
- feat(config): JSON Schema export + strict parsing (Phase 6 slice 1) by @floatdrop in #7
- feat(nix): package zoxy as a flake for NixOS by @floatdrop in #8
- feat(config): SIGHUP config reload via supervised self-relaunch (Phase 6 slice 2) by @floatdrop in #9
- docs(readme): update status to Phase 5/6 (HTTP/2 + config schema/reload) by @floatdrop in #10
- feat(config): Zoxyfile DSL that lowers to JSON (Phase 6 slice 3) by @floatdrop in #11
- docs(readme): lead configuration with the Zoxyfile, JSON + schema after by @floatdrop in #12
- docs: bring in mention of L4 proxying (planned) by @floatdrop in #13
- feat(config): IPv6 and hostname endpoint resolution by @floatdrop in #14
- chore(nix): drop the NixOS package, module, and flake-check CI job by @floatdrop in #15
- chore(dev): add devenv, activate it from .envrc by @floatdrop in #16
- feat(config): add worker count option for reproducible benchmarks by @floatdrop in #17
- feat(config): gate all logging behind an opt-in flag by @floatdrop in #18
- feat(config): make connections_max a tunable config knob by @floatdrop in #19
- chore: introduce packed struct for flags in ProxyConn by @floatdrop in #21
- docs: draft architecture overview before refactoring by @floatdrop in #23
- Libxev by @floatdrop in #29
- perf: raise L4 connection ceiling to the completion-queue limit by @floatdrop in #31
- feat: set SO_REUSEPORT on listen sockets for process-per-port scale-out by @floatdrop in #33
- feat: relay-buffer pressure watermark shrinks idle timeouts before the wall by @floatdrop in #32
- feat: cap connection age with a max-lifetime deadline by @floatdrop in #34
- feat: witness kernel pressure on the relay data path by @floatdrop in #35
- refactor: extract the round-robin endpoint pick into a load-balancing policy by @floatdrop in #36
- ci: cache the Nix store and pull devenv from a binary cache by @floatdrop in #37
- ci: bump cachix-action to v17 (Node 24) by @floatdrop in #38
- perf: coarse deadline clock + pinned
zig build profileby @floatdrop in #39 - docs: record the CQE-reaping null result in DESIGN §4 by @floatdrop in #40
- chore: point the libxev pin at zoxy-io/libxev by @floatdrop in #41
- ci: keep perf/flamegraph for developers, drop them from the CI closure by @floatdrop in #42
- ci: gate zls/nginx/haproxy/poop out of the CI closure by @floatdrop in #43
- ci: pin devenv to v2.1.2 (deterministic install) by @floatdrop in #44
- ci: persist the Nix store on the coverage job (kill the ldexpl.c flake) by @floatdrop in #45
- docs: split DESIGN.md into design, plans, and implementation notes by @floatdrop in #46
- Phase 1: the L7 HTTP/1.1 reverse proxy — trust boundary, state machine, and simulation gate by @floatdrop in #47
- test(l7): gate the keep-alive reuse turnaround for zero allocation (§9) by @floatdrop in #48
- bench: add the Connection: close scenario to the Tier-1 bands (§9) by @floatdrop in #49
- Path routing: canonical-path longest-prefix tables (§7) by @floatdrop in #50
- Host routing: the route table's outer dimension (§7) by @floatdrop in #51
- feat(filter): §7 programmable filters by @floatdrop in #52
- Phase 2: shedding hardening + minimal resilience by @floatdrop in #54
- Generate config JSON Schema and ship it as a release asset (#53) by @floatdrop in #55
Full Changelog: https://github.com/zoxy-io/zoxy/commits/v0.0.0