[package]
name = "opencode-sdk"
version = "0.1.6"
edition = "2024"
authors = ["Allison Durham"]
description = "Rust SDK for OpenCode (HTTP-first hybrid with SSE streaming)"
repository = "https://github.com/allisoneer/agentic_auxilary"
homepage = "https://github.com/allisoneer/agentic_auxilary"
documentation = "https://docs.rs/opencode-rs-sdk"
license = "Apache-2.0"
keywords = ["opencode", "sdk", "http", "sse", "streaming"]
categories = ["api-bindings", "asynchronous", "development-tools"]
[features]
default = ["http", "sse"]
http = ["dep:reqwest", "dep:serde_json"]
sse = ["dep:reqwest-eventsource", "dep:backon"]
server = ["tokio/process", "dep:portpicker"]
cli = ["tokio/process"]
full = ["http", "sse", "server", "cli"]
[dependencies]
reqwest = { version = "0.12", default-features = false, features = ["json", "stream", "rustls-tls"], optional = true }
reqwest-eventsource = { version = "0.6", optional = true }
tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "time"] }
tokio-util = "0.7"
serde = { version = "1", features = ["derive"] }
serde_json = { version = "1", optional = true }
thiserror = "2"
url = "2"
http = "1"
backon = { version = "1", features = ["tokio-sleep"], optional = true }
tracing = "0.1"
chrono = { version = "0.4", features = ["serde"] }
portpicker = { version = "0.1", optional = true }
futures = "0.3"
urlencoding = "2"
uuid = { version = "1", features = ["serde", "v4"] }
[dev-dependencies]
wiremock = "0.6"
tokio-test = "0.4"
anyhow = "1"
tracing-subscriber = "0.3"
[[example]]
name = "basic"
required-features = ["http", "sse"]
[[example]]
name = "streaming"
required-features = ["http", "sse"]
[[example]]
name = "managed_server"
required-features = ["http", "sse", "server"]
[[example]]
name = "cli_runner"
required-features = ["cli"]
[[example]]
name = "full_workflow"
required-features = ["http", "sse"]
[package.metadata.repo]
role = "lib"
family = "services"
[package.metadata.repo.integrations]
mcp = false
logging = false
napi = false