Files
EasyTier/easytier-web/Cargo.toml
T
KKRainbow fd9e4ed418 build(core): consolidate crypto dependencies and trim features
Align AES-GCM, ChaCha20Poly1305, HMAC, SHA2 and HKDF with the versions
already required by Snow and STUN. Align base64 with pbjson, and explain
the coordinated upgrade constraints beside the manifest entries. Adapt
AEAD and HMAC calls without changing packet or key formats, and pin the
WireGuard client key derivation with an independent HKDF vector.

Limit Snow to the Noise algorithms used by the core. Use crossbeam-utils
directly, keep the futures executor in tests, and remove UUID fast-rng
from the core while retaining existing features in native consumers.
Enable browser entropy and certificate time for the rustls backend.

Core default normal/build dependencies fall from 255 to 224 packages;
duplicated package names fall from 24 to 5 against upstream 4837468d.

Validation: Docker tests pass: 970 core, 33 proto (2 ignored), 5
WireGuard, and TCP/UDP three-node encrypted relays. Clippy passes with
warnings denied for core, proto, native and web targets. Browser
default/ChaCha20, WASI and minimal native compile checks pass. Workspace
formatting passes.
2026-10-08 23:00:21 +08:00

100 lines
2.8 KiB
TOML

[package]
name = "easytier-web"
version = "2.7.0"
edition.workspace = true
rust-version.workspace = true
description = "Config server for easytier. easytier-core gets config from this and web frontend use it as restful api server."
[dependencies]
easytier = { workspace = true, default-features = true }
easytier-core = { workspace = true, default-features = true }
tracing.workspace = true
anyhow.workspace = true
thiserror.workspace = true
tokio = { workspace = true, default-features = true, features = ["full"] }
tokio-util = { workspace = true, features = ["rt"] }
dashmap.workspace = true
url.workspace = true
async-trait.workspace = true
futures = { workspace = true, features = ["default"] }
prost.workspace = true
maxminddb = "0.32"
axum = { workspace = true, features = ["macros"] }
axum-login = { version = "0.18" }
password-auth = { version = "1.0.0" }
axum-messages = "0.8.0"
axum-embed = { version = "0.1.0", optional = true }
tower-sessions-sqlx-store = { version = "0.15.0", features = ["sqlite"] }
# Match axum-login 0.18 and the SQLx session store.
tower-sessions = { version = "0.14.0", default-features = false, features = [
"signed",
"axum-core",
] }
tower-http = { workspace = true, features = ["cors", "compression-full"] }
sqlx = { workspace = true, features = ["sqlite"] }
sea-orm = { workspace = true, features = [
"sqlx-sqlite",
"runtime-tokio-rustls",
"macros",
] }
sea-orm-migration.workspace = true
# for captcha
rust-embed = { version = "8.12.0", features = ["debug-embed", "include-exclude"] }
base64.workspace = true
cidr.workspace = true
rand.workspace = true
sha2.workspace = true
x25519-dalek = { workspace = true, features = ["static_secrets"] }
easytier-proto.workspace = true
image = { version = "0.25", default-features = false, features = ["png"] }
ab_glyph = "0.2.32"
imageproc = { version = "0.27.0", default-features = false, features = ["text"] }
rust-i18n.workspace = true
sys-locale.workspace = true
clap = { workspace = true, features = [
"string",
"unicode",
"derive",
"wrap_help",
"env",
] }
serde = { workspace = true, features = ["derive"] }
serde_json.workspace = true
uuid = { workspace = true, features = [
"v4",
"fast-rng",
"macro-diagnostics",
"serde",
] }
chrono = { workspace = true, features = ["serde"] }
openidconnect = { version = "4.0", default-features = false, features = ["accept-rfc3339-timestamps", "reqwest"] }
reqwest = { workspace = true, features = ["json", "rustls"] }
subtle = "2.6"
mimalloc.workspace = true
[build-dependencies]
thunk-rs = { workspace = true, features = [
"win7",
] }
[features]
default = []
embed = ["dep:axum-embed"]
[package.metadata.cargo-machete]
ignored = [
# Windows-only build.rs setup calls thunk::thunk().
"thunk-rs",
]
[dev-dependencies]
tower = { version = "0.5", features = ["util"] }