tinyagents 0.1.2

A Rust LLM orchestration library inspired by LangChain and LangGraph.
Documentation
[package]
name = "tinyagents"
version = "0.1.2"
edition = "2024"
license = "GPL-3.0-only"
description = "A Rust LLM orchestration library inspired by LangChain and LangGraph."
repository = "https://github.com/tinyhumansai/tinyagents"
readme = "README.md"
keywords = ["llm", "agents", "graph", "langchain", "langgraph"]
categories = ["asynchronous", "api-bindings"]

[dependencies]
async-trait = "0.1"
# Runtime-agnostic future combinators (`join_all` for concurrent supersteps) and
# the `Stream`/`StreamExt` traits backing the real streaming pipeline
# (`harness::model::ModelStream`).
futures = "0.3"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
thiserror = "2"

# Async runtime primitives used by the streaming pipeline. The library only
# needs the lightweight pieces (synchronization + timers); the full
# multi-threaded runtime stays a dev-dependency for examples and tests.
tokio = { version = "1", default-features = false, features = ["sync", "time", "macros"] }

# Optional HTTP client, pulled in only by hosted-provider features. The `stream`
# feature enables `Response::bytes_stream` for Server-Sent-Events streaming.
reqwest = { version = "0.12", default-features = false, features = [
    "json",
    "rustls-tls",
    "stream",
], optional = true }

[features]
default = []
# Hosted OpenAI Chat Completions provider (`harness::providers::openai`).
openai = ["dep:reqwest"]

[dev-dependencies]
tokio = { version = "1", features = ["macros", "rt-multi-thread", "time"] }
# `.env` loading for the runnable examples.
dotenvy = "0.15"
# Stream combinators (`StreamExt::next`) for integration tests that drive a
# `ModelStream` directly.
futures = "0.3"

# --- OpenAI-backed examples (require a network call + OPENAI_API_KEY) ---
# Gated behind the `openai` feature so the default build/test stays offline.
[[example]]
name = "openai_chat"
required-features = ["openai"]

[[example]]
name = "openai_tools"
required-features = ["openai"]

[[example]]
name = "openai_structured"
required-features = ["openai"]

[[example]]
name = "openai_graph_agent"
required-features = ["openai"]

[[example]]
name = "openai_self_blueprint"
required-features = ["openai"]

[[example]]
name = "orchestrator_subagents"
required-features = ["openai"]