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