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
+25
View File
@@ -2,6 +2,8 @@ use std::{fmt::Display, str::FromStr};
use anyhow::Context;
use crate::tunnel::packet_def::CompressorAlgo;
include!(concat!(env!("OUT_DIR"), "/common.rs"));
impl From<uuid::Uuid> for Uuid {
@@ -180,3 +182,26 @@ impl From<SocketAddr> for std::net::SocketAddr {
}
}
}
impl TryFrom<CompressionAlgoPb> for CompressorAlgo {
type Error = anyhow::Error;
fn try_from(value: CompressionAlgoPb) -> Result<Self, Self::Error> {
match value {
CompressionAlgoPb::Zstd => Ok(CompressorAlgo::ZstdDefault),
CompressionAlgoPb::None => Ok(CompressorAlgo::None),
_ => Err(anyhow::anyhow!("Invalid CompressionAlgoPb")),
}
}
}
impl TryFrom<CompressorAlgo> for CompressionAlgoPb {
type Error = anyhow::Error;
fn try_from(value: CompressorAlgo) -> Result<Self, Self::Error> {
match value {
CompressorAlgo::ZstdDefault => Ok(CompressionAlgoPb::Zstd),
CompressorAlgo::None => Ok(CompressionAlgoPb::None),
}
}
}