[package]
edition = "2021"
rust-version = "1.88.0"
name = "veilid-tools"
version = "0.5.2"
authors = ["Veilid Team <contact@veilid.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A collection of baseline tools for Rust development use by Veilid and Veilid-enabled Rust applications"
homepage = "https://veilid.gitlab.io/developer-book/"
documentation = "https://docs.rs/veilid-tools"
readme = "README.md"
license = "MPL-2.0"
repository = "https://gitlab.com/veilid/veilid"
resolver = "2"
[package.metadata.ios]
build_id_prefix = "com.veilid.veilidtools"
build_targets = [
"aarch64-apple-ios",
"aarch64-apple-ios-sim",
"x86_64-apple-ios",
]
deployment_target = "12.0"
[features]
debug-locks = []
debug-locks-detect = []
default = ["rt-tokio"]
log-location-quiet = []
panic-quiet = []
rt-async-std = [
"async-std",
"async_executors/async_std",
"rtnetlink/smol_socket",
]
rt-tokio = [
"tokio",
"tokio-util",
"tokio-stream",
"rtnetlink/tokio_socket",
"async_executors/tokio_tp",
"async_executors/tokio_io",
"async_executors/tokio_timer",
"hickory-resolver/tokio",
]
rt-wasm-bindgen = [
"async_executors/bindgen",
"async_executors/timer",
"ws_stream_wasm",
]
test-util = []
tracing = [
"dep:tracing",
"dep:tracing-subscriber",
"tokio/tracing",
]
veilid_tools_android_tests = [
"dep:paranoid-android",
"test-util",
]
veilid_tools_ios_tests = [
"dep:tracing",
"dep:oslog",
"dep:tracing-oslog",
"test-util",
]
virtual-network = ["dep:postcard"]
virtual-network-server = [
"dep:async-tungstenite",
"dep:indent",
"dep:ipnet",
"dep:serde_yaml",
"dep:validator",
"dep:ws_stream_tungstenite",
"dep:rand_chacha",
]
virtual-router-bin = [
"tracing",
"virtual-network-server",
"dep:clap",
"dep:time",
"dep:bugsalot",
]
[lib]
name = "veilid_tools"
crate-type = [
"cdylib",
"staticlib",
"rlib",
]
path = "src/lib.rs"
[[bin]]
name = "virtual_router"
path = "src/bin/virtual_router/main.rs"
required-features = ["virtual-router-bin"]
[[test]]
name = "web"
path = "tests/web.rs"
[dependencies.async-lock]
version = "3.4.0"
[dependencies.backtrace]
version = "^0.3.71"
[dependencies.cfg-if]
version = "1.0.0"
[dependencies.flume]
version = "0.11.1"
features = ["async"]
[dependencies.fn_name]
version = "0.1.0"
[dependencies.futures-util]
version = "0.3.31"
features = ["alloc"]
default-features = false
[dependencies.futures_codec]
version = "0.4.1"
[dependencies.imbl]
version = "3.0.0"
features = ["serde"]
[dependencies.indent]
version = "0.1.1"
[dependencies.log]
version = "0.4.26"
[dependencies.once_cell]
version = "1.20.3"
[dependencies.parking_lot]
version = "0.12.3"
[dependencies.postcard]
version = "1.1.1"
features = ["use-std"]
optional = true
[dependencies.rand]
version = "0.8.5"
[dependencies.range-set-blaze]
version = "0.1.16"
[dependencies.serde]
version = "1.0.218"
features = [
"derive",
"rc",
]
[dependencies.stop-token]
version = "0.7.0"
default-features = false
[dependencies.thiserror]
version = "1.0.69"
[dependencies.tracing]
version = "0.1.41"
features = [
"log",
"attributes",
]
optional = true
[dependencies.tracing-subscriber]
version = "0.3.19"
features = [
"env-filter",
"time",
]
optional = true
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.async_executors]
version = "0.7.0"
default-features = false
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.js-sys]
version = "0.3.83"
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.send_wrapper]
version = "0.6.0"
features = ["futures"]
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.ws_stream_wasm]
version = "0.7.4"
optional = true
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dev-dependencies.console_error_panic_hook]
version = "0.1.7"
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dev-dependencies.veilid-tracing-wasm]
version = "=0.1.0"
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dev-dependencies.wasm-bindgen-test]
version = "0.3.56"
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dev-dependencies.wasm-logger]
version = "0.2.0"
[target.'cfg(any(target_os = "android", target_os = "linux"))'.dependencies.netlink-packet-route]
version = "=0.17.1"
[target.'cfg(any(target_os = "android", target_os = "linux"))'.dependencies.netlink-sys]
version = "=0.8.5"
[target.'cfg(any(target_os = "android", target_os = "linux"))'.dependencies.rtnetlink]
version = "=0.13.1"
default-features = false
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.async-io]
version = "1.13.0"
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.async-std]
version = "1.13.0"
features = ["unstable"]
optional = true
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.async-tungstenite]
version = "0.28.2"
optional = true
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.bugsalot]
version = "0.2.0"
optional = true
package = "veilid-bugsalot"
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.chrono]
version = "0.4.40"
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.clap]
version = "4"
features = ["derive"]
optional = true
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.ctrlc]
version = "^3"
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.futures-util]
version = "0.3.31"
features = [
"async-await",
"sink",
"std",
"io",
]
default-features = false
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.hickory-resolver]
version = "0.25.2"
features = ["system-config"]
default-features = false
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.indent]
version = "0.1.1"
optional = true
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.ipnet]
version = "2"
features = ["serde"]
optional = true
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.libc]
version = "0.2.170"
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.nix]
version = "0.27.1"
features = ["user"]
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.rand_chacha]
version = "0.3.1"
optional = true
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.serde_yaml]
version = "^0.10.0"
optional = true
package = "serde_yaml_ng"
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.socket2]
version = "0.5.8"
features = ["all"]
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.time]
version = "0.3.38"
features = [
"local-offset",
"formatting",
]
optional = true
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.tokio]
version = "1.43.0"
features = [
"rt-multi-thread",
"net",
"time",
"sync",
"parking_lot",
]
optional = true
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.tokio-stream]
version = "0.1.17"
features = ["net"]
optional = true
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.tokio-util]
version = "0.7.13"
features = ["compat"]
optional = true
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.validator]
version = "0.19.0"
features = ["derive"]
optional = true
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.ws_stream_tungstenite]
version = "0.14.0"
optional = true
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dev-dependencies.env_logger]
version = "0.11.8"
[target.'cfg(target_os = "android")'.dependencies.android_logger]
version = "0.13.3"
[target.'cfg(target_os = "android")'.dependencies.jni]
version = "0.21.1"
[target.'cfg(target_os = "android")'.dependencies.paranoid-android]
version = "0.2.2"
optional = true
[target.'cfg(target_os = "ios")'.dependencies.oslog]
version = "0.2.0"
optional = true
[target.'cfg(target_os = "ios")'.dependencies.tracing-oslog]
version = "0.3.0"
optional = true
[target.'cfg(target_os = "windows")'.dependencies.winapi]
version = "0.3.9"
features = [
"iptypes",
"iphlpapi",
"winerror",
"errhandlingapi",
]
[target.'cfg(target_os = "windows")'.dependencies.windows]
version = "0.51.1"
features = [
"Win32_NetworkManagement_Dns",
"Win32_Foundation",
]
[target."cfg(unix)".dependencies.ifstructs]
version = "0.1.1"
[lints.clippy]
comparison_chain = "allow"
large_futures = "deny"
large_stack_arrays = "deny"
large_stack_frames = "deny"
large_types_passed_by_value = "deny"
must_use_candidate = "deny"
needless_range_loop = "allow"
ptr_cast_constness = "deny"
unused_async = "deny"
upper_case_acronyms = "allow"
[lints.clippy.all]
level = "deny"
priority = -1
[lints.rust]
unused_must_use = "deny"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(tokio_unstable)"]