github-copilot-sdk 0.1.0

Rust SDK for programmatic control of the GitHub Copilot CLI via JSON-RPC. Technical preview, pre-1.0.
Documentation
[package]
name = "github-copilot-sdk"
version = "0.1.0"
edition = "2024"
rust-version = "1.94.0"
description = "Rust SDK for programmatic control of the GitHub Copilot CLI via JSON-RPC. Technical preview, pre-1.0."
keywords = ["copilot", "github", "ai", "json-rpc", "sdk"]
categories = ["api-bindings", "development-tools"]
repository = "https://github.com/github/copilot-sdk"
homepage = "https://github.com/github/copilot-sdk"
documentation = "https://docs.rs/github-copilot-sdk"
readme = "README.md"
license = "MIT"
exclude = [
    "RELEASING.md",
    "release-plz.toml",
    "rust-toolchain.toml",
    ".rustfmt.toml",
    ".rustfmt.nightly.toml",
    "clippy.toml",
    ".gitignore",
]

[lib]
name = "github_copilot_sdk"

[features]
default = []
embedded-cli = ["dep:sha2", "dep:zstd"]
derive = ["dep:schemars"]
test-support = []

# Build docs.rs documentation with all features so feature-gated APIs
# (e.g. `define_tool`, `schema_for`) appear and intra-doc links resolve.
# Mirror this locally with: `cargo doc --no-deps --all-features`.
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
async-trait = "0.1"
schemars = { version = "1", optional = true }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
thiserror = "2"
tokio = { version = "1", features = ["io-util", "sync", "rt", "process", "net", "time", "macros"] }
tokio-stream = { version = "0.1", features = ["sync"] }
tokio-util = { version = "0.7", default-features = false }
tracing = "0.1"
dirs = "5"
parking_lot = "0.12"
regex = "1"
sha2 = { version = "0.10", optional = true }
getrandom = "0.2"
zstd = { version = "0.13", optional = true }

[dev-dependencies]
schemars = "1"
serial_test = "3"
tempfile = "3"
sha2 = "0.10"
tokio = { version = "1", features = ["rt-multi-thread"] }
zstd = "0.13"

[build-dependencies]
flate2 = "1"
sha2 = "0.10"
tar = "0.4"
ureq = { version = "2", default-features = false, features = ["tls"] }
zip = { version = "2", default-features = false, features = ["deflate"] }
zstd = "0.13"