codex-wrapper 0.3.1

A type-safe Codex CLI wrapper for Rust
Documentation
[package]
name = "codex-wrapper"
version = "0.3.1"
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
description = "A type-safe Codex CLI wrapper for Rust"
documentation = "https://docs.rs/codex-wrapper"
readme = "README.md"
keywords = ["codex", "cli", "wrapper", "ai", "mcp"]
categories = ["development-tools", "api-bindings"]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[features]
default = ["json"]
json = ["serde_json"]
# Read-side access to ~/.codex/config.toml. Optional so the default
# dependency list stays short: a caller that never reads config pays nothing.
config = ["dep:toml"]

[dependencies]
serde = { workspace = true }
serde_json = { version = "1", optional = true }
toml = { version = "1", optional = true, default-features = false, features = ["parse", "serde", "std"] }
thiserror = { workspace = true }
tokio = { version = "1", features = ["process", "time", "io-util", "macros"] }
tracing = { workspace = true }
which = "8"

# Signalling a process group needs kill(2). Already in the tree: tokio's
# `process` feature depends on it on unix, so this adds nothing new.
[target.'cfg(unix)'.dependencies]
libc = "0.2"

[dev-dependencies]
serde_json = "1"
tokio = { workspace = true }

# Each example declares the features it needs, so a reduced-feature build
# skips it rather than failing to compile it.
[[example]]
name = "oneshot"

[[example]]
name = "health_check"

[[example]]
name = "json_output"
required-features = ["json"]

[[example]]
name = "stream_exec"
required-features = ["json"]

[[example]]
name = "session"
required-features = ["json"]

[[example]]
name = "mcp_servers"
required-features = ["json"]

[[example]]
name = "review"
required-features = ["json"]