[package]
authors = ["nathanielsimard <nathaniel.simard.42@gmail.com>"]
categories = ["science"]
description = "Backend router decorator over the network."
edition.workspace = true
keywords = ["deep-learning", "machine-learning", "data"]
license.workspace = true
name = "burn-remote"
readme.workspace = true
repository = "https://github.com/tracel-ai/burn/tree/main/crates/burn-router-remote"
documentation = "https://docs.rs/burn-router-remote"
version.workspace = true

[lints]
workspace = true

[features]
default = ["client", "server"]
doc = []
tracing = [
    "burn-communication/tracing",
    "burn-communication/tracing",
    "burn-ir/tracing",
    "burn-router/tracing",
    "burn-std/tracing",
    "burn-tensor/tracing",
]

client = ["tokio-tungstenite", "async-channel", "tokio/sync"]
server = [
    "tokio-tungstenite",
    "async-channel",
    "tokio/sync",
    "axum",
    "tracing-core/default",
    "tracing-subscriber/default",
]


[dependencies]
burn-ir = { path = "../burn-ir", version = "=0.21.0", default-features = true }
burn-tensor = { path = "../burn-tensor", version = "=0.21.0", default-features = true }
burn-std = { path = "../burn-std", version = "=0.21.0", default-features = true }
burn-router = { path = "../burn-router", version = "=0.21.0", default-features = true }
burn-communication = { path = "../burn-communication", version = "=0.21.0", features = [
    "data-service",
    "websocket",
] }

bytes = { workspace = true }

# Basic dependencies
derive-new = { workspace = true }
log = { workspace = true }

# Shared dependencies
tokio = { workspace = true, features = ["rt-multi-thread"] }
serde = { workspace = true, features = ["derive"] }
serde_bytes = { workspace = true }
rmp-serde = { workspace = true }
futures-util = { workspace = true }

# Client dependencies
async-channel = { workspace = true, optional = true }
tokio-tungstenite = { workspace = true, optional = true }

# Server dependencies
axum = { workspace = true, features = ["ws"], optional = true }
tracing-core = { workspace = true, optional = true }
tracing-subscriber = { workspace = true, optional = true }
tokio-util = { workspace = true }

[dev-dependencies]
burn-ndarray = { path = "../burn-ndarray", version = "=0.21.0" }

[package.metadata.docs.rs]
features = ["doc"]
rustdoc-args = ["--cfg", "docsrs"]
