[package]
name = "instructors"
version = "1.3.2"
edition = "2024"
rust-version = "1.94"
description = "Type-safe structured output extraction from LLMs. The Rust instructor."
license = "MIT"
repository = "https://github.com/goliajp/rust-instructor"
homepage = "https://github.com/goliajp/rust-instructor"
authors = ["GOLIA株式会社", "Li Hao <lihao@golia.jp>"]
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.10"
tiktoken = { version = "3.1", 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
[profile.release]
lto = true
codegen-units = 1