[package]
edition = "2024"
rust-version = "1.91"
name = "rullama"
version = "0.12.0"
authors = ["Brainwires"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "rullama — the agent framework; build any AI application in Rust"
homepage = "https://github.com/Brainwires/rullama-framework"
documentation = "https://docs.rs/rullama"
readme = "README.md"
keywords = [
"ai-agents",
"llm",
"mcp",
"multi-agent",
"framework",
]
categories = ["development-tools"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/Brainwires/rullama-framework"
resolver = "2"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
a2a = [
"dep:rullama-a2a",
"rullama-a2a/native",
]
agent-full = [
"agents",
"permissions",
"prompting",
"tools",
]
agent-network = ["dep:rullama-network"]
agents = ["dep:rullama-agent"]
audio = [
"dep:rullama-hardware",
"rullama-hardware/audio",
]
bedrock = [
"providers",
"rullama-provider/bedrock",
]
bluetooth = [
"dep:rullama-hardware",
"rullama-hardware/bluetooth",
]
camera = [
"dep:rullama-hardware",
"rullama-hardware/camera",
]
chat = [
"providers",
"inference",
]
conversation = [
"dep:rullama-stores",
"rullama-stores/conversation",
"storage",
]
datasets = [
"dep:rullama-datasets",
"rullama-datasets/datasets-full",
]
default = [
"tools",
"agents",
"inference",
]
dream = [
"tiered",
"rullama-memory/dream",
]
eval = ["dep:rullama-eval"]
full = [
"tools",
"agents",
"inference",
"storage",
"memory",
"mcp",
"mdap",
"knowledge",
"prompting",
"permissions",
"orchestrator",
"rag-full-languages",
"interpreters",
"providers",
"chat",
"reasoning",
"seal",
"agent-network",
"rullama-seal/knowledge",
"rullama-seal/mdap",
"rullama-seal/feedback",
"llama-cpp-2",
"mcp-server",
"skills",
"eval",
"a2a",
"mesh",
"audio",
"gpio",
"bluetooth",
"lan-tools",
"camera",
"usb",
"vad",
"wake-word",
"voice-assistant",
"mcp-server-framework",
"training-cloud",
"datasets",
"system",
"dream",
"telemetry",
]
gpio = [
"dep:rullama-hardware",
"rullama-hardware/gpio",
]
image = [
"dep:rullama-stores",
"rullama-stores/image",
"storage",
]
inference = [
"dep:rullama-inference",
"agents",
]
interpreters = [
"tools",
"rullama-tool-builtins/interpreters",
]
knowledge = [
"dep:rullama-knowledge",
"rullama-knowledge/knowledge",
]
lan-tools = [
"dep:rullama-network",
"rullama-network/lan",
]
learning = [
"seal",
"knowledge",
"permissions",
"rullama-seal/knowledge",
"rullama-seal/feedback",
]
llama-cpp-2 = [
"providers",
"rullama-provider/llama-cpp-2",
]
lock = [
"dep:rullama-stores",
"rullama-stores/lock",
]
mcp = ["dep:rullama-mcp-client"]
mcp-server = [
"dep:rmcp",
"dep:schemars",
"dep:tokio-util",
]
mcp-server-framework = ["dep:rullama-mcp-server"]
mdap = ["dep:rullama-mdap"]
memory = [
"dep:rullama-stores",
"rullama-stores/memory",
"storage",
]
mesh = [
"agent-network",
"rullama-network/mesh",
]
openapi = [
"tools",
"rullama-tool-runtime/openapi",
]
orchestrator = [
"tools",
"rullama-tool-runtime/orchestrator",
"rullama-tool-builtins/orchestrator",
]
otel = [
"agents",
"rullama-agent/otel",
]
permissions = ["dep:rullama-permission"]
plan = [
"dep:rullama-stores",
"rullama-stores/plan",
"storage",
]
prompting = [
"dep:rullama-prompting",
"rullama-prompting/knowledge",
"knowledge",
]
providers = ["dep:rullama-provider"]
rag = [
"dep:rullama-rag",
"dep:rullama-storage",
"rullama-storage/lance-backend",
"tools",
"rullama-tool-builtins/rag",
"rullama-tool-runtime/rag",
]
rag-full-languages = ["rag"]
reasoning = ["dep:rullama-reasoning"]
remote-bridge = [
"agent-network",
"rullama-network/remote-bridge",
]
researcher = [
"providers",
"agents",
"storage",
"memory",
"rag",
"training",
"datasets",
]
seal = ["dep:rullama-seal"]
session = [
"dep:rullama-stores",
"rullama-stores/session",
]
session-sqlite = [
"session",
"rullama-stores/sqlite",
]
skills = [
"dep:rullama-skills",
"rullama-skills/registry",
]
storage = [
"dep:rullama-storage",
"rullama-storage/native",
]
system = [
"tools",
"rullama-tool-builtins/system",
]
task = [
"dep:rullama-stores",
"rullama-stores/task",
"storage",
]
telemetry = [
"dep:rullama-telemetry",
"rullama-telemetry/native",
"rullama-provider?/telemetry",
]
tiered = [
"memory",
"dep:rullama-memory",
]
tools = [
"dep:rullama-tool-runtime",
"dep:rullama-tool-builtins",
"rullama-tool-runtime/native",
"rullama-tool-builtins/native",
]
training = ["dep:rullama-finetune"]
training-cloud = [
"training",
"rullama-finetune/cloud",
]
usb = [
"dep:rullama-hardware",
"rullama-hardware/usb",
]
vad = [
"dep:rullama-hardware",
"rullama-hardware/vad",
]
vertex-ai = [
"providers",
"rullama-provider/vertex-ai",
]
voice-assistant = [
"dep:rullama-hardware",
"rullama-hardware/voice-assistant",
]
wake-word = [
"dep:rullama-hardware",
"rullama-hardware/wake-word",
]
wasm = ["rullama-core/wasm"]
web-speech = [
"dep:rullama-provider-speech",
"rullama-provider-speech/web-speech",
]
[lib]
name = "rullama"
path = "src/lib.rs"
[[example]]
name = "agent_quickstart"
path = "examples/agent_quickstart.rs"
required-features = ["agents"]
[[example]]
name = "custom_embedding"
path = "examples/custom_embedding.rs"
[[example]]
name = "custom_provider"
path = "examples/custom_provider.rs"
required-features = ["providers"]
[[example]]
name = "multi_provider_chat"
path = "examples/multi_provider_chat.rs"
required-features = [
"providers",
"chat",
]
[[example]]
name = "rag_custom_pipeline"
path = "examples/rag_custom_pipeline.rs"
required-features = ["rag"]
[[example]]
name = "storage_with_rag"
path = "examples/storage_with_rag.rs"
required-features = [
"memory",
"rag",
]
[[test]]
name = "reexports"
path = "tests/reexports.rs"
[dependencies.rmcp]
version = "1.1"
features = [
"client",
"server",
"client-side-sse",
"transport-child-process",
"transport-io",
"macros",
]
optional = true
[dependencies.rullama-a2a]
version = "0.12.0"
optional = true
default-features = false
[dependencies.rullama-agent]
version = "0.12.0"
optional = true
default-features = false
[dependencies.rullama-core]
version = "0.12.0"
default-features = false
[dependencies.rullama-datasets]
version = "0.12.0"
optional = true
default-features = false
[dependencies.rullama-eval]
version = "0.12.0"
optional = true
[dependencies.rullama-finetune]
version = "0.12.0"
optional = true
[dependencies.rullama-hardware]
version = "0.12.0"
optional = true
[dependencies.rullama-inference]
version = "0.12.0"
optional = true
default-features = false
[dependencies.rullama-knowledge]
version = "0.12.0"
optional = true
default-features = false
[dependencies.rullama-mcp-client]
version = "0.12.0"
optional = true
[dependencies.rullama-mcp-server]
version = "0.12.0"
optional = true
[dependencies.rullama-mdap]
version = "0.12.0"
optional = true
[dependencies.rullama-memory]
version = "0.12.0"
optional = true
[dependencies.rullama-network]
version = "0.12.0"
optional = true
[dependencies.rullama-permission]
version = "0.12.0"
optional = true
[dependencies.rullama-prompting]
version = "0.12.0"
optional = true
default-features = false
[dependencies.rullama-provider]
version = "0.12.0"
features = ["native"]
optional = true
default-features = false
[dependencies.rullama-provider-speech]
version = "0.12.0"
optional = true
default-features = false
[dependencies.rullama-rag]
version = "0.12.0"
optional = true
default-features = false
[dependencies.rullama-reasoning]
version = "0.12.0"
optional = true
[dependencies.rullama-seal]
version = "0.12.0"
optional = true
default-features = false
[dependencies.rullama-skills]
version = "0.12.0"
optional = true
[dependencies.rullama-storage]
version = "0.12.0"
optional = true
default-features = false
[dependencies.rullama-stores]
version = "0.12.0"
optional = true
default-features = false
[dependencies.rullama-telemetry]
version = "0.12.0"
optional = true
default-features = false
[dependencies.rullama-tool-builtins]
version = "0.12.0"
optional = true
default-features = false
[dependencies.rullama-tool-runtime]
version = "0.12.0"
optional = true
default-features = false
[dependencies.schemars]
version = "1.0"
optional = true
[dependencies.tokio-util]
version = "0.7"
optional = true
[dev-dependencies.anyhow]
version = "1"
[dev-dependencies.async-stream]
version = "0.3"
[dev-dependencies.async-trait]
version = "0.1"
[dev-dependencies.futures]
version = "0.3"
[dev-dependencies.tokio]
version = "1.43"
[dev-dependencies.tracing]
version = "0.1"
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]