[package]
edition = "2024"
rust-version = "1.91"
name = "brainwires"
version = "0.9.0"
authors = ["Brainwires"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "The Brainwires Agent Framework — build any AI application in Rust"
homepage = "https://github.com/Brainwires/brainwires-framework"
documentation = "https://docs.rs/brainwires"
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/brainwires-framework"
resolver = "2"
[features]
a2a = [
"dep:brainwires-a2a",
"brainwires-a2a/native",
]
agent-full = [
"agents",
"permissions",
"prompting",
"tools",
]
agent-network = ["dep:brainwires-network"]
agents = ["dep:brainwires-agents"]
audio = [
"dep:brainwires-hardware",
"brainwires-hardware/audio",
]
bedrock = [
"providers",
"brainwires-providers/bedrock",
]
bluetooth = [
"dep:brainwires-hardware",
"brainwires-hardware/bluetooth",
]
brain = [
"dep:brainwires-knowledge",
"brainwires-knowledge/knowledge",
]
camera = [
"dep:brainwires-hardware",
"brainwires-hardware/camera",
]
chat = ["providers"]
datasets = [
"training",
"brainwires-training/datasets-full",
]
default = [
"tools",
"agents",
]
dream = [
"dep:brainwires-knowledge",
"brainwires-knowledge/dream",
]
eval = [
"agents",
"brainwires-agents/eval",
]
full = [
"tools",
"agents",
"storage",
"mcp",
"mdap",
"knowledge",
"prompting",
"permissions",
"orchestrator",
"rag-full-languages",
"interpreters",
"providers",
"chat",
"reasoning",
"seal",
"agent-network",
"brainwires-agents/seal-knowledge",
"brainwires-agents/seal-mdap",
"brainwires-agents/seal-feedback",
"llama-cpp-2",
"mcp-server",
"skills",
"eval",
"a2a",
"mesh",
"audio",
"gpio",
"bluetooth",
"network-hardware",
"camera",
"usb",
"vad",
"wake-word",
"voice-assistant",
"mcp-server-framework",
"training-cloud",
"datasets",
"system",
"dream",
"telemetry",
]
gpio = [
"dep:brainwires-hardware",
"brainwires-hardware/gpio",
]
interpreters = [
"tools",
"brainwires-tools/interpreters",
]
knowledge = ["brain"]
learning = [
"seal",
"knowledge",
"permissions",
"brainwires-agents/seal-knowledge",
"brainwires-agents/seal-feedback",
]
llama-cpp-2 = [
"providers",
"brainwires-providers/llama-cpp-2",
]
mcp = ["dep:brainwires-mcp"]
mcp-server = [
"dep:rmcp",
"dep:schemars",
"dep:tokio-util",
]
mcp-server-framework = ["dep:brainwires-mcp-server"]
mdap = [
"agents",
"brainwires-agents/mdap",
]
mesh = [
"agent-network",
"brainwires-network/mesh",
]
network-hardware = [
"dep:brainwires-hardware",
"brainwires-hardware/network",
]
openapi = [
"tools",
"brainwires-tools/openapi",
]
orchestrator = [
"tools",
"brainwires-tools/orchestrator",
]
otel = [
"agents",
"brainwires-agents/otel",
]
permissions = ["dep:brainwires-permissions"]
prompting = [
"dep:brainwires-knowledge",
"brainwires-knowledge/prompting",
]
providers = ["dep:brainwires-providers"]
rag = [
"dep:brainwires-knowledge",
"brainwires-knowledge/rag",
"dep:brainwires-storage",
"brainwires-storage/vector-db",
"tools",
"brainwires-tools/rag",
]
rag-full-languages = [
"rag",
"brainwires-knowledge/tree-sitter-languages",
]
reasoning = [
"agents",
"brainwires-agents/reasoning",
]
researcher = [
"providers",
"agents",
"storage",
"rag",
"training",
"datasets",
]
seal = [
"agents",
"brainwires-agents/seal",
]
skills = [
"agents",
"brainwires-agents/skills-registry",
]
storage = [
"dep:brainwires-storage",
"brainwires-storage/native",
]
system = [
"tools",
"brainwires-tools/system",
]
telemetry = [
"dep:brainwires-telemetry",
"brainwires-telemetry/native",
"brainwires-providers?/telemetry",
]
tools = ["dep:brainwires-tools"]
training = ["dep:brainwires-training"]
training-cloud = [
"training",
"brainwires-training/cloud",
]
training-full = [
"training",
"brainwires-training/full",
"datasets",
]
training-local = [
"training",
"brainwires-training/local",
]
usb = [
"dep:brainwires-hardware",
"brainwires-hardware/usb",
]
vad = [
"dep:brainwires-hardware",
"brainwires-hardware/vad",
]
vertex-ai = [
"providers",
"brainwires-providers/vertex-ai",
]
voice-assistant = [
"dep:brainwires-hardware",
"brainwires-hardware/voice-assistant",
]
wake-word = [
"dep:brainwires-hardware",
"brainwires-hardware/wake-word",
]
wake-word-porcupine = [
"dep:brainwires-hardware",
"brainwires-hardware/wake-word-porcupine",
]
wasm = ["brainwires-core/wasm"]
[lib]
name = "brainwires"
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 = [
"storage",
"rag",
]
[dependencies.brainwires-a2a]
version = "0.9.0"
optional = true
default-features = false
[dependencies.brainwires-agents]
version = "0.9.0"
optional = true
[dependencies.brainwires-core]
version = "0.9.0"
[dependencies.brainwires-hardware]
version = "0.9.0"
optional = true
[dependencies.brainwires-knowledge]
version = "0.9.0"
optional = true
default-features = false
[dependencies.brainwires-mcp]
version = "0.9.0"
optional = true
[dependencies.brainwires-mcp-server]
version = "0.9.0"
optional = true
[dependencies.brainwires-network]
version = "0.9.0"
optional = true
[dependencies.brainwires-permissions]
version = "0.9.0"
optional = true
[dependencies.brainwires-providers]
version = "0.9.0"
optional = true
[dependencies.brainwires-storage]
version = "0.9.0"
optional = true
default-features = false
[dependencies.brainwires-telemetry]
version = "0.9.0"
optional = true
default-features = false
[dependencies.brainwires-tools]
version = "0.9.0"
optional = true
[dependencies.brainwires-training]
version = "0.9.0"
optional = true
[dependencies.rmcp]
version = "1.1"
features = [
"client",
"server",
"client-side-sse",
"transport-child-process",
"transport-io",
"macros",
]
optional = true
[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"
features = ["full"]
[dev-dependencies.tracing]
version = "0.1"
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]