Files
firezone/rust/Cargo.toml
Thomas Eizinger a0f079f1cd feat(gui-client): send Linux GUI logs to journald (#8236)
This configures the GUI client to log to journald in addition to files
as well. For better or worse, this logs all events such that structured
information is preserved, e.g. all additional fields next to the message
are also saved as fields in the journal. By default, when viewing the
logs via `journalctl`, those fields are not displayed. This makes the
default output of `journalctl` for the FIrezone GUI not as useful as it
could be. Fixing that is left to a later stage.

Related: #8173
2025-02-24 04:28:56 +00:00

214 lines
6.6 KiB
TOML

[workspace]
members = [
"bin-shared",
"connlib/clients/android",
"connlib/clients/apple",
"connlib/clients/shared",
"connlib/model",
"connlib/snownet",
"connlib/tunnel",
"dns-over-tcp",
"gateway",
"gui-client/src-common",
"gui-client/src-tauri",
"headless-client",
"ip-packet",
"logging",
"phoenix-channel",
"relay",
"socket-factory",
"telemetry",
"tests/gui-smoke-test",
"tests/http-test-server",
"tun",
]
resolver = "2"
[workspace.package]
license = "Apache-2.0"
edition = "2021"
[workspace.dependencies]
anyhow = "1.0.95"
arboard = { version = "3.4.0", default-features = false }
async-trait = { version = "0.1", default-features = false }
atomicwrites = "0.4.4"
axum = { version = "0.7.7", default-features = false }
backoff = { version = "0.4", features = ["tokio"] }
base64 = { version = "0.22.1", default-features = false }
bimap = "0.6"
boringtun = { version = "0.6", default-features = false }
bytecodec = "0.4.15"
bytes = { version = "1.9.0", default-features = false }
chrono = { version = "0.4", default-features = false, features = ["std", "clock", "oldtime", "serde"] }
clap = "4.5.28"
derive_more = "1.0.0"
difference = "2.0.0"
dirs = "5.0.1"
divan = "0.1.17"
dns-lookup = "2.0"
domain = { version = "0.10", features = ["serde"] }
either = "1"
env_logger = "0.11.6"
etherparse = "0.16"
futures = { version = "0.3.31", default-features = false }
futures-bounded = "0.2.1"
futures-util = { version = "0.3", default-features = false }
glob = "0.3.2"
hex = "0.4.3"
hex-display = "0.3.0"
hex-literal = "0.4.1"
caps = "0.5.5"
humantime = "2.1"
ip_network = { version = "0.4", default-features = false }
ip_network_table = { version = "0.2", default-features = false }
itertools = "0.13"
jni = "0.21.1"
supports-color = "3.0.2"
keyring = "3.6.1"
known-folders = "1.2.0"
libc = "0.2.150"
log = "0.4"
lru = "0.12.5"
mio = "1.0.3"
moka = "0.12.10"
native-dialog = "0.7.0"
nix = "0.29.0"
nu-ansi-term = "0.50"
once_cell = "1.17.1"
ringbuffer = "0.15.0"
opentelemetry = "0.26.0"
opentelemetry-otlp = "0.26.0"
opentelemetry_sdk = "0.26.0"
os_info = { version = "3", default-features = false }
output_vt100 = "0.1"
png = "0.17.16"
proptest = "1.6.0"
proptest-state-machine = "0.3.1"
quinn-udp = { version = "0.5.8", features = ["fast-apple-datapath"] }
rand = "0.8.5"
rand_core = "0.6.4"
rangemap = "1.5.1"
rayon = "1.10.0"
reqwest = { version = "0.12.9", default-features = false }
rtnetlink = { version = "0.14.1", default-features = false, features = ["tokio_socket"] }
rustls = { version = "0.23.21", default-features = false, features = ["ring"] }
sadness-generator = "0.6.0"
secrecy = "0.8"
semver = "1.0.25"
sentry = { version = "0.36.0", default-features = false }
sentry-tracing = "0.36.0"
serde = "1.0.217"
serde_json = "1.0.135"
serde_variant = "0.1.3"
sha2 = "0.10.8"
smallvec = "1.13.2"
smbios-lib = "0.9.2"
smoltcp = { version = "0.12", default-features = false }
static_assertions = "1.1.0"
str0m = { version = "0.6.3", default-features = false, features = ["sha1"] }
strum = { version = "0.27.1", features = ["derive"] }
stun_codec = "0.3.4"
subprocess = "0.2.9"
subtle = "2.5.0"
swift-bridge = "0.1.57"
swift-bridge-build = "0.1.57"
lockfree-object-pool = "0.1.6"
tauri = "2.2.5"
tauri-build = "2.0.1"
tauri-plugin-dialog = "2.2.0"
tauri-plugin-notification = "2.2.0"
tauri-plugin-shell = "2.2.0"
tauri-plugin-opener = "2.2.0"
tauri-runtime = "2.3.0"
tauri-utils = "2.1.1"
tempfile = "3.13.0"
test-case = "3.3.1"
test-strategy = "0.4.0"
thiserror = "1.0.68"
time = "0.3.37"
tokio = "1.43"
tokio-stream = "0.1.17"
flume = { version = "0.11.1", features = ["async"] }
tokio-tungstenite = "0.23.1"
tokio-util = "0.7.11"
tracing = { version = "0.1.40" }
tracing-appender = "0.2.3"
tracing-core = "0.1.31"
tracing-log = "0.2.0"
tracing-macros = { git = "https://github.com/tokio-rs/tracing", branch = "v0.1.x" } # Contains `dbg!` but for `tracing`.
tracing-opentelemetry = "0.27.0"
tracing-stackdriver = "0.11.0"
tracing-journald = "0.3.1"
tracing-subscriber = { version = "0.3.19", features = ["parking_lot"] }
trackable = "1.3.0"
url = "2.5.2"
uuid = "1.10.0"
windows = "0.58.0"
winreg = "0.52.0"
zip = { version = "2", default-features = false }
connlib-client-android = { path = "connlib/clients/android" }
connlib-client-apple = { path = "connlib/clients/apple" }
connlib-client-shared = { path = "connlib/clients/shared" }
firezone-bin-shared = { path = "bin-shared" }
firezone-logging = { path = "logging" }
firezone-telemetry = { path = "telemetry" }
firezone-headless-client = { path = "headless-client" }
firezone-gui-client-common = { path = "gui-client/src-common" }
snownet = { path = "connlib/snownet" }
dns-over-tcp = { path = "dns-over-tcp" }
firezone-relay = { path = "relay" }
connlib-model = { path = "connlib/model" }
firezone-tunnel = { path = "connlib/tunnel" }
phoenix-channel = { path = "phoenix-channel" }
ip-packet = { path = "ip-packet" }
socket-factory = { path = "socket-factory" }
tun = { path = "tun" }
socket2 = { version = "0.5" }
[workspace.lints.clippy]
dbg_macro = "warn"
print_stdout = "warn"
print_stderr = "warn"
unnecessary_wraps = "warn"
unused_async = "warn"
wildcard_enum_match_arm = "warn" # Ensures we match on all combinations of `Poll`, preventing erroneous suspensions.
redundant_else = "warn"
redundant_clone = "warn"
unwrap_in_result = "warn"
unwrap_used = "warn"
[workspace.lints.rustdoc]
private-intra-doc-links = "allow" # We don't publish any of our docs but want to catch dead links.
[patch.crates-io]
boringtun = { git = "https://github.com/firezone/boringtun", branch = "master" }
str0m = { git = "https://github.com/algesten/str0m", branch = "main" }
ip_network = { git = "https://github.com/JakubOnderka/ip_network", branch = "master" } # Waiting for release.
ip_network_table = { git = "https://github.com/edmonds/ip_network_table", branch = "some-useful-traits" } # For `Debug` and `Clone`
tracing-stackdriver = { git = "https://github.com/thomaseizinger/tracing-stackdriver", branch = "bump-otel-0.26" } # Waiting for release.
# Enforce `tracing-macros` to have released `tracing` version.
[patch.'https://github.com/tokio-rs/tracing']
tracing = "0.1.41"
[profile.release]
# Full link-time optimization. Reduces binaries by up to 3x on some platforms.
lto = "fat"
# Increases the compiler's ability to produce smaller, optimized code
# at the expense of compilation time
codegen-units = 1
# Override build settings just for the GUI client, so we get a pdb/dwp
# Cargo ignores profile settings if they're not in the workspace's Cargo.toml
[profile.dev.package.firezone-gui-client]
debug = "full"
split-debuginfo = "packed"
[profile.release.package.firezone-gui-client]
debug = "full"
split-debuginfo = "packed"