[package]
name = "jules-api"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
description = "API integrations and client implementation for Jules-SDK"
keywords = ["jules", "google", "http-client", "async"]
categories = ["api-bindings", "web-programming::http-client", "asynchronous"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[lints]
workspace = true
[dependencies]
jules-core = { workspace = true }
serde = { version = "1.0.229", features = ["derive"] }
serde_json = "1.0.151"
thiserror = "2.0.19"
percent-encoding = "2.3.2"
[features]
default = ["streaming", "tools"]
streaming = ["jules-core/streaming"]
tools = ["jules-core/tools"]
middleware = ["jules-core/middleware", "dep:tokio"]
telemetry = ["jules-core/telemetry"]
cli = ["jules-core/cli"]
wasm = ["jules-core/wasm"]
experimental = ["jules-core/experimental"]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
reqwest = { version = "0.12", default-features = false, features = ["json", "default-tls"] }
tokio = { version = "1.53.1", features = ["time"], optional = true }
[target.'cfg(target_arch = "wasm32")'.dependencies]
js-sys = "0.3.103"
wasm-bindgen = "0.2.126"
wasm-bindgen-futures = "0.4.76"
web-sys = { version = "0.3.103", features = ["Headers", "Request", "RequestInit", "RequestMode", "Response", "Window"] }
[target.wasm32-unknown-unknown.dependencies]
getrandom = { version = "0.4", features = ["wasm_js"] }
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
proptest = "1.11.0"
tokio = { version = "1.53.1", features = ["net", "io-util", "time"] }
[dev-dependencies]
tokio = { version = "1.53.1", features = ["rt", "macros"] }
wasm-bindgen-test = "0.3.45"