[package]
edition = "2024"
name = "velo"
version = "0.3.0"
authors = ["NVIDIA Inc. <sw-dl-dynamo@nvidia.com>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Velo distributed-systems runtime: active messaging, peer discovery, streaming, rendezvous, and queue backends"
homepage = "https://github.com/ai-dynamo/velo"
readme = "README.md"
keywords = [
"nvidia",
"distributed",
]
license = "Apache-2.0"
repository = "https://github.com/ai-dynamo/velo.git"
[package.metadata.cargo-machete]
ignored = [
"axum",
"http",
"http-body",
"http-body-util",
"hyper",
"hyper-util",
"prost",
"tower",
"bs58",
]
[features]
default = [
"http",
"nats-transport",
"grpc",
]
distributed-tracing = [
"dep:opentelemetry",
"dep:tracing-opentelemetry",
]
etcd = ["dep:etcd-client"]
grpc = [
"dep:tonic",
"dep:prost",
"dep:tower",
"dep:hyper",
"dep:http",
"dep:http-body",
"dep:http-body-util",
"dep:hyper-util",
"dep:tokio-stream",
]
http = ["dep:axum"]
nats-discovery = ["dep:async-nats"]
nats-queue = ["dep:async-nats"]
nats-transport = ["dep:async-nats"]
queue-messenger = []
simulation = ["dep:loom-rs"]
test-helpers = []
zmq = ["dep:zmq"]
[lib]
name = "velo"
path = "src/lib.rs"
[[test]]
name = "basic_messaging"
path = "tests/basic_messaging.rs"
[[test]]
name = "discovery_etcd"
path = "tests/discovery/etcd_discovery.rs"
required-features = ["etcd"]
[[test]]
name = "discovery_nats"
path = "tests/discovery/nats_discovery.rs"
required-features = ["nats-discovery"]
[[test]]
name = "observability_scenarios"
path = "tests/observability_scenarios.rs"
required-features = ["test-helpers"]
[[test]]
name = "queue_messenger"
path = "tests/queue/messenger_integration.rs"
required-features = ["queue-messenger"]
[[test]]
name = "queue_nats"
path = "tests/queue/nats_integration.rs"
required-features = ["nats-queue"]
[[test]]
name = "rendezvous_integration"
path = "tests/rendezvous_integration.rs"
[[test]]
name = "streaming_cancel"
path = "tests/streaming/cancel.rs"
[[test]]
name = "streaming_endurance"
path = "tests/streaming/endurance.rs"
[[test]]
name = "streaming_endurance_remote"
path = "tests/streaming/endurance_remote.rs"
[[test]]
name = "streaming_grpc_transport"
path = "tests/streaming/grpc_transport.rs"
required-features = ["grpc"]
[[test]]
name = "streaming_mock_transport"
path = "tests/streaming/mock_transport.rs"
[[test]]
name = "streaming_mpsc_integration"
path = "tests/streaming/mpsc_integration.rs"
[[test]]
name = "streaming_mpsc_remote_integration"
path = "tests/streaming/mpsc_remote_integration.rs"
[[test]]
name = "streaming_ordering"
path = "tests/streaming/ordering.rs"
[[test]]
name = "streaming_tcp_transport"
path = "tests/streaming/tcp_transport.rs"
[[test]]
name = "streaming_timing"
path = "tests/streaming/timing.rs"
[[test]]
name = "streaming_transport"
path = "tests/streaming_transport.rs"
[[test]]
name = "streaming_velo_integration"
path = "tests/streaming/velo_integration.rs"
[[test]]
name = "streaming_velo_specific"
path = "tests/streaming/velo_specific.rs"
[[test]]
name = "streaming_velo_transport"
path = "tests/streaming/velo_transport.rs"
[[test]]
name = "transports_backpressure"
path = "tests/transports/backpressure.rs"
required-features = ["test-helpers"]
[[test]]
name = "transports_grpc"
path = "tests/transports/grpc_integration.rs"
required-features = ["grpc"]
[[test]]
name = "transports_nats"
path = "tests/transports/nats_integration.rs"
required-features = ["nats-transport"]
[[test]]
name = "transports_nats_health"
path = "tests/transports/nats_health.rs"
required-features = ["nats-transport"]
[[test]]
name = "transports_tcp"
path = "tests/transports/tcp_integration.rs"
[[test]]
name = "transports_tcp_shutdown"
path = "tests/transports/tcp_shutdown.rs"
[[test]]
name = "transports_uds"
path = "tests/transports/uds_integration.rs"
[[test]]
name = "transports_uds_host_affinity"
path = "tests/transports/uds_host_affinity.rs"
[[test]]
name = "transports_uds_shutdown"
path = "tests/transports/uds_shutdown.rs"
[[test]]
name = "transports_zmq"
path = "tests/transports/zmq_integration.rs"
required-features = ["zmq"]
[[test]]
name = "two_instance_events"
path = "tests/two_instance_events.rs"
[dependencies.anyhow]
version = "1.0.0"
[dependencies.async-nats]
version = "0.45.0"
features = ["service"]
optional = true
[dependencies.async-stream]
version = "0.3"
[dependencies.axum]
version = "0.8"
optional = true
[dependencies.bs58]
version = "0.5"
[dependencies.bytes]
version = "1"
[dependencies.dashmap]
version = "6.1"
[dependencies.derive-getters]
version = "0.5"
[dependencies.derive_builder]
version = "0.20"
[dependencies.etcd-client]
version = "0.17.0"
features = ["tls"]
optional = true
[dependencies.flume]
version = "0.12.0"
[dependencies.fs4]
version = "0.13"
features = ["tokio"]
[dependencies.futures]
version = "0.3"
[dependencies.http]
version = "1.0"
optional = true
[dependencies.http-body]
version = "1.0"
optional = true
[dependencies.http-body-util]
version = "0.1"
optional = true
[dependencies.hyper]
version = "1.0"
optional = true
[dependencies.hyper-util]
version = "0.1"
features = [
"tokio",
"server",
"server-auto",
]
optional = true
[dependencies.loom-rs]
version = "0.5.0"
features = ["sim"]
optional = true
[dependencies.lru]
version = "0.18.0"
[dependencies.opentelemetry]
version = "0.31.0"
features = ["trace"]
optional = true
[dependencies.parking_lot]
version = "0.12.5"
[dependencies.prometheus]
version = "0.14"
[dependencies.prost]
version = "0.13"
optional = true
[dependencies.rmp-serde]
version = "1"
[dependencies.serde]
version = "1"
features = [
"derive",
"rc",
"derive",
]
[dependencies.serde_json]
version = "1"
[dependencies.socket2]
version = "0.6"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.tokio-stream]
version = "0.1"
features = ["sync"]
optional = true
[dependencies.tokio-util]
version = "0.7.17"
features = [
"codec",
"net",
"rt",
"io-util",
"codec",
"net",
"rt",
"io-util",
]
[dependencies.tonic]
version = "0.13.1"
optional = true
[dependencies.tower]
version = "0.5"
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-opentelemetry]
version = "0.32.0"
optional = true
[dependencies.uuid]
version = "1.18.1"
features = [
"v4",
"serde",
"serde",
"v4",
]
[dependencies.velo-ext]
version = "=0.1.0"
[dependencies.xxhash-rust]
version = "0.8"
features = [
"xxh3",
"const_xxh3",
]
[dependencies.zmq]
version = "0.10"
optional = true
[dev-dependencies.paste]
version = "1"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = [
"full",
"test-util",
"macros",
"rt-multi-thread",
"time",
]
[dev-dependencies.tower]
version = "0.5"
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"local-time",
"json",
]
[build-dependencies.tonic-build]
version = "0.13.1"
[target.'cfg(target_os = "linux")'.dependencies.nix]
version = "0.31.2"
features = [
"sched",
"net",
]
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(velo_endurance)"]