support compress for rpc and tun data (#473)

* support compress for rpc and tun data
* add compression layer to easytier-web
This commit is contained in:
Sijie.Sun
2024-11-16 11:23:18 +08:00
committed by GitHub
parent 9d455e22fa
commit 6cdea38284
22 changed files with 623 additions and 82 deletions
+19 -1
View File
@@ -20,6 +20,7 @@ message FlagsInConfig {
bool disable_udp_hole_punching = 13;
string ipv6_listener = 14;
bool multi_thread = 15;
CompressionAlgoPb data_compress_algo = 16;
}
message RpcDescriptor {
@@ -32,7 +33,7 @@ message RpcDescriptor {
}
message RpcRequest {
RpcDescriptor descriptor = 1;
RpcDescriptor descriptor = 1 [ deprecated = true ];
bytes request = 2;
int32 timeout_ms = 3;
@@ -45,6 +46,21 @@ message RpcResponse {
uint64 runtime_us = 3;
}
enum CompressionAlgoPb {
Invalid = 0;
None = 1;
Zstd = 2;
}
message RpcCompressionInfo {
// use this to compress the content
CompressionAlgoPb algo = 1;
// tell the peer which compression algo is used to compress the next
// response/request
CompressionAlgoPb accepted_algo = 2;
}
message RpcPacket {
uint32 from_peer = 1;
uint32 to_peer = 2;
@@ -58,6 +74,8 @@ message RpcPacket {
uint32 piece_idx = 8;
int32 trace_id = 9;
RpcCompressionInfo compression_info = 10;
}
message Void {}