Feature Request: Support for XTCP (P2P UDP Hole Punching)
First of all, thank you for creating tiny-frpc — the project is extremely valuable for embedded environments and minimal client deployments. The small footprint and clean API make it ideal for custom launchers and constrained devices.
🚀 Motivation
Currently, tiny-frpc supports:
- TCP
- UDP
- STCP
- STCP Visitor (P2P-style but fully relayed through frps)
However, XTCP is not supported.
XTCP is important because it enables true P2P connections via UDP hole punching, allowing traffic to bypass the frps relay once the connection is established.
For scenarios involving:
- game launchers
- real-time applications
- high-bandwidth data streams
- latency-sensitive communication
…STCP’s full-relay model becomes a bottleneck.
XTCP would significantly reduce latency and server bandwidth usage.
📌 Why XTCP Matters
XTCP provides:
- NAT traversal via UDP hole punching
- Direct client-to-client communication
- Automatic fallback to relay when hole punching fails
- Lower latency and reduced server load
These benefits are especially useful for:
- custom game servers
- P2P tools
- embedded devices
- private networks
🛠️ Potential Implementation Notes
I understand tiny-frpc aims to remain minimal, but even a simplified XTCP implementation would be extremely helpful.
Possible approach:
- Implement basic XTCP handshake
- Support UDP hole punching
- Reuse existing event loop and connection management
- Provide a minimal API similar to STCP
Even partial support (without fallback relay) would already unlock many use cases.
🙏 Request
Would it be possible to consider adding XTCP support to tiny-frpc in future versions?
If needed, I’m willing to:
- help test early builds
- provide real-world usage scenarios
- contribute documentation or examples
Thank you again for your excellent work on this project!
Feature Request: Support for XTCP (P2P UDP Hole Punching)
First of all, thank you for creating tiny-frpc — the project is extremely valuable for embedded environments and minimal client deployments. The small footprint and clean API make it ideal for custom launchers and constrained devices.
🚀 Motivation
Currently, tiny-frpc supports:
However, XTCP is not supported.
XTCP is important because it enables true P2P connections via UDP hole punching, allowing traffic to bypass the frps relay once the connection is established.
For scenarios involving:
…STCP’s full-relay model becomes a bottleneck.
XTCP would significantly reduce latency and server bandwidth usage.
📌 Why XTCP Matters
XTCP provides:
These benefits are especially useful for:
🛠️ Potential Implementation Notes
I understand tiny-frpc aims to remain minimal, but even a simplified XTCP implementation would be extremely helpful.
Possible approach:
Even partial support (without fallback relay) would already unlock many use cases.
🙏 Request
Would it be possible to consider adding XTCP support to tiny-frpc in future versions?
If needed, I’m willing to:
Thank you again for your excellent work on this project!