Ctrl K
ComunidadGuías…

apps/assembler/Cargo.toml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
[package]
name = "assembler"
version.workspace = true
edition.workspace = true
license.workspace = true

[[bin]]
name = "assembler"
path = "src/main.rs"

[dependencies]
converter = { path = "../../crates/converter" }
planner = { path = "../../crates/planner" }
optimize = { path = "../../crates/optimize" }
thumbnail = { path = "../../crates/thumbnail" }
serde.workspace = true
serde_json.workspace = true
axum = "0.7"
tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "fs", "signal", "time"] }
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "stream"] }
dashmap = "6"
bytes = "1"
lru = "0.16"
xxhash-rust = { version = "0.8", features = ["xxh3"] }
futures-util = "0.3"
tokio-util = { version = "0.7", features = ["rt", "io"] }
async-compression = { version = "0.4", features = ["tokio", "zstd"] }
zstd = "0.13"
redis = { version = "0.27", default-features = false, features = ["tokio-comp", "connection-manager", "tokio-rustls-comp", "script"] }
# Lambda self-invoke dispatch (ASSEMBLER_DISPATCH=lambda): one SigV4-signed POST
# to the Lambda Invoke API (Event type). Hand-signed — the aws-sdk tree needs
# rustc 1.94 (ours is 1.90) and is ~40 crates for a single call; creds come
# straight from the Lambda runtime env.
hmac = "0.12"
sha2 = "0.10"
hex = "0.4"
tower-http = { version = "0.6", features = ["compression-zstd", "compression-gzip"] }
memmap2 = "0.9"
file-format = "0.26"
tempfile = "3"
# Tracing (OTLP over HTTP, traces only). Inert unless OTEL_EXPORTER_OTLP_ENDPOINT
# is set — the same switch and variables as the Node apps (`@carbon/logger`).
opentelemetry = "0.33"
opentelemetry_sdk = "0.33"
# No bundled HTTP client: its reqwest 0.13 would bring a second TLS stack
# (aws-lc) beside ours (ring). Spans are sent with the reqwest already here.
opentelemetry-otlp = { version = "0.33", default-features = false, features = ["trace", "http-proto"] }
opentelemetry-http = { version = "0.33", default-features = false }
async-trait = "0.1"

[target.'cfg(target_os = "linux")'.dependencies]
# Unprefixed: jemalloc is `malloc` for the whole process, so OCCT and FCL (C++,
# which allocate through malloc) use it too and their freed memory is returned
# to the OS. Prefixed, it served Rust only and the C++ side stayed on glibc,
# whose arenas keep an idle service near its last job's peak.
tikv-jemallocator = { version = "0.6", features = ["unprefixed_malloc_on_supported_platforms", "background_threads"] }

[dev-dependencies]
# Hermetic STEP fixtures for the optimize/ingest tests.
occt-bridge = { path = "../../crates/occt-bridge" }