[package]
edition = "2021"
rust-version = "1.87"
name = "foundation_ai"
version = "0.0.1"
authors = ["EweStudios Consulting Limited"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "AI foundation crate for the eweplatform"
readme = "README.md"
keywords = [
"foundations_ai",
"ewe-platform-ai",
]
license = "Apache-2.0"
repository = "https://github.com/ewe-studios/ewe_platform"
resolver = "3"
[features]
agentic = []
android = [
"llamacpp",
"infrastructure_llama_cpp/android-shared-stdcxx",
]
candle = [
"candle-core",
"candle-nn",
"candle-transformers",
"tokenizers",
"fastrand",
"minijinja",
"dep:foundation_deployment_huggingface",
]
candle-cuda = [
"candle",
"candle-core/cuda",
"candle-nn/cuda",
"candle-transformers/cuda",
]
candle-gpu = ["candle-cuda"]
cuda = [
"llamacpp",
"infrastructure_llama_cpp/cuda",
]
cuda_static = [
"llamacpp",
"infrastructure_llama_cpp/cuda",
"infrastructure_llama_cpp/cuda-no-vmm",
]
default = [
"llamacpp",
"candle",
"agentic",
]
external-service-tests = [
"testing",
"llamacpp",
"candle",
]
integration_tests = ["live-model-tests"]
live-model-tests = [
"testing",
"llamacpp",
"candle",
]
llamacpp = [
"dep:infrastructure_llama_cpp",
"dep:foundation_deployment_huggingface",
]
metal = [
"llamacpp",
"infrastructure_llama_cpp/metal",
]
mtmd = [
"llamacpp",
"infrastructure_llama_cpp/mtmd",
]
multi = [
"foundation_deployment_huggingface?/multi",
"foundation_core/multi",
]
openmp = [
"llamacpp",
"infrastructure_llama_cpp/openmp",
]
testing = ["toolbox"]
toolbox = []
vulkan = [
"llamacpp",
"infrastructure_llama_cpp/vulkan",
]
[lib]
name = "foundation_ai"
path = "src/lib.rs"
[[example]]
name = "agent_with_tools"
path = "examples/agent_with_tools.rs"
required-features = ["agentic"]
[[example]]
name = "custom_router"
path = "examples/custom_router.rs"
required-features = ["agentic"]
[[example]]
name = "hello_claude"
path = "examples/hello_claude.rs"
required-features = ["agentic"]
[[example]]
name = "hello_llamacpp"
path = "examples/hello_llamacpp.rs"
required-features = [
"agentic",
"llamacpp",
]
[[example]]
name = "hello_openai"
path = "examples/hello_openai.rs"
required-features = ["agentic"]
[[example]]
name = "hello_openrouter"
path = "examples/hello_openrouter.rs"
required-features = ["agentic"]
[[example]]
name = "manual_claude_router"
path = "examples/manual_claude_router.rs"
required-features = ["agentic"]
[[example]]
name = "manual_openrouter"
path = "examples/manual_openrouter.rs"
required-features = ["agentic"]
[[test]]
name = "agentic_tests"
path = "tests/agentic/mod.rs"
required-features = [
"agentic",
"testing",
]
[[test]]
name = "candle_tests"
path = "tests/candle/mod.rs"
required-features = ["candle"]
[[test]]
name = "foundation_ai_tests"
path = "tests/mod.rs"
required-features = [
"agentic",
"llamacpp",
"candle",
"testing",
]
[[test]]
name = "gpu_tests"
path = "tests/gpu/mod.rs"
required-features = [
"candle",
"candle-gpu",
"cuda",
"cuda_static",
]
[[test]]
name = "memory_tests"
path = "tests/memory/mod.rs"
required-features = ["agentic"]
[[test]]
name = "model_tests"
path = "tests/models/mod.rs"
required-features = ["testing"]
[[test]]
name = "provider_tests"
path = "tests/providers/mod.rs"
required-features = [
"agentic",
"llamacpp",
]
[[test]]
name = "tool_tests"
path = "tests/tools/mod.rs"
required-features = ["agentic"]
[dependencies.ahash]
version = "0.8"
[dependencies.async-trait]
version = "0.1"
[dependencies.candle-core]
version = "0.11"
optional = true
[dependencies.candle-nn]
version = "0.11"
optional = true
[dependencies.candle-transformers]
version = "0.11"
optional = true
[dependencies.concurrent-queue]
version = "2.5.0"
[dependencies.derive_more]
version = "2.1"
features = [
"from",
"debug",
"display",
"error",
]
[dependencies.fastrand]
version = "2.3"
optional = true
[dependencies.foundation_arrow]
version = "0.0.2"
[dependencies.foundation_auth]
version = "0.0.2"
default-features = false
[dependencies.foundation_compact]
version = "0.2.1"
features = ["serde"]
[dependencies.foundation_core]
version = "0.0.5"
[dependencies.foundation_db]
version = "0.0.3"
default-features = false
[dependencies.foundation_errstacks]
version = "0.0.2"
features = ["to_structured"]
[dependencies.foundation_jsonschema]
version = "0.0.2"
[dependencies.foundation_macros]
version = "0.0.5"
[dependencies.foundation_netio]
version = "0.0.3"
[dependencies.foundation_nostd]
version = "0.0.5"
[dependencies.foundation_vectors]
version = "0.0.2"
[dependencies.futures-lite]
version = "2"
[dependencies.lazy-regex]
version = "3.1"
[dependencies.minijinja]
version = "2.0"
optional = true
[dependencies.regex]
version = "1.10"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.tokenizers]
version = "0.22"
optional = true
[dependencies.tracing]
version = "0.1"
[dev-dependencies.foundation_testing]
version = "0.0.2"
features = ["huggingface"]
[dev-dependencies.futures-lite]
version = "2"
[dev-dependencies.serial_test]
version = "3.3.1"
[dev-dependencies.tracing-test]
version = "0.2.5"
features = ["no-env-filter"]
[target.'cfg(any(not(target_family = "wasm"), target_os = "emscripten"))'.dependencies.infrastructure_llama_cpp]
version = "0.0.2"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.foundation_auth]
version = "0.0.2"
features = ["turso"]
default-features = false
[target.'cfg(not(target_family = "wasm"))'.dependencies.foundation_deployment_huggingface]
version = "0.1.1"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.foundation_nativeapis]
version = "0.0.2"
features = [
"vfs",
"vfs-search",
"vfs-search-fff",
]
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.infrastructure_llama_cpp]
version = "0.0.2"
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.tokio]
version = "1"
features = [
"macros",
"rt",
]
[target.'cfg(target_family = "wasm")'.dependencies.foundation_auth]
version = "0.0.2"
features = ["wasm"]
default-features = false
[target.'cfg(target_vendor = "apple")'.dependencies.candle-core]
version = "0.11"
features = ["metal"]
[lints.clippy.pedantic]
level = "warn"
priority = 0
[lints.rust.missing_debug_implementations]
level = "allow"
priority = 0
[lints.rust.missing_docs]
level = "allow"
priority = 0