[package]
name = "tysm"
version = "0.14.0"
edition = "2021"
description = "Batteries-included Rust OpenAI Client"
license = "MIT"
homepage = "https://github.com/not-pizza/tysm"
repository = "https://github.com/not-pizza/tysm"
readme = "README.md"
keywords = [
    "openai",
    "chatgpt",
    "chat-completions",
    "structured-outputs",
    "schema",
]

[features]
default = ["dotenvy"]

[dependencies]
dotenvy = { version = "0.15.0", optional = true }
reqwest = { version = "0.11.20", features = ["json", "multipart", "stream"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = { version = "1.0.107", features = ["preserve_order"] }
thiserror = "2.0.9"
tynm = "0.1.10"
lru = "0.12.5"
schemars = { version = "1.0.1", features = ["preserve_order"] }
tokio = { version = "1.21.2", features = ["fs"] }
tokio-util = { version = "0.7.10", features = ["codec"] }
url = "2.5.4"
xxhash-rust = { version = "0.8.15", features = ["xxh3", "const_xxh3"] }
zstd = "0.13.3"
log = "0.4.27"
itertools = "0.14.0"
dashmap = "6.1.0"

[dev-dependencies]
tokio = { version = "1.21.2", features = ["macros", "rt-multi-thread", "full"] }
tokio-test = "0.4"
anyhow = "1"

[[example]]
name = "chat-completions"
path = "examples/chat_completions.rs"

[[example]]
name = "embeddings"
path = "examples/embeddings.rs"

[[example]]
name = "files"
path = "examples/files.rs"

[[example]]
name = "batch-completions"
path = "examples/batch_completions.rs"

[[example]]
name = "batch-completions-low-level"
path = "examples/batch_completions_low_level.rs"
