[package] name = "ml-core" version.workspace = true edition.workspace = true rust-version.workspace = true authors.workspace = true license.workspace = true repository.workspace = true homepage.workspace = true documentation.workspace = true publish.workspace = true keywords.workspace = true categories.workspace = true description = "Shared ML types, traits, and infrastructure for Foxhunt" [features] default = ["cuda"] cuda = ["cudarc"] s3-storage = ["aws-config", "aws-sdk-s3", "aws-types", "aws-credential-types", "urlencoding"] high-precision = ["rust_decimal/serde-float"] mimalloc-allocator = ["mimalloc"] nvtx = ["libc"] simd = [] gc = [] financial = [] minimal-inference = [] nccl = ["cuda"] [dependencies] # Core (needed by types in lib.rs) serde = { workspace = true, features = ["derive"] } serde_json.workspace = true thiserror.workspace = true anyhow.workspace = true chrono.workspace = true tracing.workspace = true rust_decimal.workspace = true async-trait.workspace = true futures.workspace = true tokio.workspace = true once_cell = "1.19" dashmap = { workspace = true } rayon.workspace = true num_cpus = "1.16" safetensors = "0.7" common.workspace = true config.workspace = true uuid.workspace = true parking_lot = { version = "0.12", features = ["hardware-lock-elision"] } ndarray = { workspace = true, features = ["rayon"] } sha2 = "0.10" cudarc = { version = "0.19", optional = true, default-features = false, features = ["driver", "cublas", "dynamic-linking", "std", "cuda-version-from-build-system", "f16"] } half = { workspace = true } rand.workspace = true rand_distr.workspace = true toml.workspace = true # Optional mimalloc = { version = "0.1", optional = true } aws-config = { version = "1.1", optional = true } aws-sdk-s3 = { version = "1.14", optional = true } aws-types = { version = "1.1", optional = true } aws-credential-types = { version = "1.1", optional = true } urlencoding = { version = "2.1", optional = true } libc = { version = "0.2", optional = true } [dev-dependencies] tokio = { workspace = true, features = ["test-util", "macros"] } tempfile = "3.12" approx = "0.5" [lints] workspace = true