[package]
edition = "2024"
name = "agentsdk"
version = "0.6.2"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "An open-source Rust library for building AI-powered applications, inspired by the Vercel AI SDK. It provides a robust, type-safe, and easy-to-use interface for interacting with various Large Language Models (LLMs)."
homepage = "https://github.com/dineshdb/agentsdk"
readme = "README.md"
keywords = [
"ai",
"sdk",
"agentsdk",
"ai-sdk-rs",
"openai",
]
categories = [
"api-bindings",
"asynchronous",
]
license = "MIT"
repository = "https://github.com/dineshdb/agentsdk"
resolver = "2"
[package.metadata.release]
pre-release-commit-message = "chore: release {{version}}"
[[package.metadata.release.pre-release-replacements]]
file = "CHANGELOG.md"
search = "Unreleased"
replace = "{{version}}"
[[package.metadata.release.pre-release-replacements]]
file = "CHANGELOG.md"
search = '\.\.\.HEAD'
replace = "...{{tag_name}}"
exactly = 1
[[package.metadata.release.pre-release-replacements]]
file = "CHANGELOG.md"
search = "ReleaseDate"
replace = "{{date}}"
[[package.metadata.release.pre-release-replacements]]
file = "CHANGELOG.md"
search = "<!-- next-header -->"
replace = """
<!-- next-header -->
## [Unreleased] - ReleaseDate"""
exactly = 1
[[package.metadata.release.pre-release-replacements]]
file = "CHANGELOG.md"
search = "<!-- next-url -->"
replace = """
<!-- next-url -->
[Unreleased]: https://github.com/dineshdb/agentsdk/compare/{{tag_name}}...HEAD"""
exactly = 1
[features]
302ai = ["openaichatcompletions"]
abacus = ["openaichatcompletions"]
aihubmix = ["openaichatcompletions"]
alibaba = ["openaichatcompletions"]
alibaba-cn = ["openaichatcompletions"]
amazon-bedrock = ["openaichatcompletions"]
anthropic = []
axum = ["dep:axum"]
bailing = ["openaichatcompletions"]
baseten = ["openaichatcompletions"]
berget = ["openaichatcompletions"]
chutes = ["openaichatcompletions"]
cloudflare-ai-gateway = ["openaichatcompletions"]
cloudflare-workers-ai = ["openaichatcompletions"]
cortecs = ["openaichatcompletions"]
deepseek = ["openaichatcompletions"]
default = [
"language-model-request",
"embedding-model-request",
]
embedding-model-request = []
fastrouter = ["openaichatcompletions"]
fireworks-ai = ["openaichatcompletions"]
firmware = ["openaichatcompletions"]
friendli = ["openaichatcompletions"]
full = [
"language-model-request",
"embedding-model-request",
"prompt",
"openai",
"openaicompatible",
"openaichatcompletions",
"anthropic",
"groq",
"vercel",
"google",
"openrouter",
"deepseek",
"amazon-bedrock",
"togetherai",
"xai",
"mistral",
"abacus",
"aihubmix",
"alibaba",
"alibaba-cn",
"bailing",
"baseten",
"chutes",
"cloudflare-ai-gateway",
"cortecs",
"firmware",
"fireworks-ai",
"friendli",
"fastrouter",
"github-copilot",
"github-models",
"helicone",
"huggingface",
"iflowcn",
"inception",
"inference",
"io-net",
"llama",
"lmstudio",
"lucidquery",
"moark",
"modelscope",
"moonshotai",
"moonshotai-cn",
"morph",
"nano-gpt",
"nebius",
"nova",
"novita-ai",
"nvidia",
"ollama-cloud",
"opencode",
"ovhcloud",
"poe",
"privatemode-ai",
"requesty",
"scaleway",
"siliconflow",
"siliconflow-cn",
"submodel",
"synthetic",
"upstage",
"vultr",
"wandb",
"xiaomi",
"zai",
"zai-coding-plan",
"zenmux",
"zhipuai",
"zhipuai-coding-plan",
"302ai",
"berget",
"cloudflare-workers-ai",
"jiekou",
"kuae-cloud-coding-plan",
"stackit",
"stepfun",
]
github-copilot = ["openaichatcompletions"]
github-models = ["openaichatcompletions"]
google = []
groq = ["openaichatcompletions"]
helicone = ["openaichatcompletions"]
huggingface = ["openaichatcompletions"]
iflowcn = ["openaichatcompletions"]
inception = ["openaichatcompletions"]
inference = ["openaichatcompletions"]
io-net = ["openaichatcompletions"]
jiekou = ["openaichatcompletions"]
jitter = ["dep:fastrand"]
kuae-cloud-coding-plan = ["openaichatcompletions"]
language-model-request = []
llama = ["openaichatcompletions"]
lmstudio = ["openaichatcompletions"]
lucidquery = ["openaichatcompletions"]
mistral = ["openaichatcompletions"]
moark = ["openaichatcompletions"]
modelscope = ["openaichatcompletions"]
moonshotai = ["openaichatcompletions"]
moonshotai-cn = ["openaichatcompletions"]
morph = ["openaichatcompletions"]
nano-gpt = ["openaichatcompletions"]
nebius = ["openaichatcompletions"]
nova = ["openaichatcompletions"]
novita-ai = ["openaichatcompletions"]
nvidia = ["openaichatcompletions"]
ollama-cloud = ["openaichatcompletions"]
openai = []
openaichatcompletions = []
openaicompatible = ["openaichatcompletions"]
opencode = ["openaichatcompletions"]
openrouter = ["openaichatcompletions"]
ovhcloud = ["openaichatcompletions"]
poe = ["openaichatcompletions"]
privatemode-ai = ["openaichatcompletions"]
prompt = [
"tera",
"glob",
]
requesty = ["openaichatcompletions"]
scaleway = ["openaichatcompletions"]
siliconflow = ["openaichatcompletions"]
siliconflow-cn = ["openaichatcompletions"]
stackit = ["openaichatcompletions"]
stepfun = ["openaichatcompletions"]
submodel = ["openaichatcompletions"]
synthetic = ["openaichatcompletions"]
test-access = []
togetherai = ["openaichatcompletions"]
upstage = ["openaichatcompletions"]
vercel = ["openaichatcompletions"]
vultr = ["openaichatcompletions"]
wandb = ["openaichatcompletions"]
xai = ["openaichatcompletions"]
xiaomi = ["openaichatcompletions"]
zai = ["openaichatcompletions"]
zai-coding-plan = ["openaichatcompletions"]
zenmux = ["openaichatcompletions"]
zhipuai = ["openaichatcompletions"]
zhipuai-coding-plan = ["openaichatcompletions"]
[lib]
name = "agentsdk"
path = "src/lib.rs"
[[example]]
name = "stream_tool_probe"
path = "examples/stream_tool_probe.rs"
[[test]]
name = "amazon_bedrock_tests"
path = "tests/provider/amazon_bedrock_tests.rs"
required-features = [
"amazon-bedrock",
"test-access",
]
[[test]]
name = "anthropic_tests"
path = "tests/provider/anthropic_tests.rs"
required-features = [
"anthropic",
"test-access",
]
[[test]]
name = "deepseek_tests"
path = "tests/provider/deepseek_tests.rs"
required-features = [
"deepseek",
"test-access",
]
[[test]]
name = "google_tests"
path = "tests/provider/google_tests.rs"
required-features = [
"google",
"test-access",
]
[[test]]
name = "groq_tests"
path = "tests/provider/groq_tests.rs"
required-features = [
"groq",
"test-access",
]
[[test]]
name = "mistral_tests"
path = "tests/provider/mistral_tests.rs"
required-features = [
"mistral",
"test-access",
]
[[test]]
name = "openai_compatible_tests"
path = "tests/provider/openai_compatible_tests.rs"
required-features = [
"openaicompatible",
"test-access",
]
[[test]]
name = "openai_tests"
path = "tests/provider/openai_tests.rs"
required-features = [
"openai",
"test-access",
]
[[test]]
name = "openrouter_tests"
path = "tests/provider/openrouter_tests.rs"
required-features = [
"openrouter",
"test-access",
]
[[test]]
name = "test_tools"
path = "tests/test_tools.rs"
[[test]]
name = "togetherai_tests"
path = "tests/provider/togetherai_tests.rs"
required-features = [
"togetherai",
"test-access",
]
[[test]]
name = "vercel_tests"
path = "tests/provider/vercel_tests.rs"
required-features = [
"vercel",
"test-access",
]
[[test]]
name = "xai_tests"
path = "tests/provider/xai_tests.rs"
required-features = [
"xai",
"test-access",
]
[dependencies.agentsdk-macros]
version = "0.6.1"
[dependencies.async-trait]
version = "0.1.88"
[dependencies.axum]
version = ">=0.7, <0.9"
optional = true
[dependencies.derive_builder]
version = "0.20.2"
[dependencies.fastrand]
version = "2"
optional = true
[dependencies.futures]
version = "0.3"
[dependencies.glob]
version = "0.3"
optional = true
[dependencies.log]
version = "0.4"
[dependencies.parking_lot]
version = "0.12.5"
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"stream",
"rustls-tls",
]
default-features = false
[dependencies.reqwest-eventsource]
version = "0.6.0"
[dependencies.schemars]
version = "1.0.4"
[dependencies.serde]
version = "1.0.219"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.tera]
version = "1"
optional = true
[dependencies.thiserror]
version = "2.0.12"
[dependencies.tokio]
version = "1.0"
features = [
"rt-multi-thread",
"macros",
]
[dependencies.uuid]
version = "1.0"
features = ["v4"]
[dev-dependencies.cargo-husky]
version = "1"
features = [
"precommit-hook",
"run-cargo-test",
"run-cargo-clippy",
"run-cargo-fmt",
]
[dev-dependencies.dotenv]
version = "0.15.0"
[dev-dependencies.tempfile]
version = "3.10.1"
[dev-dependencies.tokio]
version = "1.0"
features = ["full"]
[dev-dependencies.tower-http]
version = "0.6.8"
features = ["cors"]
[dev-dependencies.wiremock]
version = "0.6.5"