tasker-client 0.1.2

Tasker API client library — transport-agnostic REST and gRPC clients
[package]
name = "tasker-client"
version = "0.1.2"
edition = "2021"
description = "Tasker API client library — transport-agnostic REST and gRPC clients"
readme = "README.md"
repository = "https://github.com/tasker-systems/tasker-core"
license = "MIT"
keywords = ["api", "client", "orchestration", "rest", "workflow"]
categories = ["api-bindings", "asynchronous", "web-programming"]

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

# TAS-145: Ignore false positives from cargo-machete
[package.metadata.cargo-machete]
ignored = [
  # Dev-dependencies used in tests
  "dotenvy",
  "tokio-test",
  "workspace_tools",
  # Used at runtime
  "futures",
  "once_cell",
]

[lib]
name = "tasker_client"
path = "src/lib.rs"

[dependencies]
# Error handling and utilities
anyhow = { workspace = true }
async-trait = { workspace = true }
chrono = { workspace = true }
# Configuration
config = { workspace = true }
dirs = "6.0"
futures = { workspace = true }
once_cell = { workspace = true }
# Web API client
reqwest = { workspace = true }
# Serialization
serde = { workspace = true }
serde_json = { workspace = true }
# Core tasker dependencies
tasker-shared = { path = "../tasker-shared", version = "=0.1.2" }
# gRPC dependencies (optional)
tonic = { workspace = true, optional = true }
prost-types = { workspace = true, optional = true }
thiserror = { workspace = true }
# Async runtime and utilities
tokio = { workspace = true }
toml = { workspace = true }
# Logging and tracing
tracing = { workspace = true }
uuid = { workspace = true }
workspace_tools = { workspace = true }

[dev-dependencies]
dotenvy = { workspace = true }
tempfile = { workspace = true }
# Testing utilities
tokio-test = { workspace = true }

[features]
default = ["grpc"]
grpc = ["tonic", "prost-types", "tasker-shared/grpc-api"]
test-services = []  # Integration tests requiring running services

[lints]
workspace = true