easytier 2.0.3

A full meshed p2p VPN, connecting all your devices in one network with one command.
[[bin]]
name = "easytier-cli"
path = "src/easytier-cli.rs"
test = false

[[bin]]
name = "easytier-core"
path = "src/easytier-core.rs"

[build-dependencies.globwalk]
version = "0.8.1"

[build-dependencies.prost-build]
version = "0.13.2"

[build-dependencies.regex]
version = "1"

[build-dependencies.rpc_build]
features = ["internal-namespace"]
package = "easytier-rpc-build"
version = "0.1.0"

[build-dependencies.tonic-build]
version = "0.12"

[dependencies.aes-gcm]
optional = true
version = "0.10.3"

[dependencies.anyhow]
version = "1.0"

[dependencies.async-recursion]
version = "1.0.5"

[dependencies.async-ringbuf]
version = "0.3.1"

[dependencies.async-stream]
version = "0.3.5"

[dependencies.async-trait]
version = "0.1.74"

[dependencies.atomic-shim]
version = "0.2.0"

[dependencies.atomicbox]
version = "0.4.0"

[dependencies.auto_impl]
version = "1.1.0"

[dependencies.base64]
version = "0.22"

[dependencies.bitflags]
version = "2.5"

[dependencies.boringtun]
optional = true
package = "boringtun-easytier"
version = "0.6.1"

[dependencies.bytecodec]
version = "0.4.15"

[dependencies.byteorder]
version = "1.5.0"

[dependencies.bytes]
version = "1.5.0"

[dependencies.chrono]
features = ["serde"]
version = "0.4.37"

[dependencies.cidr]
features = ["serde"]
version = "0.2.2"

[dependencies.clap]
features = ["string", "unicode", "derive", "wrap_help"]
version = "4.4.8"

[dependencies.crossbeam]
version = "0.8.4"

[dependencies.crossbeam-queue]
version = "0.3"

[dependencies.dashmap]
version = "6.0"

[dependencies.derivative]
version = "2.2.0"

[dependencies.futures]
features = ["bilock", "unstable"]
version = "0.3"

[dependencies.gethostname]
version = "0.5.0"

[dependencies.git-version]
version = "0.3.9"

[dependencies.http]
default-features = false
features = ["std"]
optional = true
version = "1"

[dependencies.humansize]
version = "2.1.3"

[dependencies.indexmap]
features = ["std"]
optional = false
version = "~1.9.3"

[dependencies.mimalloc-rust]
optional = true
version = "0.2.1"

[dependencies.network-interface]
version = "2.0"

[dependencies.nix]
features = ["sched", "socket", "ioctl"]
version = "0.27"

[dependencies.once_cell]
version = "1.18.0"

[dependencies.parking_lot]
optional = true
version = "0.12.0"

[dependencies.percent-encoding]
version = "2.3.1"

[dependencies.petgraph]
version = "0.6.5"

[dependencies.pin-project-lite]
version = "0.2.13"

[dependencies.pnet]
features = ["serde"]
version = "0.35.0"

[dependencies.prost]
version = "0.13"

[dependencies.prost-types]
version = "0.13"

[dependencies.quinn]
features = ["ring"]
optional = true
version = "0.11.0"

[dependencies.rand]
version = "0.8.5"

[dependencies.rcgen]
optional = true
version = "0.11.1"

[dependencies.ring]
optional = true
version = "0.17"

[dependencies.ringbuf]
version = "0.4.5"

[dependencies.rust-i18n]
version = "3"

[dependencies.rustls]
default-features = false
features = ["ring"]
optional = true
version = "0.23.0"

[dependencies.serde]
features = ["derive"]
version = "1.0"

[dependencies.serde_json]
version = "1"

[dependencies.smoltcp]
default-features = false
features = ["std", "medium-ip", "proto-ipv4", "proto-ipv6", "socket-tcp", "async"]
optional = true
version = "0.11.0"

[dependencies.socket2]
version = "0.5.5"

[dependencies.stun_codec]
version = "0.3.4"

[dependencies.sys-locale]
version = "0.3"

[dependencies.tabled]
version = "0.16"

[dependencies.tachyonix]
version = "0.3.0"

[dependencies.thiserror]
version = "1.0"

[dependencies.time]
version = "0.3"

[dependencies.timedmap]
version = "=1.0.1"

[dependencies.tokio]
features = ["full"]
version = "1"

[dependencies.tokio-rustls]
default-features = false
optional = true
version = "0.26"

[dependencies.tokio-stream]
version = "0.1"

[dependencies.tokio-util]
features = ["codec", "net", "io"]
version = "0.7.9"

[dependencies.tokio-websockets]
features = ["rustls-webpki-roots", "client", "server", "fastrand", "ring"]
optional = true
version = "0.8"

[dependencies.toml]
version = "0.8.12"

[dependencies.tracing]
features = ["log"]
version = "0.1"

[dependencies.tracing-appender]
version = "0.2.3"

[dependencies.tracing-subscriber]
features = ["env-filter", "local-time", "time"]
version = "0.3"

[dependencies.tun]
features = ["async"]
optional = true
package = "tun-easytier"
version = "1.1.1"

[dependencies.url]
features = ["serde"]
version = "2.5"

[dependencies.uuid]
features = ["v4", "fast-rng", "macro-diagnostics", "serde"]
version = "1.5.0"

[dependencies.wildmatch]
version = "2.3.4"

[dependencies.zerocopy]
features = ["derive", "simd"]
version = "0.7.32"

[dev-dependencies.futures-util]
version = "0.3.30"

[dev-dependencies.rstest]
version = "0.18.2"

[dev-dependencies.serial_test]
version = "3.0.0"

[features]
aes-gcm = ["dep:aes-gcm"]
default = ["wireguard", "mimalloc", "websocket", "smoltcp", "tun", "socks5"]
full = ["quic", "websocket", "wireguard", "mimalloc", "aes-gcm", "smoltcp", "tun", "socks5"]
mimalloc = ["dep:mimalloc-rust"]
mips = ["aes-gcm", "mimalloc", "wireguard", "tun", "smoltcp", "socks5"]
quic = ["dep:quinn", "dep:rustls", "dep:rcgen"]
smoltcp = ["dep:smoltcp", "dep:parking_lot"]
socks5 = ["dep:smoltcp"]
tun = ["dep:tun"]
websocket = ["dep:tokio-websockets", "dep:http", "dep:tokio-rustls", "dep:rustls", "dep:rcgen"]
wireguard = ["dep:boringtun", "dep:ring"]

[lib]
name = "easytier"
path = "src/lib.rs"
test = false

[package]
authors = ["kkrainbow"]
autobenches = false
autobins = false
autoexamples = false
autotests = false
build = "build.rs"
categories = ["network-programming", "command-line-utilities"]
description = "A full meshed p2p VPN, connecting all your devices in one network with one command."
edition = "2021"
homepage = "https://github.com/EasyTier/EasyTier"
keywords = ["vpn", "p2p", "network", "easytier"]
license-file = "LICENSE"
name = "easytier"
readme = "README.md"
repository = "https://github.com/EasyTier/EasyTier"
rust-version = "1.77.0"
version = "2.0.3"

[target.'cfg(target_os = "linux")'.dev-dependencies.defguard_wireguard_rs]
version = "0.4.2"

[target.'cfg(target_os = "linux")'.dev-dependencies.tokio-socks]
version = "0.5.2"

[target."cfg(windows)".build-dependencies.reqwest]
features = ["blocking"]
version = "0.11"

[target."cfg(windows)".build-dependencies.zip]
version = "0.6.6"

[target."cfg(windows)".dependencies.encoding]
version = "0.2"

[target."cfg(windows)".dependencies.windows-sys]
features = ["Win32_Networking_WinSock", "Win32_NetworkManagement_IpHelper", "Win32_Foundation", "Win32_System_IO"]
version = "0.52"

[target."cfg(windows)".dependencies.winreg]
version = "0.52"