mirror of
https://mirror.suhoan.cn/https://github.com/EasyTier/EasyTier.git
synced 2025-12-12 12:47:25 +08:00
peer_center is used to collect peer info into one peer node. the center node is selected with the following rules: 1. has smallest peer id 2. TODO: has allow_to_be_center peer feature peer center is not guaranteed to be stable and can be changed when peer enter or leave. it's used to reduce the cost to exchange infos between peers.
100 lines
2.0 KiB
TOML
100 lines
2.0 KiB
TOML
[package]
|
|
name = "easytier-core"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
authors = ["easytier"]
|
|
rust-version = "1.75"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[lib]
|
|
name = "easytier_rpc"
|
|
path = "src/rpc/lib.rs"
|
|
|
|
[dependencies]
|
|
tracing = { version = "0.1", features = ["log"] }
|
|
tracing-subscriber = { version = "0.3", features = [
|
|
"env-filter",
|
|
"local-time",
|
|
"time",
|
|
] }
|
|
tracing-appender = "0.2.3"
|
|
log = "0.4"
|
|
thiserror = "1.0"
|
|
auto_impl = "1.1.0"
|
|
crossbeam = "0.8.4"
|
|
|
|
gethostname = "0.4.3"
|
|
|
|
futures = "0.3"
|
|
|
|
tokio = { version = "1", features = ["full"] }
|
|
tokio-stream = "0.1"
|
|
tokio-util = { version = "0.7.9", features = ["codec", "net"] }
|
|
|
|
async-stream = "0.3.5"
|
|
async-trait = "0.1.74"
|
|
|
|
dashmap = "5.5.3"
|
|
timedmap = "1.0.1"
|
|
|
|
# for tap device
|
|
tun = { version = "0.6.1", features = ["async"] }
|
|
# 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 packet
|
|
rkyv = { "version" = "0.7.42", features = ["validation", "archive_le"] }
|
|
|
|
# for rpc
|
|
tonic = "0.10"
|
|
prost = "0.12"
|
|
anyhow = "1.0"
|
|
tarpc = { version = "0.32", features = ["tokio1", "serde1"] }
|
|
bincode = "1.3"
|
|
|
|
url = "2.5.0"
|
|
|
|
# for tun packet
|
|
byteorder = "1.5.0"
|
|
|
|
# for proxy
|
|
cidr = "0.2.2"
|
|
socket2 = "0.5.5"
|
|
|
|
# for hole punching
|
|
stun-format = { git = "https://github.com/KKRainbow/stun-format.git", features = [
|
|
"fmt",
|
|
"rfc3489",
|
|
"iana",
|
|
] }
|
|
rand = "0.8.5"
|
|
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
pnet = { version = "0.34.0", features = ["serde"] }
|
|
public-ip = { version = "0.2", features = ["default"] }
|
|
|
|
clap = { version = "4.4", features = ["derive"] }
|
|
|
|
[build-dependencies]
|
|
tonic-build = "0.10"
|
|
|
|
[target.'cfg(windows)'.build-dependencies]
|
|
reqwest = { version = "0.11", features = ["blocking"] }
|
|
zip = "*"
|
|
|
|
|
|
[dev-dependencies]
|
|
serial_test = "*"
|