2024-04-04 10:33:53 +08:00
|
|
|
[package]
|
|
|
|
name = "easytier"
|
|
|
|
description = "A full meshed p2p VPN, connecting all your devices in one network with one command."
|
|
|
|
homepage = "https://github.com/KKRainbow/EasyTier"
|
|
|
|
repository = "https://github.com/KKRainbow/EasyTier"
|
2024-05-02 23:28:38 +08:00
|
|
|
version = "1.0.0"
|
2024-04-04 10:33:53 +08:00
|
|
|
edition = "2021"
|
|
|
|
authors = ["kkrainbow"]
|
|
|
|
keywords = ["vpn", "p2p", "network", "easytier"]
|
|
|
|
categories = ["network-programming", "command-line-utilities"]
|
|
|
|
rust-version = "1.75"
|
|
|
|
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
|
|
|
|
|
2024-04-06 22:44:30 +08:00
|
|
|
[lib]
|
|
|
|
name = "easytier"
|
|
|
|
path = "src/lib.rs"
|
|
|
|
test = false
|
|
|
|
|
2024-04-04 10:33:53 +08:00
|
|
|
[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"
|
|
|
|
time = "0.3"
|
|
|
|
toml = "0.8.12"
|
|
|
|
chrono = "0.4.35"
|
|
|
|
|
|
|
|
gethostname = "0.4.3"
|
|
|
|
|
2024-04-25 23:25:37 +08:00
|
|
|
futures = { version = "0.3", features = ["bilock", "unstable"] }
|
2024-04-04 10:33:53 +08:00
|
|
|
|
|
|
|
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"
|
|
|
|
|
2024-04-24 23:12:46 +08:00
|
|
|
# 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.2.1"
|
|
|
|
|
|
|
|
quinn = { version = "0.10.2" }
|
|
|
|
rustls = { version = "0.21.0", features = ["dangerous_configuration"] }
|
|
|
|
rcgen = "0.11.1"
|
|
|
|
|
2024-04-04 10:33:53 +08:00
|
|
|
# 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",
|
|
|
|
"strict",
|
|
|
|
"copy_unsafe",
|
|
|
|
"arbitrary_enum_discriminant",
|
|
|
|
] }
|
|
|
|
postcard = { "version" = "1.0.8", features = ["alloc"] }
|
|
|
|
|
|
|
|
# for rpc
|
|
|
|
tonic = "0.10"
|
|
|
|
prost = "0.12"
|
|
|
|
anyhow = "1.0"
|
|
|
|
tarpc = { version = "0.32", features = ["tokio1", "serde1"] }
|
|
|
|
|
|
|
|
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.34.0", features = ["serde"] }
|
|
|
|
public-ip = { version = "0.2", features = ["default"] }
|
|
|
|
|
|
|
|
clap = { version = "4.4.8", features = ["unicode", "derive", "wrap_help"] }
|
|
|
|
|
|
|
|
async-recursion = "1.0.5"
|
|
|
|
|
|
|
|
network-interface = "1.1.1"
|
|
|
|
|
|
|
|
# for ospf route
|
|
|
|
pathfinding = "4.9.1"
|
|
|
|
|
|
|
|
# for encryption
|
|
|
|
boringtun = { version = "0.6.0" }
|
2024-04-27 13:44:59 +08:00
|
|
|
ring = { version = "0.16" }
|
|
|
|
bitflags = "2.5"
|
2024-04-04 10:33:53 +08:00
|
|
|
|
|
|
|
# for cli
|
|
|
|
tabled = "0.15.*"
|
|
|
|
humansize = "2.1.3"
|
|
|
|
|
|
|
|
base64 = "0.21.7"
|
|
|
|
|
|
|
|
derivative = "2.2.0"
|
|
|
|
|
2024-04-26 23:02:07 +08:00
|
|
|
mimalloc-rust = "0.2.1"
|
|
|
|
|
2024-04-04 10:33:53 +08:00
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
|
|
windows-sys = { version = "0.52", features = [
|
|
|
|
"Win32_Networking_WinSock",
|
|
|
|
"Win32_NetworkManagement_IpHelper",
|
|
|
|
"Win32_Foundation",
|
|
|
|
"Win32_System_IO",
|
|
|
|
] }
|
|
|
|
|
|
|
|
[build-dependencies]
|
|
|
|
tonic-build = "0.10"
|
|
|
|
|
|
|
|
[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"
|
2024-04-24 23:12:46 +08:00
|
|
|
defguard_wireguard_rs = "0.4.2"
|