Skip to content

feat: migrate hysteria to QuicParams for full QUIC TLS support#114

Merged
yiguodev merged 1 commit intoXTLS:mainfrom
belaytzev:hysteria-quicparams-migration
Apr 1, 2026
Merged

feat: migrate hysteria to QuicParams for full QUIC TLS support#114
yiguodev merged 1 commit intoXTLS:mainfrom
belaytzev:hysteria-quicparams-migration

Conversation

@belaytzev
Copy link
Copy Markdown
Contributor

@belaytzev belaytzev commented Mar 31, 2026

Summary

  • Bump xray-core to v1.260327.0 to pick up the new QuicParams struct
  • Refactor hysteria share link parsing, generation, and Clash Meta conversion to use QuicParams instead of individual QUIC/TLS fields
  • Fix Int32Range serialization bug in Clash Meta parser
  • Add comprehensive test coverage for all changed share link functions

Changes

  • share/parse_share.go: Use QuicParams and extracted parseSecurity helper
  • share/generate_share.go: Output full TLS fields (SNI, ALPN, pinSHA256, insecure, CA) from QuicParams
  • share/clash_meta.go: Read/write QuicParams, fix Int32Range port-range bug
  • share/clash_meta_test.go, parse_share_test.go, generate_share_test.go: New tests
  • go.mod/go.sum: xray-core v1.260327.0

Test plan

  • go vet passes on changed packages
  • Full test suite: 15/15 share package tests pass; 3 pre-existing failures on main unrelated to this PR
  • Manual verification of hysteria share link round-trip

🤖 Generated with Claude Code

@belaytzev belaytzev force-pushed the hysteria-quicparams-migration branch from 9007e00 to 4b8894f Compare March 31, 2026 20:09
Bump xray-core to v1.260327.0 and refactor hysteria share link parsing,
generation, and Clash Meta conversion to use QuicParams instead of
individual QUIC/TLS fields. Fix Int32Range serialization bug in Clash
Meta parser. Add comprehensive test coverage.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@belaytzev belaytzev force-pushed the hysteria-quicparams-migration branch from 4b8894f to b6b09ca Compare March 31, 2026 20:10
belaytzev added a commit to belaytzev/xray-checker that referenced this pull request Mar 31, 2026
- Add Hysteria2 protocol to model, parser, and config generator
- Parse hysteria outbound settings (auth, bandwidth, port-hopping, salamander obfs)
- Extract QuicParams and FinalMask from stream settings
- Generate proper xray-core config with hysteriaSettings and sockopt.finalMask
- Default network to "hysteria" and security to "tls" for hysteria protocol
- Update libxray to fork with QuicParams migration (XTLS/libXray#114)
- Bump xray-core to v1.260327.0, Go to 1.26
- Add hy2:// and hysteria2:// to base64 decode skip list
- Add debug logging for FinalMask parse failures
- Remove empty sockopt from non-hysteria stream settings

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@yiguodev yiguodev merged commit 0e9dc94 into XTLS:main Apr 1, 2026
belaytzev added a commit to belaytzev/xray-checker that referenced this pull request Apr 1, 2026
Remove fork replace directive and point to upstream commit 0e9dc945
(merged QuicParams migration).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants