mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-10-08 10:56:13 -08:00
164 lines
5.2 KiB
TOML
164 lines
5.2 KiB
TOML
[package]
|
|
name = "easytier-core"
|
|
description = "EasyTier OS-free control-plane core primitives."
|
|
homepage = "https://github.com/EasyTier/EasyTier"
|
|
repository = "https://github.com/EasyTier/EasyTier"
|
|
version = "2.7.0"
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
authors = ["kkrainbow"]
|
|
keywords = ["vpn", "p2p", "network", "easytier"]
|
|
categories = ["network-programming"]
|
|
license-file = "../LICENSE"
|
|
|
|
[lib]
|
|
crate-type = ["rlib", "cdylib"]
|
|
|
|
[package.metadata.wasm-pack.profile.release]
|
|
wasm-opt = ["-Oz", "--enable-bulk-memory", "--enable-nontrapping-float-to-int"]
|
|
|
|
[dependencies]
|
|
anyhow.workspace = true
|
|
ariadne = { version = "0.6", optional = true }
|
|
arc-swap.workspace = true
|
|
async-ringbuf = "0.3.9"
|
|
async-trait.workspace = true
|
|
auto_impl.workspace = true
|
|
base64.workspace = true
|
|
bitflags = "2.13"
|
|
bytecodec.workspace = true
|
|
bytes.workspace = true
|
|
chrono = { workspace = true, features = ["clock"] }
|
|
cidr = { workspace = true, features = ["serde"] }
|
|
crossbeam.workspace = true
|
|
dashmap.workspace = true
|
|
bon.workspace = true
|
|
easytier-proto = { workspace = true, features = ["core"] }
|
|
futures.workspace = true
|
|
guarden.workspace = true
|
|
hmac.workspace = true
|
|
http-body-util = { workspace = true, optional = true }
|
|
hyper = { workspace = true, features = ["client", "http1"], optional = true }
|
|
hyper-util = { workspace = true, features = ["tokio"], optional = true }
|
|
idna = "1.1"
|
|
atomic-shim.workspace = true
|
|
ordered_hash_map = "0.6.1"
|
|
parking_lot.workspace = true
|
|
percent-encoding.workspace = true
|
|
petgraph = "0.8.3"
|
|
pin-project-lite.workspace = true
|
|
prefix-trie = { version = "0.10.1", features = ["cidr"] }
|
|
prost.workspace = true
|
|
prost-types.workspace = true
|
|
rand.workspace = true
|
|
quanta.workspace = true
|
|
ring = { version = "0.17", optional = true }
|
|
rustls = { workspace = true, features = ["ring", "std", "tls12"], optional = true }
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde_json.workspace = true
|
|
sha2.workspace = true
|
|
smoltcp = { workspace = true, optional = true }
|
|
stun_codec.workspace = true
|
|
thiserror.workspace = true
|
|
tracing.workspace = true
|
|
strum = { workspace = true, features = ["derive"] }
|
|
toml.workspace = true
|
|
tokio = { workspace = true, features = [
|
|
"rt",
|
|
"time",
|
|
"sync",
|
|
"macros",
|
|
"io-util",
|
|
] }
|
|
tokio-util = { workspace = true, features = ["io", "rt"] }
|
|
tokio-rustls = { workspace = true, optional = true }
|
|
url = { workspace = true, features = ["serde"] }
|
|
wildmatch = "2.6.1"
|
|
uuid = { workspace = true, features = ["v4", "fast-rng", "serde"] }
|
|
webpki-roots = { version = "1.0", optional = true }
|
|
x25519-dalek = { workspace = true, features = ["static_secrets"] }
|
|
zerocopy = { workspace = true, features = ["derive", "simd"] }
|
|
zstd = { version = "0.14", optional = true }
|
|
aes-gcm = { version = "0.11.1", optional = true }
|
|
chacha20poly1305 = { version = "0.11.0", optional = true }
|
|
openssl = { version = "0.10", optional = true, features = ["vendored"] }
|
|
|
|
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies]
|
|
getrandom-02 = { package = "getrandom", version = "0.2.17", features = ["js"] }
|
|
getrandom-03 = { package = "getrandom", version = "0.3.4", features = ["wasm_js"] }
|
|
snow = { version = "0.10.0", default-features = false, features = ["default-resolver", "default-resolver-crypto"] }
|
|
uuid = { workspace = true, features = ["js"] }
|
|
wasm-bindgen = "0.2"
|
|
|
|
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies]
|
|
snow = "0.10.0"
|
|
|
|
[features]
|
|
default = ["aes-gcm", "endpoint-discovery", "extended-services", "management", "tcp-hole-punch"]
|
|
aes-gcm = ["dep:aes-gcm"]
|
|
browser-config = ["config-write", "easytier-proto/api", "easytier-proto/json-rpc"]
|
|
chacha20 = ["dep:chacha20poly1305"]
|
|
openssl-crypto = ["dep:openssl"]
|
|
ring-crypto = ["dep:ring"]
|
|
wasi-crypto-offload = ["ring-crypto"]
|
|
config-write = []
|
|
endpoint-discovery = [
|
|
"dep:http-body-util",
|
|
"dep:hyper",
|
|
"dep:hyper-util",
|
|
"dep:rustls",
|
|
"dep:tokio-rustls",
|
|
"dep:webpki-roots",
|
|
]
|
|
dhcp-ipv4 = []
|
|
public-ipv6-provider = []
|
|
vpn-portal = []
|
|
wrapped-transport = []
|
|
extended-services = [
|
|
"dhcp-ipv4",
|
|
"public-ipv6-provider",
|
|
"vpn-portal",
|
|
"wrapped-transport",
|
|
"proxy-cidr-monitor",
|
|
]
|
|
web-client = ["management-rpc", "config-write"]
|
|
management = ["web-client", "extended-services", "rich-config-errors", "easytier-proto/json-rpc"]
|
|
management-rpc = ["easytier-proto/api"]
|
|
proxy-cidr-monitor = []
|
|
rich-config-errors = ["dep:ariadne"]
|
|
tcp-hole-punch = []
|
|
proxy-packet = [
|
|
"wrapped-transport",
|
|
"dep:smoltcp",
|
|
"smoltcp/std",
|
|
"smoltcp/proto-ipv4",
|
|
"smoltcp/proto-ipv4-fragmentation",
|
|
"smoltcp/fragmentation-buffer-size-65536",
|
|
"smoltcp/assembler-max-segment-count-16",
|
|
"smoltcp/reassembly-buffer-size-65536",
|
|
"smoltcp/reassembly-buffer-count-16",
|
|
]
|
|
proxy-smoltcp-stack = [
|
|
"proxy-packet",
|
|
"smoltcp/medium-ip",
|
|
"smoltcp/socket-tcp",
|
|
"smoltcp/socket-udp",
|
|
"smoltcp/proto-ipv6",
|
|
"smoltcp/async",
|
|
]
|
|
wasm-host-tunnel = []
|
|
wasm-host-tunnel-outbound = ["wasm-host-tunnel"]
|
|
test-utils = []
|
|
tracing-log = ["tracing/log"]
|
|
zstd = ["dep:zstd"]
|
|
|
|
[target.'cfg(not(target_os = "wasi"))'.dev-dependencies]
|
|
tokio = { workspace = true, features = ["rt-multi-thread"] }
|
|
|
|
[package.metadata.cargo-machete]
|
|
ignored = [
|
|
# Enable browser entropy backends for transitive rand/snow dependencies.
|
|
"getrandom-02",
|
|
"getrandom-03",
|
|
]
|