[package]
name = "instructors"
version = "1.3.0"
edition.workspace = true
rust-version.workspace = true
description = "Type-safe structured output extraction from LLMs. The Rust instructor."
license.workspace = true
repository.workspace = true
homepage.workspace = true
authors.workspace = true
documentation = "https://docs.rs/instructors"
keywords = ["llm", "openai", "anthropic", "structured-output", "instructor"]
categories = ["api-bindings", "data-structures"]
readme = "README.md"
[dependencies]
serde = { version = "1", features = ["derive"] }
serde_json = "1"
schemars = "1"
reqwest = { version = "0.13", default-features = false, features = ["json", "rustls", "stream"] }
futures = "0.3"
tokio = { version = "1", features = ["sync", "time"] }
thiserror = "2"
rand = "0.9"
tiktoken = { path = "../tiktoken", version = "3.1.2", optional = true }
tracing = { version = "0.1", optional = true }
jsonrepair = "0.1"
[features]
default = ["cost-tracking"]
cost-tracking = ["tiktoken"]
tracing = ["dep:tracing"]
[dev-dependencies]
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
wiremock = "0.6"
criterion = "0.8"
[[bench]]
name = "schema"
harness = false