Files
qiming/qiming-rcoder/crates/rcoder/Cargo.toml
2026-06-01 13:54:52 +08:00

119 lines
3.1 KiB
TOML

[package]
name = "rcoder"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
[lib]
name = "rcoder"
path = "src/lib.rs"
[features]
default = []
# 调试功能:启用 /debug/* 路由,用于开发和问题排查
# 生产环境默认不启用,需要显式添加 --features debug
debug = []
# 🔧 eBPF 调试模式:启用容器特权,允许使用 eBPF 诊断工具
# 警告:仅在开发调试时使用,生产环境请勿启用
# 此 feature 会传递给 docker_manager crate
ebpf-debug = ["docker_manager/ebpf-debug"]
# Kubernetes 支持:启用 Kubernetes 运行时模式
# 启用后可通过 CONTAINER_RUNTIME=kubernetes 环境变量切换到 K8s 模式
kubernetes = ["docker_manager/kubernetes"]
[dev-dependencies]
filetime = "0.2"
[dependencies]
# Internal crates
shared_types = { path = "../shared_types" }
rcoder-proxy = { path = "../rcoder-proxy" }
container-runtime-api = { path = "../container-runtime-api" }
# 🚀 无锁配置热更新
arc-swap = "1.8"
docker_manager = { path = "../docker_manager" }
duckdb_manager = { path = "../duckdb_manager" }
rcoder-telemetry = { workspace = true }
clap = { workspace = true }
async-trait = "0.1"
parking_lot = "0.12"
tempfile = { workspace = true }
# HTTP server
axum = { workspace = true, features = ["multipart"] }
tower = { workspace = true }
tower-http = { workspace = true, features = ["cors", "trace"] }
hyper = { version = "1.8", features = ["server", "http1"] }
hyper-util = { version = "0.1", features = ["server", "server-auto", "tokio"] }
futures = { workspace = true }
tokio-stream = "0.1"
async-stream = "0.3"
# gRPC Client
tonic = { workspace = true }
# Serialization
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
serde_yaml = "=0.9.33"
serde_urlencoded = "0.7"
# Validation
garde = { version = "0.22.1", features = ["derive"] }
derive_builder = { workspace = true }
# Workspace dependencies
tokio = { workspace = true, features = ["full"] }
tokio-util = { workspace = true }
anyhow = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true, features = [
"fmt",
"env-filter",
"json",
] }
tracing-appender = "0.2"
uuid = { workspace = true, features = ["v4", "serde"] }
chrono = { workspace = true, features = ["serde"] }
dashmap = { workspace = true }
notify = { workspace = true }
bytes = "1.0"
futures-util = { workspace = true }
piper = "0.2"
base64 = { workspace = true }
reqwest = { workspace = true }
url = { workspace = true }
bollard = { workspace = true }
rustls = { workspace = true }
# OpenTelemetry
opentelemetry = { workspace = true }
opentelemetry_sdk = { workspace = true }
tracing-opentelemetry = { workspace = true }
axum-tracing-opentelemetry = { workspace = true }
# File system
tokio-fs = { workspace = true }
path-clean = { workspace = true }
# OpenAPI documentation
utoipa = { workspace = true }
utoipa-swagger-ui = { workspace = true }
ringbuf = { workspace = true }
# Random and hashing
rand = { workspace = true }
md5 = "0.8"
# Cache
moka = { workspace = true }