rucora 0.1.5

High-performance, type-safe LLM agent framework with built-in tools and multi-provider support
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[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"