[package]
edition = "2021"
rust-version = "1.75"
name = "async-openai"
version = "0.32.4"
authors = ["Himanshu Neema"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Rust library for OpenAI"
homepage = "https://github.com/64bit/async-openai"
readme = "README.md"
keywords = [
"openai",
"async",
"openapi",
"ai",
]
categories = [
"api-bindings",
"web-programming",
"asynchronous",
]
license = "MIT"
repository = "https://github.com/64bit/async-openai"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
_api = [
"dep:async-openai-macros",
"dep:backoff",
"dep:base64",
"dep:bytes",
"dep:futures",
"dep:rand",
"dep:reqwest",
"dep:reqwest-eventsource",
"dep:thiserror",
"dep:tokio",
"dep:tokio-stream",
"dep:tokio-util",
"dep:tracing",
"dep:secrecy",
"dep:eventsource-stream",
"dep:serde_urlencoded",
"dep:url",
]
administration = [
"administration-types",
"_api",
]
administration-types = ["dep:derive_builder"]
assistant = [
"assistant-types",
"_api",
]
assistant-types = ["dep:derive_builder"]
audio = [
"audio-types",
"_api",
]
audio-types = [
"dep:derive_builder",
"dep:bytes",
]
batch = [
"batch-types",
"_api",
]
batch-types = ["dep:derive_builder"]
byot = ["dep:async-openai-macros"]
chat-completion = [
"chat-completion-types",
"_api",
]
chat-completion-types = [
"dep:derive_builder",
"dep:bytes",
]
chatkit = [
"chatkit-types",
"_api",
]
chatkit-types = ["dep:derive_builder"]
completion-types = [
"dep:derive_builder",
"chat-completion-types",
]
completions = [
"completion-types",
"_api",
]
container = [
"container-types",
"_api",
]
container-types = [
"dep:derive_builder",
"dep:bytes",
]
default = ["rustls"]
embedding = [
"embedding-types",
"_api",
]
embedding-types = ["dep:derive_builder"]
eval-types = [
"dep:derive_builder",
"chat-completion-types",
"response-types",
"grader-types",
]
evals = [
"eval-types",
"_api",
]
file = [
"file-types",
"_api",
]
file-types = [
"dep:derive_builder",
"dep:bytes",
]
finetuning = [
"finetuning-types",
"_api",
]
finetuning-types = [
"dep:derive_builder",
"grader-types",
]
full = [
"responses",
"webhook",
"audio",
"video",
"image",
"embedding",
"evals",
"finetuning",
"batch",
"file",
"upload",
"model",
"moderation",
"vectorstore",
"chatkit",
"container",
"realtime",
"chat-completion",
"assistant",
"administration",
"completions",
"types",
"byot",
]
grader = ["grader-types"]
grader-types = [
"dep:derive_builder",
"eval-types",
]
image = [
"image-types",
"_api",
]
image-types = [
"dep:derive_builder",
"dep:bytes",
]
model = [
"model-types",
"_api",
]
model-types = ["dep:derive_builder"]
moderation = [
"moderation-types",
"_api",
]
moderation-types = ["dep:derive_builder"]
native-tls = [
"dep:reqwest",
"reqwest/native-tls",
]
native-tls-vendored = [
"dep:reqwest",
"reqwest/native-tls-vendored",
]
realtime = [
"realtime-types",
"_api",
"dep:tokio-tungstenite",
]
realtime-types = [
"dep:derive_builder",
"dep:bytes",
"response-types",
]
response-types = ["dep:derive_builder"]
responses = [
"response-types",
"_api",
]
rustls = [
"dep:reqwest",
"reqwest/rustls-tls-native-roots",
]
rustls-webpki-roots = [
"dep:reqwest",
"reqwest/rustls-tls-webpki-roots",
]
types = [
"response-types",
"webhook-types",
"audio-types",
"video-types",
"image-types",
"embedding-types",
"eval-types",
"finetuning-types",
"grader-types",
"batch-types",
"file-types",
"upload-types",
"model-types",
"moderation-types",
"vectorstore-types",
"chatkit-types",
"container-types",
"realtime-types",
"chat-completion-types",
"assistant-types",
"administration-types",
"completion-types",
]
upload = [
"upload-types",
"_api",
]
upload-types = [
"dep:derive_builder",
"dep:bytes",
"file-types",
]
vectorstore = [
"vectorstore-types",
"_api",
]
vectorstore-types = ["dep:derive_builder"]
video = [
"video-types",
"_api",
]
video-types = [
"dep:derive_builder",
"dep:bytes",
]
webhook = [
"webhook-types",
"dep:base64",
"dep:thiserror",
"dep:hmac",
"dep:sha2",
"dep:hex",
]
webhook-types = ["dep:derive_builder"]
[lib]
name = "async_openai"
path = "src/lib.rs"
[[test]]
name = "boxed_future"
path = "tests/boxed_future.rs"
required-features = [
"completions",
"chat-completion-types",
]
[[test]]
name = "bring_your_own_type"
path = "tests/bring_your_own_type.rs"
required-features = ["full"]
[[test]]
name = "chat_completion"
path = "tests/chat_completion.rs"
required-features = ["chat-completion-types"]
[[test]]
name = "embeddings"
path = "tests/embeddings.rs"
required-features = ["embedding-types"]
[[test]]
name = "ser_de"
path = "tests/ser_de.rs"
required-features = ["chat-completion-types"]
[[test]]
name = "whisper"
path = "tests/whisper.rs"
required-features = ["audio"]
[dependencies.async-openai-macros]
version = "0.1.1"
optional = true
[dependencies.base64]
version = "0.22"
optional = true
[dependencies.bytes]
version = "1.11"
optional = true
[dependencies.derive_builder]
version = "0.20"
optional = true
[dependencies.hex]
version = "0.4"
optional = true
default-features = false
[dependencies.hmac]
version = "0.12"
optional = true
default-features = false
[dependencies.rand]
version = "0.9"
optional = true
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"stream",
"multipart",
]
optional = true
default-features = false
[dependencies.secrecy]
version = "0.10"
features = ["serde"]
optional = true
[dependencies.serde]
version = "1"
features = [
"derive",
"rc",
]
[dependencies.serde_json]
version = "1"
[dependencies.serde_urlencoded]
version = "0.7"
optional = true
[dependencies.sha2]
version = "0.10"
optional = true
default-features = false
[dependencies.thiserror]
version = "2"
optional = true
[dependencies.tracing]
version = "0.1"
optional = true
[dependencies.url]
version = "2.5"
optional = true
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.tokio-test]
version = "0.4"
[target.'cfg(not(target_family = "wasm"))'.dependencies.backoff]
version = "0.4.0"
features = ["tokio"]
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.eventsource-stream]
version = "0.2"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.futures]
version = "0.3"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.reqwest-eventsource]
version = "0.6.0"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tokio]
version = "1"
features = [
"fs",
"macros",
]
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tokio-stream]
version = "0.1"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tokio-tungstenite]
version = "0.28"
optional = true
default-features = false
[target.'cfg(not(target_family = "wasm"))'.dependencies.tokio-util]
version = "0.7"
features = [
"codec",
"io-util",
]
optional = true
[target.wasm32-unknown-unknown.dependencies.getrandom]
version = "0.3"
features = ["wasm_js"]