mirror of
https://github.com/EasyTier/EasyTier.git
synced 2025-09-26 20:51:17 +08:00

Some checks are pending
EasyTier Core / pre_job (push) Waiting to run
EasyTier Core / build_web (push) Blocked by required conditions
EasyTier Core / build (freebsd-13.2-x86_64, 13.2, ubuntu-22.04, x86_64-unknown-freebsd) (push) Blocked by required conditions
EasyTier Core / build (linux-aarch64, ubuntu-22.04, aarch64-unknown-linux-musl) (push) Blocked by required conditions
EasyTier Core / build (linux-arm, ubuntu-22.04, arm-unknown-linux-musleabi) (push) Blocked by required conditions
EasyTier Core / build (linux-armhf, ubuntu-22.04, arm-unknown-linux-musleabihf) (push) Blocked by required conditions
EasyTier Core / build (linux-armv7, ubuntu-22.04, armv7-unknown-linux-musleabi) (push) Blocked by required conditions
EasyTier Core / build (linux-armv7hf, ubuntu-22.04, armv7-unknown-linux-musleabihf) (push) Blocked by required conditions
EasyTier Core / build (linux-loongarch64, ubuntu-24.04, loongarch64-unknown-linux-musl) (push) Blocked by required conditions
EasyTier Core / build (linux-mips, ubuntu-22.04, mips-unknown-linux-musl) (push) Blocked by required conditions
EasyTier Core / build (linux-mipsel, ubuntu-22.04, mipsel-unknown-linux-musl) (push) Blocked by required conditions
EasyTier Core / build (linux-riscv64, ubuntu-22.04, riscv64gc-unknown-linux-musl) (push) Blocked by required conditions
EasyTier Core / build (linux-x86_64, ubuntu-22.04, x86_64-unknown-linux-musl) (push) Blocked by required conditions
EasyTier Core / build (macos-aarch64, macos-latest, aarch64-apple-darwin) (push) Blocked by required conditions
EasyTier Core / build (macos-x86_64, macos-latest, x86_64-apple-darwin) (push) Blocked by required conditions
EasyTier Core / build (windows-arm64, windows-latest, aarch64-pc-windows-msvc) (push) Blocked by required conditions
EasyTier Core / build (windows-i686, windows-latest, i686-pc-windows-msvc) (push) Blocked by required conditions
EasyTier Core / build (windows-x86_64, windows-latest, x86_64-pc-windows-msvc) (push) Blocked by required conditions
EasyTier Core / core-result (push) Blocked by required conditions
EasyTier Core / magisk_build (push) Blocked by required conditions
EasyTier GUI / pre_job (push) Waiting to run
EasyTier GUI / build-gui (linux-aarch64, aarch64-unknown-linux-gnu, ubuntu-22.04, aarch64-unknown-linux-musl) (push) Blocked by required conditions
EasyTier GUI / build-gui (linux-x86_64, x86_64-unknown-linux-gnu, ubuntu-22.04, x86_64-unknown-linux-musl) (push) Blocked by required conditions
EasyTier GUI / build-gui (macos-aarch64, aarch64-apple-darwin, macos-latest, aarch64-apple-darwin) (push) Blocked by required conditions
EasyTier GUI / build-gui (macos-x86_64, x86_64-apple-darwin, macos-latest, x86_64-apple-darwin) (push) Blocked by required conditions
EasyTier GUI / build-gui (windows-arm64, aarch64-pc-windows-msvc, windows-latest, aarch64-pc-windows-msvc) (push) Blocked by required conditions
EasyTier GUI / build-gui (windows-i686, i686-pc-windows-msvc, windows-latest, i686-pc-windows-msvc) (push) Blocked by required conditions
EasyTier GUI / build-gui (windows-x86_64, x86_64-pc-windows-msvc, windows-latest, x86_64-pc-windows-msvc) (push) Blocked by required conditions
EasyTier GUI / gui-result (push) Blocked by required conditions
EasyTier Mobile / pre_job (push) Waiting to run
EasyTier Mobile / build-mobile (android, ubuntu-22.04, android) (push) Blocked by required conditions
EasyTier Mobile / mobile-result (push) Blocked by required conditions
EasyTier OHOS / pre_job (push) Waiting to run
EasyTier OHOS / build-ohos (push) Blocked by required conditions
EasyTier Test / pre_job (push) Waiting to run
EasyTier Test / test (push) Blocked by required conditions
335 lines
8.6 KiB
TOML
335 lines
8.6 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 = "2.4.5"
|
|
edition = "2021"
|
|
authors = ["kkrainbow"]
|
|
keywords = ["vpn", "p2p", "network", "easytier"]
|
|
categories = ["network-programming", "command-line-utilities"]
|
|
rust-version = "1.89.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"
|
|
test = false
|
|
|
|
[[bin]]
|
|
name = "easytier-cli"
|
|
path = "src/easytier-cli.rs"
|
|
|
|
[lib]
|
|
name = "easytier"
|
|
path = "src/lib.rs"
|
|
|
|
[dependencies]
|
|
git-version = "0.3.9"
|
|
|
|
tracing = { version = "0.1", features = ["log"] }
|
|
tracing-subscriber = { version = "0.3", features = [
|
|
"env-filter",
|
|
"local-time",
|
|
"time",
|
|
] }
|
|
console-subscriber = { version = "0.4.1", optional = true }
|
|
thiserror = "1.0"
|
|
auto_impl = "1.1.0"
|
|
crossbeam = "0.8.4"
|
|
arc-swap = "1.7"
|
|
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"
|
|
tachyonix = "0.3.0"
|
|
|
|
quinn = { version = "0.11.8", optional = true, features = ["ring"] }
|
|
|
|
rustls = { version = "0.23.0", features = [
|
|
"ring",
|
|
], default-features = false, optional = true }
|
|
rcgen = { version = "0.12.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", git="https://github.com/EasyTier/rust-tun", features = [
|
|
"async",
|
|
], optional = true }
|
|
# for net ns
|
|
nix = { version = "0.29.0", features = ["sched", "socket", "ioctl", "net", "fs"] }
|
|
|
|
uuid = { version = "1.5.0", features = [
|
|
"v4",
|
|
"fast-rng",
|
|
"macro-diagnostics",
|
|
"serde",
|
|
] }
|
|
|
|
# for ring tunnel
|
|
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 = { version = "0.5.10", features = ["all"] }
|
|
|
|
# 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"] }
|
|
serde_json = "1"
|
|
|
|
clap = { version = "4.5.30", features = [
|
|
"string",
|
|
"unicode",
|
|
"derive",
|
|
"wrap_help",
|
|
"env",
|
|
] }
|
|
clap_complete = { version = "4.5.55" }
|
|
|
|
async-recursion = "1.0.5"
|
|
|
|
network-interface = "2.0"
|
|
|
|
# for ospf route
|
|
petgraph = "0.8.1"
|
|
hashbrown = "0.15.3"
|
|
|
|
# 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 }
|
|
openssl = { version = "0.10", optional = true, features = ["vendored"] }
|
|
|
|
# for cli
|
|
tabled = "0.16"
|
|
humansize = "2.1.3"
|
|
|
|
base64 = "0.22"
|
|
|
|
mimalloc = { version = "*", optional = true }
|
|
|
|
# mips
|
|
atomic-shim = "0.2.0"
|
|
|
|
smoltcp = { git = "https://github.com/smoltcp-rs/smoltcp.git", rev = "0a926767a68bc88d5512afefa7529c5ecdade4ea", optional = true, default-features = false, features = [
|
|
"std",
|
|
"medium-ip",
|
|
"proto-ipv4",
|
|
"proto-ipv6",
|
|
"proto-ipv4-fragmentation",
|
|
"fragmentation-buffer-size-8192",
|
|
"assembler-max-segment-count-16",
|
|
"reassembly-buffer-size-8192",
|
|
"reassembly-buffer-count-16",
|
|
"socket-tcp",
|
|
"socket-udp",
|
|
# "socket-tcp-cubic",
|
|
"async",
|
|
] }
|
|
parking_lot = { version = "0.12.0", optional = true }
|
|
|
|
wildmatch = "2.3.4"
|
|
|
|
rust-i18n = "3"
|
|
sys-locale = "0.3"
|
|
|
|
ringbuf = "0.4.5"
|
|
async-ringbuf = "0.3.1"
|
|
|
|
service-manager = { git = "https://github.com/chipsenkbeil/service-manager-rs.git", branch = "main" }
|
|
|
|
zstd = { version = "0.13" }
|
|
|
|
kcp-sys = { git = "https://github.com/EasyTier/kcp-sys", rev = "0f0a0558391ba391c089806c23f369651f6c9eeb" }
|
|
|
|
prost-reflect = { version = "0.14.5", default-features = false, features = [
|
|
"derive",
|
|
] }
|
|
|
|
# for http connector
|
|
http_req = { git = "https://github.com/EasyTier/http_req.git", default-features = false, features = [
|
|
"rust-tls",
|
|
] }
|
|
|
|
# for dns connector
|
|
hickory-resolver = "0.25.2"
|
|
hickory-proto = "0.25.2"
|
|
|
|
# for magic dns
|
|
hickory-client = "0.25.2"
|
|
hickory-server = { version = "0.25.2", features = ["resolver"] }
|
|
derive_builder = "0.20.2"
|
|
humantime-serde = "1.1.1"
|
|
multimap = "0.10.0"
|
|
version-compare = "0.2.0"
|
|
hmac = "0.12.1"
|
|
sha2 = "0.10.8"
|
|
|
|
[target.'cfg(any(target_os = "linux", target_os = "macos", target_os = "windows", target_os = "freebsd"))'.dependencies]
|
|
machine-uid = "0.5.3"
|
|
|
|
[target.'cfg(any(target_os = "linux"))'.dependencies]
|
|
netlink-sys = "0.8.7"
|
|
netlink-packet-route = "0.21.0"
|
|
netlink-packet-core = { version = "0.7.0" }
|
|
netlink-packet-utils = "0.5.2"
|
|
# for magic dns
|
|
resolv-conf = "0.7.3"
|
|
dbus = { version = "0.9.7", features = ["vendored"] }
|
|
which = "7.0.3"
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
windows = { version = "0.52.0", features = [
|
|
"Win32_Foundation",
|
|
"Win32_NetworkManagement_WindowsFirewall",
|
|
"Win32_System_Com",
|
|
"Win32_Networking",
|
|
"Win32_System_Ole",
|
|
"Win32_System_Variant",
|
|
"Win32_Networking_WinSock",
|
|
"Win32_System_IO",
|
|
] }
|
|
encoding = "0.2"
|
|
winreg = "0.52"
|
|
windows-service = "0.7.0"
|
|
windows-sys = { version = "0.52", features = [
|
|
"Win32_NetworkManagement_IpHelper",
|
|
"Win32_NetworkManagement_Ndis",
|
|
"Win32_Networking_WinSock",
|
|
"Win32_Foundation"
|
|
]}
|
|
winapi = { version = "0.3.9", features = ["impl-default"] }
|
|
|
|
[target.'cfg(not(windows))'.dependencies]
|
|
jemallocator = { package = "tikv-jemallocator", version = "0.6.0", optional = true, features = [
|
|
"unprefixed_malloc_on_supported_platforms"
|
|
] }
|
|
jemalloc-ctl = { package = "tikv-jemalloc-ctl", version = "0.6.0", optional = true, features = [
|
|
] }
|
|
|
|
[target.'cfg(not(target_os = "macos"))'.dependencies]
|
|
jemalloc-sys = { package = "tikv-jemalloc-sys", version = "0.6.0", features = [
|
|
"background_threads_runtime_support",
|
|
"background_threads",
|
|
], optional = true }
|
|
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
jemalloc-sys = { package = "tikv-jemalloc-sys", version = "0.6.0", features = [
|
|
], optional = true }
|
|
|
|
[build-dependencies]
|
|
tonic-build = "0.12"
|
|
globwalk = "0.8.1"
|
|
regex = "1"
|
|
prost-build = "0.13.2"
|
|
rpc_build = { package = "easytier-rpc-build", version = "0.1.0", features = [
|
|
"internal-namespace",
|
|
] }
|
|
prost-reflect-build = { version = "0.14.0" }
|
|
|
|
[target.'cfg(windows)'.build-dependencies]
|
|
reqwest = { version = "0.12.12", features = ["blocking"] }
|
|
zip = "4.0.0"
|
|
|
|
# enable thunk-rs when compiling for x86_64 or i686 windows
|
|
[target.x86_64-pc-windows-msvc.build-dependencies]
|
|
thunk-rs = { git = "https://github.com/easytier/thunk.git", default-features = false, features = ["win7"] }
|
|
|
|
[target.i686-pc-windows-msvc.build-dependencies]
|
|
thunk-rs = { git = "https://github.com/easytier/thunk.git", default-features = false, features = ["win7"] }
|
|
|
|
|
|
[dev-dependencies]
|
|
serial_test = "3.0.0"
|
|
rstest = "0.25.0"
|
|
futures-util = "0.3.30"
|
|
maplit = "1.0.2"
|
|
tempfile = "3.22.0"
|
|
|
|
[target.'cfg(target_os = "linux")'.dev-dependencies]
|
|
defguard_wireguard_rs = "0.4.2"
|
|
tokio-socks = "0.5.2"
|
|
|
|
|
|
[features]
|
|
default = ["wireguard", "websocket", "smoltcp", "tun", "socks5", "quic"]
|
|
full = [
|
|
"websocket",
|
|
"wireguard",
|
|
"aes-gcm",
|
|
"openssl-crypto", # need openssl-dev libs
|
|
"smoltcp",
|
|
"tun",
|
|
"socks5",
|
|
]
|
|
wireguard = ["dep:boringtun", "dep:ring"]
|
|
quic = ["dep:quinn", "dep:rustls", "dep:rcgen"]
|
|
mimalloc = ["dep:mimalloc"]
|
|
aes-gcm = ["dep:aes-gcm"]
|
|
openssl-crypto = ["dep:openssl"]
|
|
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"]
|
|
jemalloc = ["dep:jemallocator", "dep:jemalloc-sys"]
|
|
jemalloc-prof = ["jemalloc", "dep:jemalloc-ctl", "jemalloc-ctl/stats", "jemalloc-sys/profiling", "jemalloc-sys/stats"]
|
|
tracing = ["tokio/tracing", "dep:console-subscriber"]
|