Repository navigation
Releases: eggstack/eggserve
Release list
0.5.0 release line
0.5.0 release line (Plan 305)
Rust artifacts (crates.io):
- eggserve-primitives 0.2.3 (
378f63b29a0019e028d57d85c9be10a5605084ad1267aec7845af5ae4ebe0cd1) - eggserve-server 0.5.0 (
a43e40e45fe5b40eb9af2c4f7481d3645dc7d612b660a4f4cdf82348934a141a) - eggserve-static 0.5.0 (
831083fbe104282bd7b03685c755a74246c3b822e442fa36c7b7610369b6fc81) - eggserve-h3 0.5.0 (
ca36bc53c7b97f1b116f19c999adea22c1f5a8f0f6a4ef98c66554d3fb373ce0) - eggserve-core 0.5.0 (
c55ab91cc304ba45fc9d2d0a87fc136e2b0d795234d5c01b1ad059dde1851de9) - eggserve-bin 0.2.3 (
0cdd61605e470a16053834b25c2007fbe4d6f9b634d3adb6ed81f6de9eca3590)
This is the corrective line. The 0.4.0 line shipped on 2026-09-25 without the defect batch that landed in the repository immediately after the v0.4.0 tag, so the published 0.4.0 crates carry the conditional-request, header-combining, framing-strictness, fail-closed-negotiation, confinement-inheritance, and Python callback-permit defects. This line publishes that batch.
Highlights:
- Conditional requests:
If-Match: *requires an ETag (RFC 9110 13.1.1); unsatisfiableRangewith a failedIf-Rangeserves200full (13.1.5); header combining is first-wins exceptIf-Match/If-None-Match. - Framing: strict
1*DIGITContent-Length(a non-numeric value is a400);Http1Upgraderequires a protocol; an opaqueExpectis417. - Fail-closed:
version_to_httpandfrom_statereturnResultinstead of panicking or silently downgrading. - Confinement: child resolution inherits the confined backslash policy; fd-relative resolution re-applies the platform component checks.
- Durability: a buffer-export failure fails the stream instead of truncating it silently; shutdown drain is bounded by
graceful_shutdown_timeout. - One runtime-error authority:
eggserve-primitives::canonical::runtime_error_with_policyreplaces two parallel builders; the wire output is proven byte-identical across a 44-cell matrix. - The Plan 253 connection-overlap ledger is corrected, measured, and machine-checked by a drift bound in the topology gate; the HTTP/3
Alt-Svcadvertisement policy is single-sourced ineggserve-primitives. - The compatibility
RuntimeConfignow carries the four direct-H1 ownership values with unchanged defaults; its builder delegates 37 of its 38 shared setters to the direct builder. This is source-incompatible for exhaustiveRuntimeConfigstruct literals (the Plan 285 class), which is why the line is a minor bump — see the migration guide. - Dependency advisories: the resolved
rustls,rustls-webpki, andquinn-protoversions are patched (the manifest requirement floors are unchanged). - crates.io metadata: the README's repository links are absolute (relative links were rewritten by crates.io into 404s), docs.rs renders the feature-gated surfaces, and the two crates whose inherited keywords misdescribed them now declare accurate ones.
H2/H3 tiers unchanged. Safe defaults unchanged (loopback bind, path confinement, no symlinks, no dotfiles, no directory listing).
Wheel: eggserve 0.2.5 ships the 0.5.0 Rust code via the release workflow (PyPI).
Source: 326aa1e. Hosted CI 39794834966 (rust, supply-chain, python) green on the exact SHA. Evidence: plans/closure/direct-h1-runtime/305-corrective-040x-publication.md.
0.4.0 release line
0.4.0 release line (Plan 300)
Rust artifacts (crates.io):
- eggserve-primitives 0.2.2 (
78fd797e45a374bfa419bc75f7e497653ce25e24cde0e771cc332e267f18355c) - eggserve-server 0.4.0 (
fb601019a2914ae99f264640b66c80496a67b7ea3315fd0809747d4f22327e40) - eggserve-static 0.4.0 (
c53bf2f2d92e660940676eb8b6bdff2ceae5ccaa8a056f14) - eggserve-h3 0.4.0 (
ee9b47c7ca050cea49c40eb1fe6489948948b6d666fc3b2386983ef333c55f8a) - eggserve-core 0.4.0 (
5cf75d63bdfbfa70a92c7884220addf032382099d3adabbd1bd38c0e798e48a7) - eggserve-bin 0.2.2 (
c2e325351425331e9d6b330b0edb1c73ef4a0fccba3e4a85df617dabb3db4e45)
Highlights: direct-Tower feature edge (tower no longer activates tower-layer; downstream Layer authors depend on tower-layer directly) and H1 response-trailer wire delivery via head-time TrailerDeclaration (undeclared H1 sources suppressed before polling). H2/H3 tiers unchanged. Registry-only consumer proof: direct, Tower/Axum, and core-compat fixtures pass against the exact published versions with a core/static/PHF-free direct graph.
Wheel: eggserve 0.2.4 ships the 0.4.0 Rust code via the release workflow (TestPyPI qualification, then PyPI).
Source: d537d4d. Hosted CI 36176532051 (rust, supply-chain, python) green. Evidence: plans/closure/direct-h1-runtime/300-release-0-4-0-publication.md.
eggserve 0.2.0
EggServe 0.2.0 — pre-1.0 line (never publish this line as 0.1.x).
Python wheels (PyPI): one cp311-abi3 wheel per platform for GIL-enabled CPython 3.11-3.15 (3.15 proven on 3.15.0rc2; free-threaded unsupported). 10 required targets: manylinux x86_64/AArch64/ARMv7, musllinux x86_64/AArch64/ARMv7, macOS x86_64/arm64 (deployment floor 11.0), Windows x86_64/ARM64.
Rust crates (crates.io): eggnet-tls, eggserve-primitives, eggserve-server, eggserve-static, eggserve-h3, eggserve-core, eggserve-bin — all at 0.2.0.
Qualification evidence: release/plan-269-wheel-release-execution-closure.md (no-publish closure) plus Release run 35792969150 (publish run: full pre-publication graph green, PyPI upload success, post-publish binary-only smoke green). Migration guidance: docs/migration-guide.md.