Enhanments
-
Support Post-Quantum Cryptography algorithms and enable by default
-
Support RFC 9209 Proxy-Status HTTP Response Header Field
Refactor
-
Support type specific metrics for servers/escapers
Add a new EmitStats trait, with a emit method, and impl it for all server & escaper stats.
Then remove ServerStats and EscaperStats traits, and just store ArcEmitStats in server & escaper stats registry.
-
Add a new rust-variant-ssl rustls backend and replace ring
Breaking Changes
A major version bump will be needed for the following changes:
-
Chain proxy-* escapers on top of other escapers
Remove the tcp-connect and udp-connect code in proxy-* escapers, and let them use the corresponding tcp/udp methods of the next escaper.
This will remove a lot of code, and will allow the chaining of multiple proxies at one place.
The disadvantage is that the returned tcp/udp socket in wrapped in Box, which may decrease the performance a bit.
Big new ones
A minor version bump will be needed for the following changes:
-
Support remote user authentication
-
Add reverse proxy connection support
Support ngrok/frp like features
-
Allow to set direct-float escaper to harbor mode, it will collect client connections and use them when needed.
-
Allow port servers to set harbor config field, they will send the client connections directly to that harbor mode escaper.
-
Add an anchor-tcp server, it will act as a client and pool connect via it's escaper to a remote g3proxy harbor. When new connection request from the remote harbor, it will open new connections via it's next server / escaper.
-
Add an anchor-quic server, which pool connect to the remote harbor in QUIC.
-
Support cluster level rate limitation and speed limitation
-
Support H2 http proxy
-
Support RFC 9298 Proxying UDP in HTTP
-
Use EBPF to hot-upgrade REUSEPORT sockets gracefully on Linux
This is required to hot upgrade UDP sockets.
-
Support H3 http proxy
Enhanments
Support Post-Quantum Cryptography algorithms and enable by default
Support RFC 9209 Proxy-Status HTTP Response Header Field
Refactor
Support type specific metrics for servers/escapers
Add a new EmitStats trait, with a emit method, and impl it for all server & escaper stats.
Then remove ServerStats and EscaperStats traits, and just store ArcEmitStats in server & escaper stats registry.
Add a new rust-variant-ssl rustls backend and replace ring
Breaking Changes
A major version bump will be needed for the following changes:
Chain proxy-* escapers on top of other escapers
Remove the tcp-connect and udp-connect code in proxy-* escapers, and let them use the corresponding tcp/udp methods of the next escaper.
This will remove a lot of code, and will allow the chaining of multiple proxies at one place.
The disadvantage is that the returned tcp/udp socket in wrapped in Box, which may decrease the performance a bit.
Big new ones
A minor version bump will be needed for the following changes:
Support remote user authentication
Password based such as LDAP / Radius
Kerberos
Add reverse proxy connection support
Support ngrok/frp like features
Allow to set direct-float escaper to harbor mode, it will collect client connections and use them when needed.
Allow port servers to set harbor config field, they will send the client connections directly to that harbor mode escaper.
Add an anchor-tcp server, it will act as a client and pool connect via it's escaper to a remote g3proxy harbor. When new connection request from the remote harbor, it will open new connections via it's next server / escaper.
Add an anchor-quic server, which pool connect to the remote harbor in QUIC.
Support cluster level rate limitation and speed limitation
Support H2 http proxy
Support RFC 9298 Proxying UDP in HTTP
Use EBPF to hot-upgrade REUSEPORT sockets gracefully on Linux
This is required to hot upgrade UDP sockets.
Support H3 http proxy