mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-05-07 02:09:06 +00:00
1b03223537
This patch removes Tarpc & Tonic GRPC and implements a customized rpc framework, which can be used by peer rpc and cli interface. web config server can also use this rpc framework. moreover, rewrite the public server logic, use ospf route to implement public server based networking. this make public server mesh possible.
238 lines
5.2 KiB
TOML
238 lines
5.2 KiB
TOML
[package]
|
|
name = "easytier"
|
|
description = "A full meshed p2p VPN, connecting all your devices in one network with one command."
|
|
homepage = "https://github.com/EasyTier/EasyTier"
|
|
repository = "https://github.com/EasyTier/EasyTier"
|
|
version = "1.2.3"
|
|
edition = "2021"
|
|
authors = ["kkrainbow"]
|
|
keywords = ["vpn", "p2p", "network", "easytier"]
|
|
categories = ["network-programming", "command-line-utilities"]
|
|
rust-version = "1.77.0"
|
|
license-file = "LICENSE"
|
|
readme = "README.md"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[[bin]]
|
|
name = "easytier-core"
|
|
path = "src/easytier-core.rs"
|
|
|
|
[[bin]]
|
|
name = "easytier-cli"
|
|
path = "src/easytier-cli.rs"
|
|
test = false
|
|
|
|
[lib]
|
|
name = "easytier"
|
|
path = "src/lib.rs"
|
|
test = false
|
|
|
|
[dependencies]
|
|
tracing = { version = "0.1", features = ["log"] }
|
|
tracing-subscriber = { version = "0.3", features = [
|
|
"env-filter",
|
|
"local-time",
|
|
"time",
|
|
] }
|
|
tracing-appender = "0.2.3"
|
|
thiserror = "1.0"
|
|
auto_impl = "1.1.0"
|
|
crossbeam = "0.8.4"
|
|
time = "0.3"
|
|
toml = "0.8.12"
|
|
chrono = { version = "0.4.37", features = ["serde"] }
|
|
|
|
gethostname = "0.5.0"
|
|
|
|
futures = { version = "0.3", features = ["bilock", "unstable"] }
|
|
|
|
tokio = { version = "1", features = ["full"] }
|
|
tokio-stream = "0.1"
|
|
tokio-util = { version = "0.7.9", features = ["codec", "net", "io"] }
|
|
|
|
async-stream = "0.3.5"
|
|
async-trait = "0.1.74"
|
|
|
|
dashmap = "6.0"
|
|
timedmap = "=1.0.1"
|
|
|
|
# for full-path zero-copy
|
|
zerocopy = { version = "0.7.32", features = ["derive", "simd"] }
|
|
bytes = "1.5.0"
|
|
pin-project-lite = "0.2.13"
|
|
atomicbox = "0.4.0"
|
|
tachyonix = "0.3.0"
|
|
|
|
quinn = { version = "0.11.0", optional = true, features = ["ring"] }
|
|
rustls = { version = "0.23.0", features = [
|
|
"ring",
|
|
], default-features = false, optional = true }
|
|
rcgen = { version = "0.11.1", optional = true }
|
|
|
|
# for websocket
|
|
tokio-websockets = { version = "0.8", optional = true, features = [
|
|
"rustls-webpki-roots",
|
|
"client",
|
|
"server",
|
|
"fastrand",
|
|
"ring",
|
|
] }
|
|
http = { version = "1", default-features = false, features = [
|
|
"std",
|
|
], optional = true }
|
|
tokio-rustls = { version = "0.26", default-features = false, optional = true }
|
|
|
|
# for tap device
|
|
tun = { package = "tun-easytier", version = "1.1.1", features = [
|
|
"async",
|
|
], optional = true }
|
|
# for net ns
|
|
nix = { version = "0.27", features = ["sched", "socket", "ioctl"] }
|
|
|
|
uuid = { version = "1.5.0", features = [
|
|
"v4",
|
|
"fast-rng",
|
|
"macro-diagnostics",
|
|
"serde",
|
|
] }
|
|
|
|
# for ring tunnel
|
|
crossbeam-queue = "0.3"
|
|
once_cell = "1.18.0"
|
|
|
|
# for rpc
|
|
prost = "0.13"
|
|
prost-types = "0.13"
|
|
anyhow = "1.0"
|
|
|
|
url = { version = "2.5", features = ["serde"] }
|
|
percent-encoding = "2.3.1"
|
|
|
|
# for tun packet
|
|
byteorder = "1.5.0"
|
|
|
|
# for proxy
|
|
cidr = { version = "0.2.2", features = ["serde"] }
|
|
socket2 = "0.5.5"
|
|
|
|
# for hole punching
|
|
stun_codec = "0.3.4"
|
|
bytecodec = "0.4.15"
|
|
rand = "0.8.5"
|
|
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
pnet = { version = "0.35.0", features = ["serde"] }
|
|
|
|
clap = { version = "4.4.8", features = [
|
|
"string",
|
|
"unicode",
|
|
"derive",
|
|
"wrap_help",
|
|
] }
|
|
|
|
async-recursion = "1.0.5"
|
|
|
|
network-interface = "2.0"
|
|
|
|
# for ospf route
|
|
petgraph = "0.6.5"
|
|
|
|
# for wireguard
|
|
boringtun = { package = "boringtun-easytier", version = "0.6.1", optional = true }
|
|
|
|
# for encryption
|
|
ring = { version = "0.17", optional = true }
|
|
bitflags = "2.5"
|
|
aes-gcm = { version = "0.10.3", optional = true }
|
|
|
|
# for cli
|
|
tabled = "0.16"
|
|
humansize = "2.1.3"
|
|
|
|
base64 = "0.22"
|
|
|
|
derivative = "2.2.0"
|
|
|
|
mimalloc-rust = { version = "0.2.1", optional = true }
|
|
|
|
# for mips
|
|
indexmap = { version = "~1.9.3", optional = false, features = ["std"] }
|
|
|
|
atomic-shim = "0.2.0"
|
|
|
|
smoltcp = { version = "0.11.0", optional = true, default-features = false, features = [
|
|
"std",
|
|
"medium-ip",
|
|
"proto-ipv4",
|
|
"proto-ipv6",
|
|
"socket-tcp",
|
|
"async",
|
|
] }
|
|
parking_lot = { version = "0.12.0", optional = true }
|
|
|
|
wildmatch = "2.3.4"
|
|
|
|
rust-i18n = "3"
|
|
sys-locale = "0.3"
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
windows-sys = { version = "0.52", features = [
|
|
"Win32_Networking_WinSock",
|
|
"Win32_NetworkManagement_IpHelper",
|
|
"Win32_Foundation",
|
|
"Win32_System_IO",
|
|
] }
|
|
encoding = "0.2"
|
|
winreg = "0.52"
|
|
|
|
[build-dependencies]
|
|
tonic-build = "0.12"
|
|
globwalk = "0.8.1"
|
|
regex = "1"
|
|
prost-build = "0.13.2"
|
|
rpc_build = { path = "src/proto/rpc_build" }
|
|
|
|
[target.'cfg(windows)'.build-dependencies]
|
|
reqwest = { version = "0.11", features = ["blocking"] }
|
|
zip = "0.6.6"
|
|
|
|
|
|
[dev-dependencies]
|
|
serial_test = "3.0.0"
|
|
rstest = "0.18.2"
|
|
futures-util = "0.3.30"
|
|
|
|
[target.'cfg(target_os = "linux")'.dev-dependencies]
|
|
defguard_wireguard_rs = "0.4.2"
|
|
tokio-socks = "0.5.2"
|
|
|
|
|
|
[features]
|
|
default = ["wireguard", "mimalloc", "websocket", "smoltcp", "tun", "socks5"]
|
|
full = [
|
|
"quic",
|
|
"websocket",
|
|
"wireguard",
|
|
"mimalloc",
|
|
"aes-gcm",
|
|
"smoltcp",
|
|
"tun",
|
|
"socks5",
|
|
]
|
|
mips = ["aes-gcm", "mimalloc", "wireguard", "tun", "smoltcp", "socks5"]
|
|
wireguard = ["dep:boringtun", "dep:ring"]
|
|
quic = ["dep:quinn", "dep:rustls", "dep:rcgen"]
|
|
mimalloc = ["dep:mimalloc-rust"]
|
|
aes-gcm = ["dep:aes-gcm"]
|
|
tun = ["dep:tun"]
|
|
websocket = [
|
|
"dep:tokio-websockets",
|
|
"dep:http",
|
|
"dep:tokio-rustls",
|
|
"dep:rustls",
|
|
"dep:rcgen",
|
|
]
|
|
smoltcp = ["dep:smoltcp", "dep:parking_lot"]
|
|
socks5 = ["dep:smoltcp"]
|