Files
firezone/rust/gui-client/src-tauri/Cargo.toml
Thomas Eizinger b7dc897eea refactor(rust): introduce libs/ directory (#10964)
The current Rust workspace isn't as consistent as it could be. To make
navigation a bit easier, we move a few crates around. Generally, we
follow the idea that entry-points should be at the top-level. `rust/`
now looks like this (directories only):

```
.
├── cli             # Firezone CLI
├── client-ffi      # Entry point for Apple & Android
├── gateway         # Gateway
├── gui-client      # GUI client
├── headless-client # Headless client
├── libs            # Library crates
├── relay           # Relay
├── target          # Compile artifacts
├── tests           # Crates for testing
└── tools           # Local tools
```

To further enforce this structure, we also drop the `firezone-` prefix
from all crates that are not top-level binary crates.
2025-11-25 10:59:11 +00:00

106 lines
3.6 KiB
TOML

[package]
name = "firezone-gui-client"
# mark:next-gui-version
version = "1.5.9"
description = "Firezone"
edition = { workspace = true }
default-run = "firezone-gui-client"
authors = ["Firezone, Inc."]
license = { workspace = true }
[package.metadata.tslink]
enum_representation = "discriminated"
[features]
# this feature is used for production builds or when `devPath` points to the filesystem
# DO NOT REMOVE!!
# TODO: We can probably remove this, per <https://github.com/tauri-apps/tauri/releases/tag/tauri-v2.0.0-beta.8>
# I don't know how to verify this change, so I won't do it right now.
custom-protocol = ["tauri/custom-protocol"]
[dependencies]
anyhow = { workspace = true }
arboard = { workspace = true }
atomicwrites = { workspace = true }
backoff = { workspace = true }
bin-shared = { workspace = true }
chrono = { workspace = true }
clap = { workspace = true, features = ["derive", "env"] }
client-shared = { workspace = true }
connlib-model = { workspace = true }
derive_more = { workspace = true, features = ["debug"] }
futures = { workspace = true }
hex = { workspace = true }
humantime = { workspace = true }
ip-packet = { workspace = true }
keyring = { workspace = true, features = ["crypto-rust", "sync-secret-service", "windows-native"] }
logging = { workspace = true }
native-dialog = { workspace = true }
output_vt100 = { workspace = true }
phoenix-channel = { workspace = true }
png = { workspace = true } # `png` is mostly free since we already need it for Tauri
rand = { workspace = true }
reqwest = { workspace = true, features = ["stream", "rustls-tls"] }
rustls = { workspace = true }
sadness-generator = { workspace = true }
secrecy = { workspace = true, features = ["serde"] }
semver = { workspace = true, features = ["serde"] }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
serde_variant = { workspace = true }
specta = { workspace = true, features = ["url"] }
specta-typescript = { workspace = true }
strum = { workspace = true }
subtle = { workspace = true }
tauri = { workspace = true, features = ["tray-icon", "image-png"] }
tauri-plugin-dialog = { workspace = true }
tauri-plugin-notification = { workspace = true }
tauri-plugin-opener = { workspace = true }
tauri-plugin-shell = { workspace = true }
tauri-runtime = { workspace = true }
tauri-specta = { workspace = true }
tauri-utils = { workspace = true }
telemetry = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true, features = ["signal", "time", "macros", "rt", "rt-multi-thread"] }
tokio-stream = { workspace = true }
tokio-util = { workspace = true, features = ["codec"] }
tracing = { workspace = true }
tracing-log = { workspace = true }
tracing-subscriber = { workspace = true, features = ["env-filter"] }
url = { workspace = true }
uuid = { workspace = true, features = ["v4"] }
zip = { workspace = true, features = ["deflate", "time"] }
[target.'cfg(target_os = "linux")'.dependencies]
dirs = { workspace = true }
nix = { workspace = true, features = ["user"] }
sd-notify = { workspace = true }
tracing-journald = { workspace = true }
[target.'cfg(target_os = "macos")'.dependencies]
[target.'cfg(target_os = "windows")'.dependencies]
admx-macro = { workspace = true }
tauri-winrt-notification = "0.7.2"
windows-service = { workspace = true }
winreg = { workspace = true }
[target.'cfg(target_os = "windows")'.dependencies.windows]
workspace = true
features = [
"Win32_Foundation",
"Win32_System_Threading",
"Win32_System_Pipes", # For IPC system
]
[build-dependencies]
anyhow = { workspace = true }
tauri-build = { workspace = true, features = [] }
[dev-dependencies]
tempfile = { workspace = true }
[lints]
workspace = true