119 lines
3.1 KiB
TOML
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 }
|