Skip to content

Releases: zoxy-io/zoxy

v0.0.9

Choose a tag to compare

@github-actions github-actions released this 01 Aug 17:53

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

Choose a tag to compare

@github-actions github-actions released this 01 Aug 05:15
2a0d539

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

Choose a tag to compare

@github-actions github-actions released this 31 Jul 22:24
6e6c832

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

Choose a tag to compare

@github-actions github-actions released this 31 Jul 21:23
0530b6b

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 $schema editor 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

Choose a tag to compare

@github-actions github-actions released this 27 Jul 02:14

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

Choose a tag to compare

@github-actions github-actions released this 26 Jul 15:50

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

Choose a tag to compare

@github-actions github-actions released this 21 Jul 13:44

What's Changed

Full Changelog: v0.0.2...v0.0.3

v0.0.2

Choose a tag to compare

@github-actions github-actions released this 21 Jul 12:57

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

Choose a tag to compare

@github-actions github-actions released this 21 Jul 01:18

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

Choose a tag to compare

@github-actions github-actions released this 20 Jul 19:44
368461f

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 profile by @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