[package]
edition = "2021"
rust-version = "1.92.0"
name = "rainy-sdk"
version = "0.6.2"
authors = ["Enosis Labs <hello@enosislabs.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Official Rust SDK for Rainy API by Enosis Labs v0.6.2 - Web Research API, Exa/Tavily Support, Cowork API key validation, Gemini 3 models with advanced thinking capabilities, and full OpenAI compatibility"
homepage = "https://github.com/enosislabs/rainy-sdk"
documentation = "https://docs.rs/rainy-sdk"
readme = "README.md"
keywords = [
"ai",
"api",
"openai",
"anthropic",
"gemini",
]
categories = [
"api-bindings",
"asynchronous",
"web-programming::http-client",
]
license = "Apache-2.0"
repository = "https://github.com/enosislabs/rainy-sdk"
[package.metadata.docs.rs]
all-features = true
default-target = "x86_64-unknown-linux-gnu"
targets = [
"x86_64-apple-darwin",
"aarch64-apple-darwin",
]
rustdoc-args = [
"--cfg",
"docsrs",
]
include = [
"src/**/*",
"Cargo.toml",
"README.md",
"LICENSE",
"CONTRIBUTING.md",
]
[features]
cache = []
cowork = []
default = [
"rate-limiting",
"tracing",
"cowork",
]
rate-limiting = ["governor"]
tracing = ["dep:tracing"]
[lib]
name = "rainy_sdk"
path = "src/lib.rs"
[[example]]
name = "basic_usage"
path = "examples/basic_usage.rs"
[[example]]
name = "chat_completion"
path = "examples/chat_completion.rs"
[[example]]
name = "error_handling"
path = "examples/error_handling.rs"
[[example]]
name = "gemini_3_thinking"
path = "examples/gemini_3_thinking.rs"
[[test]]
name = "integration_test"
path = "tests/integration_test.rs"
[[test]]
name = "research_test"
path = "tests/research_test.rs"
[[test]]
name = "unit_tests"
path = "tests/unit_tests.rs"
[dependencies.anyhow]
version = "1.0.99"
[dependencies.base64]
version = "0.22"
[dependencies.chrono]
version = "0.4.41"
features = ["serde"]
[dependencies.eventsource-stream]
version = "0.2"
[dependencies.futures]
version = "0.3.31"
[dependencies.governor]
version = "0.7"
optional = true
[dependencies.rand]
version = "0.8"
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"stream",
"rustls-tls",
]
default-features = false
[dependencies.secrecy]
version = "0.8"
features = ["serde"]
[dependencies.serde]
version = "1.0.219"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.143"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.47"
features = ["full"]
[dependencies.tracing]
version = "0.1.41"
optional = true
[dependencies.url]
version = "2.5"
[dependencies.uuid]
version = "1.18"
features = [
"v4",
"serde",
]
[dev-dependencies.env_logger]
version = "0.11"
[dev-dependencies.mockito]
version = "1.7"
[dev-dependencies.tokio-test]
version = "0.4.4"
[profile.bench]
opt-level = 3
lto = true
debug = 0
[profile.dev]
opt-level = 0
debug = 2
incremental = true
[profile.dev.package."*"]
opt-level = 1
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
debug = 0
panic = "abort"
strip = "symbols"
[profile.release.package."*"]
opt-level = 3
[profile.test]
opt-level = 1
debug = 2