[PR #4862] [MERGED] Update quic-go dependency from v0.48.2 to v0.53.0 #5063

Closed
opened 2026-05-05 14:53:58 -06:00 by gitea-mirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/fatedier/frp/pull/4862
Author: @fatedier
Created: 7/1/2025
Status: Merged
Merged: 7/1/2025
Merged by: @fatedier

Base: devHead: devin/1751364205-update-quic-go-v0.53.0


📝 Commits (1)

  • 377efd0 Update quic-go dependency from v0.48.2 to v0.53.0

📊 Changes

6 files changed (+9 additions, -12 deletions)

View changed files

📝 client/connector.go (+1 -1)
📝 client/visitor/xtcp.go (+1 -1)
📝 go.mod (+1 -2)
📝 go.sum (+2 -4)
📝 pkg/util/net/conn.go (+3 -3)
📝 server/service.go (+1 -1)

📄 Description

Update quic-go dependency from v0.48.2 to v0.53.0

Summary

This PR addresses issue #4852 by updating the quic-go dependency from v0.48.2 to v0.53.0. The update includes necessary API changes due to breaking changes in quic-go v0.53.0, where quic.Connection interface was replaced with *quic.Conn struct and quic.Stream interface was replaced with *quic.Stream struct.

Changes made:

  • Updated go.mod to use github.com/quic-go/quic-go v0.53.0
  • Replaced all quic.Connection references with *quic.Conn across 4 files
  • Updated quic.Stream embedding in wrapQuicStream struct to use *quic.Stream
  • Updated function signatures and struct field types accordingly

All existing unit tests pass and linting shows no issues.

Review & Testing Checklist for Human

This is a medium-risk change affecting core networking functionality. Please verify:

  • Test the original build scenario: Reproduce the exact build error described in issue #4852 to confirm it's resolved
  • End-to-end QUIC functionality: Test QUIC-based connections between frpc and frps to ensure basic functionality works
  • API correctness verification: Cross-reference the API changes against quic-go v0.53.0 documentation to ensure correct usage
  • Performance testing: Run basic performance tests on QUIC connections to check for regressions
  • Client/server compatibility: Test that updated client and server components work together correctly

Recommended test plan: Set up a simple frp tunnel using QUIC transport and verify data flows correctly in both directions.


Diagram

%%{ init : { "theme" : "default" }}%%
graph TB
    subgraph "Dependency Update"
        gomod["go.mod<br/>quic-go v0.48.2 → v0.53.0"]:::major-edit
    end
    
    subgraph "Core QUIC Components"
        netpkg["pkg/util/net/conn.go<br/>QuicStreamToNetConn()"]:::minor-edit
        server["server/service.go<br/>HandleQUICListener()"]:::minor-edit
        connector["client/connector.go<br/>defaultConnectorImpl"]:::minor-edit
        visitor["client/visitor/xtcp.go<br/>QUICTunnelSession"]:::minor-edit
    end
    
    subgraph "QUIC Flow"
        client_conn["Client QUIC Connection"] --> server_conn["Server QUIC Connection"]
        server_conn --> stream_handling["Stream Handling"]
        stream_handling --> netconn["Net.Conn Conversion"]
    end
    
    gomod -.-> netpkg
    gomod -.-> server
    gomod -.-> connector
    gomod -.-> visitor
    
    
    connector --> client_conn
    visitor --> client_conn
    server --> server_conn
    netpkg --> netconn
    
    subgraph Legend
        L1["Major Edit"]:::major-edit
        L2["Minor Edit"]:::minor-edit
        L3["Context/No Edit"]:::context
    end
    
    classDef major-edit fill:#90EE90
    classDef minor-edit fill:#87CEEB
    classDef context fill:#FFFFFF

Notes

  • This PR implements the exact changes requested in issue #4852 to resolve build errors with quic-go dependency conflicts
  • The API changes are mechanical but affect critical networking paths in both client and server components
  • All changes follow the quic-go v0.53.0 migration pattern: interface types became struct pointer types
  • Session requested by @fatedier
  • Link to Devin run: https://app.devin.ai/sessions/bdaa32361f044e9d92d67dc8bdb98c09

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/fatedier/frp/pull/4862 **Author:** [@fatedier](https://github.com/fatedier) **Created:** 7/1/2025 **Status:** ✅ Merged **Merged:** 7/1/2025 **Merged by:** [@fatedier](https://github.com/fatedier) **Base:** `dev` ← **Head:** `devin/1751364205-update-quic-go-v0.53.0` --- ### 📝 Commits (1) - [`377efd0`](https://github.com/fatedier/frp/commit/377efd0190e3710b18f4503443c1da06be57306a) Update quic-go dependency from v0.48.2 to v0.53.0 ### 📊 Changes **6 files changed** (+9 additions, -12 deletions) <details> <summary>View changed files</summary> 📝 `client/connector.go` (+1 -1) 📝 `client/visitor/xtcp.go` (+1 -1) 📝 `go.mod` (+1 -2) 📝 `go.sum` (+2 -4) 📝 `pkg/util/net/conn.go` (+3 -3) 📝 `server/service.go` (+1 -1) </details> ### 📄 Description # Update quic-go dependency from v0.48.2 to v0.53.0 ## Summary This PR addresses issue #4852 by updating the quic-go dependency from v0.48.2 to v0.53.0. The update includes necessary API changes due to breaking changes in quic-go v0.53.0, where `quic.Connection` interface was replaced with `*quic.Conn` struct and `quic.Stream` interface was replaced with `*quic.Stream` struct. **Changes made:** - Updated `go.mod` to use `github.com/quic-go/quic-go v0.53.0` - Replaced all `quic.Connection` references with `*quic.Conn` across 4 files - Updated `quic.Stream` embedding in `wrapQuicStream` struct to use `*quic.Stream` - Updated function signatures and struct field types accordingly All existing unit tests pass and linting shows no issues. ## Review & Testing Checklist for Human This is a **medium-risk change** affecting core networking functionality. Please verify: - [ ] **Test the original build scenario**: Reproduce the exact build error described in issue #4852 to confirm it's resolved - [ ] **End-to-end QUIC functionality**: Test QUIC-based connections between frpc and frps to ensure basic functionality works - [ ] **API correctness verification**: Cross-reference the API changes against [quic-go v0.53.0 documentation](https://github.com/quic-go/quic-go/releases/tag/v0.53.0) to ensure correct usage - [ ] **Performance testing**: Run basic performance tests on QUIC connections to check for regressions - [ ] **Client/server compatibility**: Test that updated client and server components work together correctly **Recommended test plan**: Set up a simple frp tunnel using QUIC transport and verify data flows correctly in both directions. --- ### Diagram ```mermaid %%{ init : { "theme" : "default" }}%% graph TB subgraph "Dependency Update" gomod["go.mod<br/>quic-go v0.48.2 → v0.53.0"]:::major-edit end subgraph "Core QUIC Components" netpkg["pkg/util/net/conn.go<br/>QuicStreamToNetConn()"]:::minor-edit server["server/service.go<br/>HandleQUICListener()"]:::minor-edit connector["client/connector.go<br/>defaultConnectorImpl"]:::minor-edit visitor["client/visitor/xtcp.go<br/>QUICTunnelSession"]:::minor-edit end subgraph "QUIC Flow" client_conn["Client QUIC Connection"] --> server_conn["Server QUIC Connection"] server_conn --> stream_handling["Stream Handling"] stream_handling --> netconn["Net.Conn Conversion"] end gomod -.-> netpkg gomod -.-> server gomod -.-> connector gomod -.-> visitor connector --> client_conn visitor --> client_conn server --> server_conn netpkg --> netconn subgraph Legend L1["Major Edit"]:::major-edit L2["Minor Edit"]:::minor-edit L3["Context/No Edit"]:::context end classDef major-edit fill:#90EE90 classDef minor-edit fill:#87CEEB classDef context fill:#FFFFFF ``` ### Notes - This PR implements the exact changes requested in issue #4852 to resolve build errors with quic-go dependency conflicts - The API changes are mechanical but affect critical networking paths in both client and server components - All changes follow the quic-go v0.53.0 migration pattern: interface types became struct pointer types - Session requested by @fatedier - Link to Devin run: https://app.devin.ai/sessions/bdaa32361f044e9d92d67dc8bdb98c09 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
gitea-mirror 2026-05-05 14:53:58 -06:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/frp#5063
No description provided.