mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 10:18:54 +00:00
The downcasting abilities of `anyhow` are pretty powerful. Unfortunately, they can also be a bit tricky to get right. Whilst `is` and `downcast` work fine for any errors that are within the `anyhow` error chain, they don't check the chain of errors prior to that. In other words, if we already have a nested `std::error::Error` with several causes, `anyhow` cannot downcast to these causes directly. In order to avoid this footgun, we create a thin-layer on top of the `anyhow` crate with some downcasting functions that always try to do the right thing.
73 lines
2.5 KiB
TOML
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 }
|
|
bytecodec = { workspace = true }
|
|
bytes = { workspace = true }
|
|
clap = { workspace = true, features = ["derive", "env"] }
|
|
derive_more = { workspace = true, features = ["from"] }
|
|
firezone-bin-shared = { workspace = true }
|
|
firezone-logging = { workspace = true }
|
|
firezone-telemetry = { workspace = true }
|
|
futures = { workspace = true }
|
|
hex = { workspace = true }
|
|
hex-display = { 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 }
|
|
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
|