Repository navigation
Conversation
Select server protocols at runtime with independent TLS configuration. Keep HTTP/1 without TLS as the default and reject HTTP/3 without TLS. - Reuse routing and middleware through streaming protocol adapters. - Own listener state and preserve bounded TLS shutdown and upgrades. - Add real-network framing, flow-control and lifecycle regressions. - Clear historical accessor-contract debt without weakening the audit. - Bump the published workspace from 21.13.4 to 21.13.5. BREAKING CHANGE: Stream stores a boxed Transport rather than TcpStream. WebSocketFrame fin/mask and Proxy port getters now return values instead of references. Downstream TCP-specific access and dereferences must be updated. Public accessor fields also gain direct field access.
added 5 commits
October 18, 2026 09:49
Replace protocol type annotations with crate-private aliases and remove function-body blank lines without changing execution behavior. Restore the root and core READMEs byte-for-byte to the fixed PR baseline. The complete 21.13.6 worktree passed check, strict Clippy, 822 tests and three parallel runs of all 87 protocol tests. The matching isolated committed tree passed all 54 standards checks through real hooks. Formal performance acceptance is still pending; keep PR 47 as a draft.
Update the shared package version and all nine local dependency versions. All nine workspace packages inherit the same version. README bytes remain unchanged from the fixed PR baseline. Formal performance acceptance is still pending; this does not authorize a merge or publication.
…dencies Replace long internal signatures with responsibility-specific carriers. Update the 16 ctares workspace dependency declarations to 10.2.8. Preserve runtime protocol selection, independent TLS and streaming. The fixed R3 performance cohort is complete but did not pass its gate. Retain the invalid and inconclusive observations; keep PR #47 a draft.
Synchronize all nine local package requirements with the workspace version. Keep every README unchanged and retain the performance merge blocker.
Keep the workspace package version at 21.13.7 and retain the explicit ctares 10.2.8 upgrades. Restore the nine local path requirements to their pre-bump values; the release workflow owns synchronization. The failed R3 cohort remains historical evidence for the earlier manifest. No current-source performance acceptance is claimed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add real server-side TLS, HTTP/2 and HTTP/3 selected at runtime through
ServerConfig. HTTP/1 without TLS remains the default. TLS is configured independently, without Cargo features for protocol selection.Changes
ServerProtocol::{Http1,Http2,Http3}and optionalTlsConfig, preserving the three-argumentServerConfig::newand defaults for omitted JSON fields.10.2.8, preserving aliases and non-version options. Current members link three of them:color-output,lombok-macrosandtokio-broadcast. The other 13 are declarations not adopted by current members, not 13 additional linked package upgrades. Thesystem-timeedge belongs tocolor-output.d7f18106dae61dc0c48d8d10635e201e6c5a754a.Delivery and source binding
Base:
masteratd7f18106dae61dc0c48d8d10635e201e6c5a754a. Branch:feat/runtime-tls-http2-http3. Delivery head:4a93c47e214087657ba7fc2a3dffd1aab461c880.The update adds three English commits without rewriting the existing history:
1f9362e0c8246a96c735211beefa0f30c5f25e82: group protocol arguments and update ctares dependencies.3673ce53424018e6d388131631051e1adf82b063: bump the workspace to 21.13.7.4a93c47e214087657ba7fc2a3dffd1aab461c880: leave local dependency version synchronization to CI.The final accepted local input aggregate is
a1f886baa9e3200fadfc762c609bcfdb380420439d125702d86a1ecae2c795cd(624 source, lock and verification-tool records). Relative to the measured R3 aggregateb1ba8136738ec0cf1c3845af47b35a65a484eb13b2e381f19798665fcdfd1ee1, onlyCargo.tomlchanged: the nine local dependency requirements were restored. Rust sources and the locally pinned lock are unchanged. No later performance cohort was run for this manifest correction.The local lock SHA-256 remains
b258a0ebf988d6cdd2f4b5e85516d1e178086dee0ff0cf4f5dc1fc2570d25479. Four unrelated Windows dependency edges (errno,quinn-udp,socket2,winapi-util) were previously restored towindows-sys 0.61.2without other package/checksum changes.Cargo.lockis ignored by this repository, so this is retained local reproducibility evidence, not a claim that the PR contains that lock or that a Windows-target build was run.Local functional verification on the delivery head
--no-fix: audit, idempotent formatting, Clippy and test compilation passed. Its auto-fixer phase was explicitly skipped, not counted as executed.crate fmt --check: passed.cargo check --workspace --all-targets --all-features --locked --offline: passed.-D warnings: passed with zero warnings.cargo test --workspace --all-features --locked --offline: 822 passed, 0 failed, 6 inherited ignored doctests, 0 filtered across 26 result sections.Local tooling limitation
The standalone legacy test-layout fixer is not accepted here as a workspace-wide idempotence proof. Invoked at the repository root it does not recurse into member test trees. A read-only member-scope probe selected 103 files and proposed changes to 52, including non-whitespace changes to six. Those transformations were not applied. The independent full audit and functional results above remain separately reported; the broader fixer-idempotence predicate is unresolved, not silently marked passed. No verifier or rule was weakened for this PR.
Exact-head CI
Rust workflow run
39117653245completed successfully at exact head4a93c47e214087657ba7fc2a3dffd1aab461c880: setup, check, tests, build and Clippy passed; publish and release were skipped. Mirror workflow run39117650728also completed successfully at that same head. These are current-head results, not the earlier green run for3673ce5. CI success does not override the performance or supplemental tooling limitations below, and it does not authorize a merge or release.Retained R3 performance result: NOT PASSED
R3 measured the preceding frozen 21.13.7 manifest and Rust sources, against baseline
d7f18106dae61dc0c48d8d10635e201e6c5a754a(21.13.4). It collected all 257 planned client observations: 255 valid and two invalid, with four failed requests. The controller exited with status 1. Completeness is not performance acceptance.Blocking comparison cells
The intervals below are percentage changes of candidate relative to baseline. The frozen screening margins were a 5% throughput loss and a 10% p99 increase, with zero request failures. A statistically established slowdown would block delivery even below a screening margin. Decisions used full precision; displayed bounds are rounded.
h1-keepalive-c64h1-short-c64h1-keepalive-c64-reqbody64kh1-keepalive-c64-body64kh1-short-c64at 500 requests/sINCONCLUSIVE neither demonstrates a slowdown nor establishes non-inferiority. No failed or slow observation was discarded, no failed pair was replaced, no threshold was relaxed and no repetitions were appended to obtain a pass.
The invalid observations were closed
h1-short-c64, candidate repetition 2 (three failed requests), and baseline repetition 8 (one failed request). Both recordedio: read: Connection reset by peer (os error 54). The entire cell remains invalid rather than recomputing an interval from survivors.Diagnosis and measurement limits
Compatibility and scope
Stream::new(TcpStream, RequestConfig, bool)is preserved, but the transport field and generated accessors exposeBox<dyn Transport>; TCP-specific callers must migrate. Addressless transports reportUnsupported, not fabricated addresses.WebSocketFrame::get_fin()andget_mask()returnboolinstead of&bool;Proxy::get_port()returnsu16instead of&u16. Remove obsolete dereferences and explicitly borrowed bindings. Previously restricted fields with public generated accessors becoming public also add direct access/move capabilities; this is not universally API-compatible./tmp. That disclosed violation is not retracted. Five specifically questioned tests match HEAD and the preserved starting snapshot; there is no complete immediately pre-restore byte snapshot, so no stronger claim about intermediate uncommitted changes is made. Subsequent repairs received fresh verification.Retained local evidence
These paths identify local files, not public downloads or uploaded CI artifacts:
/Users/sqs/.hermes/cache/scratch/hyperlane-pr47-delivery-21.13.7-o1psl185/root-only-correction//Users/sqs/.hermes/cache/scratch/hyperlane-pr47-delivery-21.13.7-o1psl185//Users/sqs/.hermes/cache/scratch/hyperlane-parent-corrected-acceptance-sr5q22mq/accepted.json/Users/sqs/.hermes/cache/scratch/hyperlane-r3-parent-assessment-xrls5u0e/REPORT.md/Users/sqs/.hermes/cache/scratch/hyperlane-pr-performance-21.13.7-r1/formal-cohort-21.13.7-1f799e0u/measurement/This update does not authorize merging, enabling auto-merge, or publishing a release. The PR remains a draft with performance acceptance blocked.