mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 18:18:55 +00:00
The `connlib-shared` crate has become a bit of a dependency magnet without a clear purpose. It hosts utilities like `get_user_agent`, messages for the client and gateway to communicate with the portal and domain types like `ResourceId`. To create a better dependency structure in our workspace, we repurpose `connlib-shared` as a `connlib-model` crate. Its purpose is to host domain-specific model types that multiple crates may want to use. For that purpose, we rename the `callbacks::ResourceDescription` type to `ResourceView`, designating that this is a _view_ onto a resource as seen by `connlib`. The message types which currently double up as connlib-internal model thus become an implementation detail of `firezone-tunnel` and shouldn't be used for anything else. --------- Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com> Co-authored-by: Reactor Scram <ReactorScram@users.noreply.github.com>
113 lines
3.9 KiB
TOML
113 lines
3.9 KiB
TOML
[workspace]
|
|
members = [
|
|
"bin-shared",
|
|
"connlib/clients/android",
|
|
"connlib/clients/apple",
|
|
"connlib/clients/shared",
|
|
"connlib/model",
|
|
"connlib/snownet",
|
|
"connlib/tunnel",
|
|
"gateway",
|
|
"gui-client/src-common",
|
|
"gui-client/src-tauri",
|
|
"headless-client",
|
|
"iced-client",
|
|
"ip-packet",
|
|
"logging",
|
|
"phoenix-channel",
|
|
"relay",
|
|
"socket-factory",
|
|
"telemetry",
|
|
"tests/gui-smoke-test",
|
|
"tests/http-test-server",
|
|
"tun",
|
|
]
|
|
|
|
resolver = "2"
|
|
|
|
[workspace.dependencies]
|
|
atomicwrites = "0.4.4"
|
|
boringtun = { version = "0.6", default-features = false }
|
|
chrono = { version = "0.4", default-features = false, features = ["std", "clock", "oldtime", "serde"] }
|
|
swift-bridge = "0.1.57"
|
|
backoff = { version = "0.4", features = ["tokio"] }
|
|
tracing = { version = "0.1.40" }
|
|
tracing-macros = { git = "https://github.com/tokio-rs/tracing", branch = "v0.1.x" } # Contains `dbg!` but for `tracing`.
|
|
tracing-subscriber = { version = "0.3.17", features = ["parking_lot"] }
|
|
secrecy = "0.8"
|
|
str0m = { version = "0.6.2", default-features = false }
|
|
futures-bounded = "0.2.1"
|
|
domain = { version = "0.10", features = ["serde"] }
|
|
dns-lookup = "2.0"
|
|
tokio-tungstenite = "0.23.1"
|
|
rtnetlink = { version = "0.14.1", default-features = false, features = ["tokio_socket"] }
|
|
tokio = "1.39"
|
|
rustls = { version = "0.23.10", default-features = false, features = ["ring"] }
|
|
|
|
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" }
|
|
snownet = { path = "connlib/snownet" }
|
|
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"
|
|
|
|
[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/cloudflare/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`
|
|
proptest = { git = "https://github.com/proptest-rs/proptest", branch = "master" }
|
|
proptest-state-machine = { git = "https://github.com/proptest-rs/proptest", branch = "master" }
|
|
tracing-stackdriver = { git = "https://github.com/thomaseizinger/tracing-stackdriver", branch = "deps/bump-otel-0.23" } # Waiting for release.
|
|
|
|
# Enforce `tracing-macros` to have released `tracing` version.
|
|
[patch.'https://github.com/tokio-rs/tracing']
|
|
tracing = "0.1"
|
|
|
|
[profile.release]
|
|
strip = true
|
|
|
|
# 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
|
|
|
|
[profile.bench]
|
|
strip = false # Frame pointers are necessary for profiling; `strip=true` appears to remove them.
|
|
|
|
# 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"
|
|
strip = "none"
|
|
|
|
[profile.release.package.firezone-gui-client]
|
|
debug = "full"
|
|
split-debuginfo = "packed"
|
|
strip = "none"
|