Files
firezone/rust/relay/server/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

73 lines
2.5 KiB
TOML

[package]
name = "firezone-relay"
version = "0.1.0"
edition = { workspace = true }
license = { workspace = true }
[package.metadata.cargo-udeps.ignore]
development = ["difference"]
[dependencies]
anyhow = { workspace = true }
axum = { workspace = true, features = ["http1", "tokio", "query"] }
backoff = { workspace = true }
base64 = { workspace = true }
bin-shared = { workspace = true }
bytecodec = { workspace = true }
bytes = { workspace = true }
clap = { workspace = true, features = ["derive", "env"] }
derive_more = { workspace = true, features = ["from"] }
futures = { workspace = true }
hex = { workspace = true }
hex-display = { workspace = true }
logging = { workspace = true }
mio = { workspace = true, features = ["net"] }
once_cell = { workspace = true }
opentelemetry = { workspace = true, features = ["metrics"] }
opentelemetry-otlp = { workspace = true, features = ["metrics", "grpc-tonic"] }
opentelemetry_sdk = { workspace = true }
phoenix-channel = { workspace = true }
proptest = { workspace = true, optional = true }
rand = { workspace = true }
rustls = { workspace = true }
secrecy = { workspace = true }
serde = { workspace = true, features = ["derive"] }
sha2 = { workspace = true }
smallvec = { workspace = true }
socket-factory = { workspace = true }
socket2 = { workspace = true }
stun_codec = { workspace = true }
telemetry = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true, features = ["macros", "rt-multi-thread", "net", "time", "signal"] }
tracing = { workspace = true, features = ["log"] }
tracing-core = { workspace = true }
tracing-opentelemetry = { workspace = true }
tracing-stackdriver = { workspace = true, features = ["opentelemetry"] }
tracing-subscriber = { workspace = true, features = ["env-filter", "json", "fmt"] }
trackable = { workspace = true }
url = { workspace = true }
uuid = { workspace = true, features = ["v4"] }
[target.'cfg(target_os = "linux")'.dependencies]
aya = { workspace = true }
aya-log = { workspace = true }
ebpf-shared = { workspace = true, features = ["std"] }
[target.'cfg(target_os = "linux")'.build-dependencies]
anyhow = { workspace = true }
aya-build = { workspace = true }
[dev-dependencies]
difference = { workspace = true }
opentelemetry_sdk = { workspace = true, features = ["testing", "metrics"] }
test-strategy = { workspace = true }
tokio = { workspace = true, features = ["process", "macros", "net"] }
[[test]]
name = "regression"
required-features = ["proptest"]
[lints]
workspace = true