[package]
edition = "2021"
rust-version = "1.88.0"
name = "veilid-core"
version = "0.5.2"
authors = ["Veilid Team <contact@veilid.com>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Core library used to create a Veilid node and operate it as part of an application"
homepage = "https://veilid.gitlab.io/developer-book/"
documentation = "https://docs.rs/veilid-core"
readme = "README.md"
license = "MPL-2.0"
repository = "https://gitlab.com/veilid/veilid"
resolver = "2"
[package.metadata.cargo-machete]
ignored = [
"capnpc",
"glob",
"sha2",
"reqwest",
"serde_bytes",
"js-sys",
]
[features]
crypto-test = [
"enable-crypto-vld0",
"enable-crypto-none",
]
crypto-test-none = ["enable-crypto-none"]
debug-locks = ["veilid-tools/debug-locks"]
debug-locks-detect = [
"veilid-tools/debug-locks",
"veilid-tools/debug-locks-detect",
]
default = ["default-tokio"]
default-async-std = [
"enable-crypto-vld0",
"rt-async-std",
"instrument",
]
default-tokio = [
"enable-crypto-vld0",
"rt-tokio",
"instrument",
]
default-wasm = ["enable-crypto-vld0"]
enable-crypto-none = [
"ed25519-dalek",
"curve25519-dalek",
"blake3",
"argon2",
"digest",
"blake2",
]
enable-crypto-vld0 = [
"ed25519-dalek",
"x25519-dalek",
"curve25519-dalek",
"blake3",
"chacha20poly1305",
"chacha20",
"argon2",
"blake2",
]
enable-protocol-wss = []
footgun = []
geolocation = [
"maxminddb",
"reqwest",
]
instrument = []
json-camel-case = []
rt-async-std = [
"async-std",
"veilid-tools/rt-async-std",
]
rt-tokio = [
"tokio",
"veilid-tools/rt-tokio",
]
test-util = ["veilid-tools/test-util"]
tracking = []
unstable-blockstore = []
unstable-tunnels = []
veilid_core_android_tests = [
"dep:paranoid-android",
"test-util",
]
veilid_core_ios_tests = [
"dep:tracing-oslog",
"test-util",
]
verbose-tracing = ["instrument"]
virtual-network = ["veilid-tools/virtual-network"]
virtual-network-server = ["veilid-tools/virtual-network-server"]
[lib]
name = "veilid_core"
crate-type = [
"cdylib",
"staticlib",
"rlib",
]
path = "src/lib.rs"
[[test]]
name = "web"
path = "tests/web.rs"
[dependencies.arc-swap]
version = "1.8.0"
[dependencies.argon2]
version = "0.5.3"
optional = true
[dependencies.async-trait]
version = "0.1.89"
[dependencies.backtrace]
version = "^0.3.71"
[dependencies.blake2]
version = "^0"
features = ["size_opt"]
optional = true
default-features = false
[dependencies.blake3]
version = "1.8.2"
optional = true
[dependencies.bytes]
version = "1.10.1"
features = ["serde"]
[dependencies.capnp]
version = "0.21.0"
features = ["alloc"]
default-features = false
[dependencies.cfg-if]
version = "1.0.0"
[dependencies.chacha20]
version = "0.9.1"
optional = true
[dependencies.chacha20poly1305]
version = "0.10.1"
optional = true
[dependencies.curve25519-dalek]
version = "4.1.3"
features = [
"alloc",
"zeroize",
"precomputed-tables",
]
optional = true
default-features = false
[dependencies.data-encoding]
version = "2.8.0"
[dependencies.digest]
version = "0.10.7"
features = ["rand_core"]
optional = true
[dependencies.directories]
version = "5.0.1"
[dependencies.ed25519-dalek]
version = "2.1.1"
features = [
"alloc",
"rand_core",
"digest",
"zeroize",
]
optional = true
default-features = false
[dependencies.enumset]
version = "1.1.5"
features = ["serde"]
[dependencies.eyre]
version = "0.6.12"
[dependencies.flume]
version = "0.11.1"
features = ["async"]
[dependencies.futures-util]
version = "0.3.31"
features = ["alloc"]
default-features = false
[dependencies.get-size]
version = "0.1.4"
features = ["derive"]
[dependencies.hashlink]
version = "=0.1.3"
features = ["serde_impl"]
package = "veilid-hashlink"
[dependencies.hex]
version = "0.4.3"
[dependencies.indent]
version = "0.1.1"
[dependencies.json]
version = "0.12.4"
[dependencies.keyvaluedb]
version = "=0.1.6"
[dependencies.lazy_static]
version = "1.5.0"
[dependencies.lz4_flex]
version = "0.11.3"
features = [
"safe-encode",
"safe-decode",
]
default-features = false
[dependencies.macro_rules_attribute]
version = "0.2.2"
[dependencies.num-traits]
version = "0.2.19"
[dependencies.once_cell]
version = "1.20.3"
[dependencies.parking_lot]
version = "0.12.5"
features = ["arc_lock"]
[dependencies.paste]
version = "1.0.15"
[dependencies.range-set-blaze]
version = "0.1.16"
[dependencies.sanitize-filename]
version = "0.5.0"
[dependencies.schemars]
version = "1.0.3"
[dependencies.serde]
version = "1.0.218"
features = [
"derive",
"rc",
]
[dependencies.serde_json]
version = "1.0.140"
[dependencies.serde_with]
version = "3.12.0"
[dependencies.shell-words]
version = "1.1.0"
[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",
]
[dependencies.tracing-subscriber]
version = "0.3.19"
[dependencies.veilid-tools]
version = "0.5.2"
features = ["tracing"]
default-features = false
[dependencies.weak-table]
version = "0.3.2"
[dependencies.x25519-dalek]
version = "2.0.1"
features = [
"alloc",
"static_secrets",
"zeroize",
"precomputed-tables",
]
optional = true
default-features = false
[build-dependencies.bosion]
version = "1.1.2"
default-features = false
[build-dependencies.capnpc]
version = "0.21.0"
[build-dependencies.glob]
version = "0.3.2"
[build-dependencies.hex]
version = "0.4.3"
[build-dependencies.reqwest]
version = "0.11"
features = ["blocking"]
optional = true
[build-dependencies.sha2]
version = "0.10.8"
[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.keyvaluedb-web]
version = "=0.1.6"
[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.serde-wasm-bindgen]
version = "0.6.5"
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.serde_bytes]
version = "0.11"
features = ["alloc"]
default-features = false
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.tsify]
version = "0.5.5"
features = ["js"]
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.veilid-tools]
version = "0.5.2"
features = ["rt-wasm-bindgen"]
default-features = false
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.wasm-bindgen]
version = "=0.2.108"
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.wasm-bindgen-derive]
version = "0.3.0"
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.web-sys]
version = "0.3.77"
features = [
"Document",
"HtmlDocument",
"IdbFactory",
"IdbOpenDbRequest",
"Storage",
"Location",
"Window",
]
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies.ws_stream_wasm]
version = "0.7.4"
[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(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.async-sqlite]
version = "=0.5.3"
[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-tls]
version = "0.13.0"
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.async-tungstenite]
version = "0.27.0"
features = ["async-tls"]
[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.igd]
version = "0.1.1"
package = "veilid-igd"
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.keyring-manager]
version = "=0.6.0"
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.keyvaluedb-sqlite]
version = "=0.1.6"
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.maxminddb]
version = "0.24.0"
optional = true
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.rustls]
version = "0.21.12"
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.rustls-pemfile]
version = "1.0.4"
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies.sysinfo]
version = "^0.30.13"
default-features = false
[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")))'.dev-dependencies.bugsalot]
version = "0.2.0"
package = "veilid-bugsalot"
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dev-dependencies.tracing-subscriber]
version = "0.3.19"
features = ["env-filter"]
[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.tracing-oslog]
version = "0.3.0"
optional = true
[target.'cfg(target_os = "windows")'.dependencies]
[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)"]