[package]
edition = "2024"
name = "rucora"
version = "0.1.5"
authors = ["rucora contributors"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-performance, type-safe LLM agent framework with built-in tools and multi-provider support"
documentation = "https://docs.rs/rucora"
readme = "readme.md"
keywords = [
"llm",
"agent",
"ai",
"chatgpt",
"claude",
]
categories = [
"api-bindings",
"asynchronous",
"text-processing",
]
license = "MIT"
repository = "https://github.com/launcher-rs/rucora"
[features]
a2a = ["dep:rucora-a2a"]
default = [
"providers",
"tools",
"embed",
"retrieval",
]
embed = ["dep:rucora-embed"]
full = [
"providers",
"tools",
"embed",
"retrieval",
"mcp",
"a2a",
"skills",
]
mcp = ["dep:rucora-mcp"]
providers = ["dep:rucora-providers"]
retrieval = ["dep:rucora-retrieval"]
skills = ["dep:rucora-skills"]
tools = ["dep:rucora-tools"]
[lib]
name = "rucora"
path = "src/lib.rs"
doctest = false
[[example]]
name = "01_hello_world"
path = "examples/01_hello_world.rs"
[[example]]
name = "02_basic_chat"
path = "examples/02_basic_chat.rs"
[[example]]
name = "03_chat_with_tools"
path = "examples/03_chat_with_tools.rs"
[[example]]
name = "04_extractor"
path = "examples/04_extractor.rs"
[[example]]
name = "05_conversation"
path = "examples/05_conversation.rs"
[[example]]
name = "06_memory"
path = "examples/06_memory.rs"
[[example]]
name = "07_rag"
path = "examples/07_rag.rs"
[[example]]
name = "08_middleware"
path = "examples/08_middleware.rs"
[[example]]
name = "09_prompt"
path = "examples/09_prompt.rs"
[[example]]
name = "10_custom_provider"
path = "examples/10_custom_provider.rs"
[[example]]
name = "11_resilient_provider"
path = "examples/11_resilient_provider.rs"
[[example]]
name = "12_mcp"
path = "examples/12_mcp.rs"
required-features = ["mcp"]
[[example]]
name = "13_task_decomposition"
path = "examples/13_task_decomposition.rs"
[[example]]
name = "15_react_agent"
path = "examples/15_react_agent.rs"
[[example]]
name = "16_reflect_agent"
path = "examples/16_reflect_agent.rs"
[[example]]
name = "17_supervisor_agent"
path = "examples/17_supervisor_agent.rs"
[[example]]
name = "18_research_assistant"
path = "examples/18_research_assistant.rs"
[[example]]
name = "19_code_assistant"
path = "examples/19_code_assistant.rs"
[[example]]
name = "20_custom_agent_with_middleware"
path = "examples/20_custom_agent_with_middleware.rs"
[[example]]
name = "21_unified_conversation"
path = "examples/21_unified_conversation.rs"
[[example]]
name = "24_context_compression"
path = "examples/24_context_compression.rs"
[[example]]
name = "25_streaming_agent"
path = "examples/25_streaming_agent.rs"
[[test]]
name = "contract_vector_store"
path = "tests/contract_vector_store.rs"
[[test]]
name = "embedding_cache"
path = "tests/embedding_cache.rs"
[[test]]
name = "http_request_tool"
path = "tests/http_request_tool.rs"
[[test]]
name = "memory_tools"
path = "tests/memory_tools.rs"
[[test]]
name = "rag_pipeline"
path = "tests/rag_pipeline.rs"
[[test]]
name = "resilient_provider"
path = "tests/resilient_provider.rs"
[[bench]]
name = "json_serialize"
path = "benches/json_serialize.rs"
harness = false
[[bench]]
name = "vector_store_search"
path = "benches/vector_store_search.rs"
harness = false
[dependencies.anyhow]
version = "1"
[dependencies.async-stream]
version = "0.3"
[dependencies.async-trait]
version = "0.1"
[dependencies.futures-executor]
version = "0.3"
[dependencies.futures-util]
version = "0.3"
[dependencies.regex]
version = "1"
[dependencies.rucora-a2a]
version = "0.1.5"
optional = true
[dependencies.rucora-core]
version = "0.1.5"
[dependencies.rucora-embed]
version = "0.1.5"
optional = true
[dependencies.rucora-mcp]
version = "0.1.5"
optional = true
[dependencies.rucora-providers]
version = "0.1.5"
optional = true
[dependencies.rucora-retrieval]
version = "0.1.5"
optional = true
[dependencies.rucora-skills]
version = "0.1.5"
optional = true
[dependencies.rucora-tools]
version = "0.1.5"
optional = true
[dependencies.schemars]
version = "1.2"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"time",
"sync",
]
[dependencies.tracing]
version = "0.1"
[dev-dependencies.anyhow]
version = "1"
[dev-dependencies.chrono]
version = "0.4"
[dev-dependencies.criterion]
version = "0.5"
[dev-dependencies.dotenv]
version = "0.15.0"
[dev-dependencies.reqwest]
version = "0.13"
features = ["json"]
[dev-dependencies.rucora-embed]
version = "0.1.5"
[dev-dependencies.rucora-mcp]
version = "0.1.5"
[dev-dependencies.rucora-providers]
version = "0.1.5"
[dev-dependencies.rucora-retrieval]
version = "0.1.5"
[dev-dependencies.rucora-skills]
version = "0.1.5"
[dev-dependencies.rucora-tools]
version = "0.1.5"
[dev-dependencies.tokio]
version = "1"
features = [
"macros",
"rt",
"rt-multi-thread",
]
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"fmt",
]
[lints.clippy]
clone_on_copy = "deny"
cognitive_complexity = "allow"
enum_variant_names = "warn"
explicit_counter_loop = "warn"
explicit_into_iter_loop = "deny"
explicit_iter_loop = "deny"
filter_map_identity = "warn"
iter_overeager_cloned = "deny"
let_and_return = "warn"
manual_flatten = "deny"
manual_let_else = "deny"
manual_strip = "deny"
map_unwrap_or = "warn"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
needless_borrow = "deny"
needless_borrowed_reference = "deny"
needless_collect = "deny"
needless_pass_by_value = "warn"
needless_range_loop = "deny"
needless_return = "warn"
or_fun_call = "warn"
redundant_clone = "deny"
redundant_field_names = "deny"
result_unit_err = "deny"
same_item_push = "deny"
single_match = "deny"
too_many_arguments = "warn"
type_complexity = "warn"
uninlined_format_args = "deny"
unnecessary_wraps = "deny"
unused_async = "deny"
wrong_self_convention = "warn"