Files
tglock/Cargo.toml
T
Никита Sonic 05ce9566a8 fix: маршруты, медиа и Worker; Android APK и статический ARM64 CLI (#60)
* fix: address routing, media, worker and platform issues

* ci: use available Android tools and verify Windows CLI artifact

* fix(gui): return a result from asynchronous stop command

* test(android): verify installed APK and proxy lifecycle on emulator

* fix(media): use native MTProto for CDN203 and retain recent diagnostics

* Fix owned WebSocket split after transport boxing

* Clarify CDN transport and connection status guarantees

* Recognize accessible Android power button labels

* chore(release): prepare 2.0.0-beta.15 with verified draft publication

---------

Co-authored-by: babin <Thartewerner536e@engineer.com>
2026-09-19 16:04:39 +03:00

79 lines
2.7 KiB
TOML

[package]
name = "tglock"
version = "2.0.0-beta.15"
edition = "2021"
rust-version = "1.88"
description = "Telegram unblock via local WebSocket tunnel"
license = "MIT"
autobins = false
[features]
default = ["gui"]
# The desktop GUI. Turning it off drops Tauri, the system WebView and the
# frontend bundle from the build, which is what makes headless servers and
# machines without a GPU or monitor able to build and run TGLock at all.
gui = ["dep:tauri", "dep:tauri-build", "dep:tauri-plugin-opener"]
# The headless binary. Deliberately NOT in `default`.
#
# When both binaries exist in one build, the Tauri bundler picks the wrong one
# as the application: `tauri build --target <triple>` packaged tglock-cli and
# shipped it as the app in v2.0.0-beta.2 and v2.0.0-beta.3. Keeping the CLI
# behind its own non-default feature means it simply does not exist during an
# application build, so there is nothing to pick wrongly.
cli = ["dep:clap", "dep:toml"]
[lib]
name = "tglock_lib"
path = "src/lib.rs"
crate-type = ["staticlib", "cdylib", "rlib"]
[[bin]]
name = "tglock"
path = "src/main.rs"
required-features = ["gui"]
[[bin]]
name = "tglock-cli"
path = "src/bin/cli.rs"
required-features = ["cli"]
[dependencies]
tauri = { version = "2", features = [], optional = true }
tauri-plugin-opener = { version = "2", optional = true }
clap = { version = "4", features = ["derive"], optional = true }
# Файл конфигурации CLI. TOML, а не JSON, потому что файл правят руками и в нём
# нужны комментарии.
toml = { version = "0.8", optional = true }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tokio = { version = "1", features = [
"rt-multi-thread",
"net",
"io-util",
"time",
"macros",
"sync",
"signal",
] }
tokio-tungstenite = { version = "0.24", features = ["rustls-tls-webpki-roots"] }
# Explicit ring provider supports Android and static musl without OpenSSL.
rustls = { version = "0.23", default-features = false, features = ["ring", "std", "tls12"] }
webpki-roots = "0.26"
futures-util = "0.3"
aes = "0.8"
ctr = "0.9"
cipher = "0.4"
sha2 = "0.10"
rand = "0.8"
[build-dependencies]
tauri-build = { version = "2", features = [], optional = true }
[dev-dependencies]
rcgen = "0.13"
tokio-rustls = { version = "0.26", default-features = false, features = ["ring", "tls12"] }
# `start_paused` в тестах: таймаут ожидания запроса от клиента — десять секунд,
# и ждать их по-настоящему в тесте нельзя. В сборку не попадает: dev-зависимости
# участвуют только в тестах.
tokio = { version = "1", features = ["test-util"] }