[package]
edition = "2024"
rust-version = "1.85"
name = "toolnexus"
version = "0.25.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Vendor-neutral tool layer for LLM agents: ACP agents, MCP servers, agent skills behind one Tool interface (Rust port of toolnexus)."
homepage = "https://muthuishere.github.io/toolnexus/"
documentation = "https://docs.rs/toolnexus"
readme = "README.md"
keywords = [
"llm",
"agents",
"mcp",
"acp",
"tools",
]
categories = [
"api-bindings",
"asynchronous",
]
license = "MIT"
repository = "https://github.com/muthuishere/toolnexus"
[features]
default = [
"mcp-http",
"serve",
]
mcp-http = [
"rmcp/transport-streamable-http-client-reqwest",
"dep:http",
]
serve = [
"rmcp/server",
"rmcp/transport-streamable-http-server",
"dep:hyper",
"dep:hyper-util",
"dep:http-body-util",
"dep:ring",
]
[lib]
name = "toolnexus"
path = "src/lib.rs"
[[example]]
name = "acp"
path = "examples/acp.rs"
[[example]]
name = "agent"
path = "examples/agent.rs"
[[example]]
name = "agents"
path = "examples/agents.rs"
[[example]]
name = "basic"
path = "examples/basic.rs"
[[example]]
name = "fake_acp_agent"
path = "examples/fake_acp_agent.rs"
[[example]]
name = "mcp_handler"
path = "examples/mcp_handler.rs"
required-features = [
"serve",
"mcp-http",
]
[[example]]
name = "media"
path = "examples/media.rs"
[[example]]
name = "native_http"
path = "examples/native_http.rs"
[[example]]
name = "pending"
path = "examples/pending.rs"
[[example]]
name = "prompt_cache"
path = "examples/prompt_cache.rs"
[[example]]
name = "skills_dump"
path = "examples/skills_dump.rs"
[[example]]
name = "streaming"
path = "examples/streaming.rs"
[[test]]
name = "a2a"
path = "tests/a2a.rs"
[[test]]
name = "acp"
path = "tests/acp.rs"
[[test]]
name = "acp_client"
path = "tests/acp_client.rs"
[[test]]
name = "agents_home"
path = "tests/agents_home.rs"
[[test]]
name = "agents_level1"
path = "tests/agents_level1.rs"
[[test]]
name = "agents_runtime"
path = "tests/agents_runtime.rs"
[[test]]
name = "batteries"
path = "tests/batteries.rs"
[[test]]
name = "builtins"
path = "tests/builtins.rs"
[[test]]
name = "classifier"
path = "tests/classifier.rs"
[[test]]
name = "client"
path = "tests/client.rs"
[[test]]
name = "elicitation"
path = "tests/elicitation.rs"
[[test]]
name = "http"
path = "tests/http.rs"
[[test]]
name = "inprocess"
path = "tests/inprocess.rs"
[[test]]
name = "judge"
path = "tests/judge.rs"
[[test]]
name = "mcp"
path = "tests/mcp.rs"
[[test]]
name = "mcp2026"
path = "tests/mcp2026.rs"
[[test]]
name = "mcp_extras"
path = "tests/mcp_extras.rs"
[[test]]
name = "mcp_handler"
path = "tests/mcp_handler.rs"
[[test]]
name = "mcp_handler_2026"
path = "tests/mcp_handler_2026.rs"
[[test]]
name = "mcp_handler_conformance"
path = "tests/mcp_handler_conformance.rs"
[[test]]
name = "mcp_serve"
path = "tests/mcp_serve.rs"
[[test]]
name = "media"
path = "tests/media.rs"
[[test]]
name = "parts"
path = "tests/parts.rs"
[[test]]
name = "pending"
path = "tests/pending.rs"
[[test]]
name = "relay"
path = "tests/relay.rs"
[[test]]
name = "resolve_key"
path = "tests/resolve_key.rs"
[[test]]
name = "serve"
path = "tests/serve.rs"
[[test]]
name = "skills"
path = "tests/skills.rs"
[[test]]
name = "tool"
path = "tests/tool.rs"
[[test]]
name = "tool_concurrency"
path = "tests/tool_concurrency.rs"
[[test]]
name = "toolkit"
path = "tests/toolkit.rs"
[[test]]
name = "translate"
path = "tests/translate.rs"
[dependencies.base64]
version = "0.22"
[dependencies.futures-util]
version = "0.3"
[dependencies.http]
version = "1"
optional = true
[dependencies.http-body-util]
version = "0.1"
optional = true
[dependencies.hyper]
version = "1"
features = [
"server",
"http1",
]
optional = true
[dependencies.hyper-util]
version = "0.1"
features = ["tokio"]
optional = true
[dependencies.process-wrap]
version = "10"
features = ["tokio1"]
[dependencies.regex]
version = "1"
[dependencies.reqwest]
version = "0.13"
features = [
"rustls",
"stream",
"json",
]
default-features = false
[dependencies.ring]
version = "0.17"
optional = true
[dependencies.rmcp]
version = "3.8"
features = [
"client",
"transport-child-process",
]
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
features = ["raw_value"]
[dependencies.sha2]
version = "0.10"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"process",
"io-util",
"sync",
"time",
"rt",
"macros",
]
[dependencies.tokio-util]
version = "0.7"
[dependencies.url]
version = "2"
[dependencies.uuid]
version = "1"
features = ["v4"]
[dependencies.yaml-rust2]
version = "0.13"
[dev-dependencies.rsa]
version = "0.9"
features = [
"std",
"u64_digit",
"getrandom",
]
default-features = false
[dev-dependencies.serde]
version = "1"
features = ["derive"]
[dev-dependencies.tokio]
version = "1"
features = ["full"]
[target."cfg(unix)".dependencies.libc]
version = "0.2"
[target."cfg(unix)".dev-dependencies.libc]
version = "0.2"
[profile.dev.package.num-bigint-dig]
opt-level = 3
[profile.dev.package.rsa]
opt-level = 3