mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 10:18:54 +00:00
It turns out that the Rust compiler doesn't always say that it is adding debug information to a binary even when it does! The build output only displays `[optimized]` when in fact it does actually emit debug information. Adding an additional linker flag configures `bpf-linker` to include the necessary BTF information in our kernel. This makes debugging verifier errors much easier as the program output contains source code annotiations. It also should make it easier to debug issues using `xdpdump` which relies on BTF information. Resolves: #8503
240 lines
7.5 KiB
TOML
240 lines
7.5 KiB
TOML
[workspace]
|
|
members = [
|
|
"bin-shared",
|
|
"connlib/clients/android",
|
|
"connlib/clients/apple",
|
|
"connlib/clients/shared",
|
|
"connlib/l4-tcp-dns-server",
|
|
"connlib/l4-udp-dns-server",
|
|
"connlib/model",
|
|
"connlib/snownet",
|
|
"connlib/tunnel",
|
|
"dns-over-tcp",
|
|
"dns-types",
|
|
"etherparse-ext",
|
|
"gateway",
|
|
"gui-client/src-common",
|
|
"gui-client/src-tauri",
|
|
"headless-client",
|
|
"ip-packet",
|
|
"logging",
|
|
"phoenix-channel",
|
|
"relay/ebpf-shared",
|
|
"relay/ebpf-turn-router",
|
|
"relay/server",
|
|
"socket-factory",
|
|
"telemetry",
|
|
"tests/gui-smoke-test",
|
|
"tests/http-test-server",
|
|
"tun",
|
|
]
|
|
|
|
resolver = "2"
|
|
|
|
[workspace.package]
|
|
license = "Apache-2.0"
|
|
edition = "2024"
|
|
|
|
[workspace.dependencies]
|
|
anyhow = "1.0.97"
|
|
arboard = { version = "3.5.0", default-features = false }
|
|
async-trait = { version = "0.1", default-features = false }
|
|
atomicwrites = "0.4.4"
|
|
axum = { version = "0.7.7", default-features = false }
|
|
aya = { git = "https://github.com/aya-rs/aya" }
|
|
aya-build = { git = "https://github.com/aya-rs/aya" }
|
|
aya-ebpf = { git = "https://github.com/aya-rs/aya" }
|
|
aya-log = { git = "https://github.com/aya-rs/aya" }
|
|
aya-log-ebpf = { git = "https://github.com/aya-rs/aya" }
|
|
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 }
|
|
caps = "0.5.5"
|
|
chrono = { version = "0.4", default-features = false, features = ["std", "clock", "oldtime", "serde"] }
|
|
clap = "4.5.34"
|
|
connlib-client-android = { path = "connlib/clients/android" }
|
|
connlib-client-apple = { path = "connlib/clients/apple" }
|
|
connlib-client-shared = { path = "connlib/clients/shared" }
|
|
connlib-model = { path = "connlib/model" }
|
|
derive_more = "1.0.0"
|
|
difference = "2.0.0"
|
|
dirs = "5.0.1"
|
|
divan = "0.1.17"
|
|
dns-lookup = "2.0"
|
|
dns-over-tcp = { path = "dns-over-tcp" }
|
|
dns-types = { path = "dns-types" }
|
|
ebpf-shared = { path = "relay/ebpf-shared" }
|
|
either = "1"
|
|
env_logger = "0.11.6"
|
|
etherparse = { version = "0.17", default-features = false }
|
|
etherparse-ext = { path = "etherparse-ext" }
|
|
firezone-bin-shared = { path = "bin-shared" }
|
|
firezone-gui-client-common = { path = "gui-client/src-common" }
|
|
firezone-headless-client = { path = "headless-client" }
|
|
firezone-logging = { path = "logging" }
|
|
firezone-relay = { path = "relay/server" }
|
|
firezone-telemetry = { path = "telemetry" }
|
|
firezone-tunnel = { path = "connlib/tunnel" }
|
|
flume = { version = "0.11.1", features = ["async"] }
|
|
futures = { version = "0.3.31" }
|
|
futures-bounded = "0.2.1"
|
|
gat-lending-iterator = "0.1.6"
|
|
glob = "0.3.2"
|
|
hex = "0.4.3"
|
|
hex-display = "0.3.0"
|
|
hex-literal = "0.4.1"
|
|
humantime = "2.2"
|
|
ip-packet = { path = "ip-packet" }
|
|
ip_network = { version = "0.4", default-features = false }
|
|
ip_network_table = { version = "0.2", default-features = false }
|
|
itertools = "0.13"
|
|
jemallocator = "0.5.4"
|
|
jni = "0.21.1"
|
|
keyring = "3.6.1"
|
|
known-folders = "1.2.0"
|
|
l4-tcp-dns-server = { path = "connlib/l4-tcp-dns-server" }
|
|
l4-udp-dns-server = { path = "connlib/l4-udp-dns-server" }
|
|
libc = "0.2.171"
|
|
lockfree-object-pool = "0.1.6"
|
|
log = "0.4"
|
|
lru = "0.12.5"
|
|
mio = "1.0.3"
|
|
moka = "0.12.10"
|
|
native-dialog = "0.7.0"
|
|
network-types = "0.0.8"
|
|
nix = "0.29.0"
|
|
nu-ansi-term = "0.50"
|
|
num_cpus = "1.16.0"
|
|
once_cell = "1.17.1"
|
|
opentelemetry = "0.26.0"
|
|
opentelemetry-otlp = "0.26.0"
|
|
opentelemetry-stdout = "0.26.0"
|
|
opentelemetry_sdk = "0.26.0"
|
|
os_info = { version = "3", default-features = false }
|
|
output_vt100 = "0.1"
|
|
parking_lot = "0.12.3"
|
|
phoenix-channel = { path = "phoenix-channel" }
|
|
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 }
|
|
resolv-conf = "0.7.1"
|
|
ringbuffer = "0.15.0"
|
|
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.26"
|
|
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 }
|
|
snownet = { path = "connlib/snownet" }
|
|
socket-factory = { path = "socket-factory" }
|
|
socket2 = { version = "0.5" }
|
|
static_assertions = "1.1.0"
|
|
str0m = { version = "0.7.0", 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"
|
|
supports-color = "3.0.2"
|
|
swift-bridge = "0.1.57"
|
|
swift-bridge-build = "0.1.57"
|
|
tauri = "2.5.0"
|
|
tauri-build = "2.1.0"
|
|
tauri-plugin-dialog = "2.2.1"
|
|
tauri-plugin-notification = "2.2.2"
|
|
tauri-plugin-opener = "2.2.6"
|
|
tauri-plugin-shell = "2.2.1"
|
|
tauri-runtime = "2.5.0"
|
|
tauri-utils = "2.2.0"
|
|
tempfile = "3.13.0"
|
|
test-case = "3.3.1"
|
|
test-strategy = "0.4.0"
|
|
thiserror = "1.0.68"
|
|
time = "0.3.37"
|
|
tokio = "1.44"
|
|
tokio-stream = "0.1.17"
|
|
tokio-tungstenite = "0.23.1"
|
|
tokio-util = "0.7.13"
|
|
tracing = { version = "0.1.40" }
|
|
tracing-appender = "0.2.3"
|
|
tracing-core = "0.1.31"
|
|
tracing-journald = "0.3.1"
|
|
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-subscriber = { version = "0.3.19", features = ["parking_lot"] }
|
|
trackable = "1.3.0"
|
|
tun = { path = "tun" }
|
|
url = "2.5.2"
|
|
uuid = "1.16.0"
|
|
which = "4.4.2"
|
|
windows = "0.58.0"
|
|
winreg = "0.52.0"
|
|
zbus = "5.5.0"
|
|
zip = { version = "2", default-features = false }
|
|
|
|
[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" }
|
|
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.
|
|
softbuffer = { git = "https://github.com/rust-windowing/softbuffer" } # Waiting for release.
|
|
quinn-udp = { git = "https://github.com/quinn-rs/quinn", branch = "main" } # 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"
|
|
|
|
[profile.release.package.ebpf-turn-router]
|
|
debug = 2
|