[package]
edition = "2024"
rust-version = "1.90.0"
name = "solti"
version = "0.0.4"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Modular Rust SDK for building task execution agents with pluggable runtimes and HTTP/gRPC APIs."
homepage = "https://github.com/soltiHQ/sdk"
documentation = "https://docs.rs/solti"
readme = "README.md"
keywords = [
"task",
"supervisor",
"orchestration",
"agent",
"tokio",
]
categories = [
"asynchronous",
"concurrency",
"network-programming",
]
license = "Apache-2.0"
repository = "https://github.com/soltiHQ/sdk"
resolver = "2"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
api = [
"dep:solti-api",
"model",
]
api-core-adapter = [
"api",
"core",
"solti-api/core-adapter",
]
api-grpc = [
"api",
"solti-api/grpc",
]
api-grpc-tls = [
"api-grpc",
"tls",
"solti-api/grpc-tls",
]
api-http = [
"api",
"solti-api/http",
]
core = [
"dep:solti-core",
"model",
"runner",
"taskvisor-controller",
]
default = []
discover = ["dep:solti-discover"]
discover-grpc = [
"discover",
"model",
"taskvisor",
"solti-discover/grpc",
]
discover-http = [
"discover",
"model",
"taskvisor",
"solti-discover/http",
]
discover-tls = [
"discover",
"tls",
"solti-discover/tls",
]
exec = ["dep:solti-exec"]
exec-container = [
"exec",
"model",
"runner",
"taskvisor",
"solti-exec/container",
]
exec-containerd = [
"exec-container",
"solti-exec/containerd",
]
exec-host-process = [
"exec",
"solti-exec/host-process",
]
exec-seccomp = [
"exec-host-process",
"solti-exec/seccomp",
]
exec-subprocess = [
"exec-host-process",
"model",
"runner",
"taskvisor",
"solti-exec/subprocess",
]
full = [
"api-core-adapter",
"api-grpc-tls",
"api-http",
"discover-grpc",
"discover-http",
"discover-tls",
"exec-containerd",
"exec-seccomp",
"exec-subprocess",
"observe-journald",
"observe-log-compat",
"observe-timezone-sync",
"prometheus-full",
"taskvisor-logging",
"taskvisor-tokio-util-interop",
"taskvisor-tracing",
]
model = [
"dep:solti-model",
"solti-model/schema",
]
observe = ["dep:solti-observe"]
observe-journald = [
"observe",
"solti-observe/journald",
]
observe-log-compat = [
"observe",
"solti-observe/log-compat",
]
observe-timezone-sync = [
"observe",
"model",
"taskvisor",
"solti-observe/timezone-sync",
]
prometheus = [
"prometheus-base",
"prometheus-runner",
"prometheus-taskvisor-controller",
]
prometheus-api = [
"prometheus-base",
"api",
"solti-prometheus/api",
]
prometheus-base = ["dep:solti-prometheus"]
prometheus-discover = [
"prometheus-base",
"discover",
"solti-prometheus/discover",
]
prometheus-full = [
"prometheus-api",
"prometheus-discover",
"prometheus-process",
"prometheus-runner",
"prometheus-server",
"prometheus-state",
"prometheus-taskvisor-controller",
]
prometheus-process = [
"prometheus-base",
"solti-prometheus/process",
]
prometheus-runner = [
"prometheus-base",
"runner",
"solti-prometheus/runner",
]
prometheus-server = [
"prometheus-base",
"model",
"taskvisor",
"solti-prometheus/server",
]
prometheus-state = [
"prometheus-base",
"core",
"model",
"solti-prometheus/state",
]
prometheus-taskvisor = [
"prometheus-base",
"taskvisor",
"solti-prometheus/taskvisor",
]
prometheus-taskvisor-controller = [
"prometheus-taskvisor",
"taskvisor-controller",
"solti-prometheus/taskvisor-controller",
]
runner = [
"dep:solti-runner",
"model",
"taskvisor",
]
taskvisor = ["dep:taskvisor"]
taskvisor-controller = [
"taskvisor",
"taskvisor/controller",
]
taskvisor-logging = [
"taskvisor",
"taskvisor/logging",
]
taskvisor-tokio-util-interop = [
"taskvisor",
"taskvisor/tokio-util-interop",
]
taskvisor-tracing = [
"taskvisor",
"taskvisor/tracing",
]
tls = ["dep:solti-tls"]
[lib]
name = "solti"
path = "src/lib.rs"
[[example]]
name = "agent_grpc"
path = "examples/agent_grpc.rs"
required-features = [
"api-core-adapter",
"api-grpc",
"exec-subprocess",
]
[[example]]
name = "agent_grpc_mtls"
path = "examples/agent_grpc_mtls.rs"
required-features = [
"api-core-adapter",
"api-grpc-tls",
"exec-subprocess",
]
[[example]]
name = "agent_http"
path = "examples/agent_http.rs"
required-features = [
"api-core-adapter",
"api-http",
"exec-subprocess",
]
[[example]]
name = "agent_http_discovery"
path = "examples/agent_http_discovery.rs"
required-features = [
"api-core-adapter",
"api-http",
"discover-http",
"exec-subprocess",
]
[[example]]
name = "operations_observe"
path = "examples/operations_observe.rs"
required-features = [
"core",
"exec-subprocess",
"observe-timezone-sync",
]
[[example]]
name = "operations_prometheus"
path = "examples/operations_prometheus.rs"
required-features = [
"core",
"exec-subprocess",
"prometheus",
"prometheus-server",
"prometheus-state",
]
[[example]]
name = "task_containerd"
path = "examples/task_containerd.rs"
required-features = [
"core",
"exec-containerd",
]
[[example]]
name = "task_custom_workload"
path = "examples/task_custom_workload.rs"
required-features = ["core"]
[[example]]
name = "task_subprocess"
path = "examples/task_subprocess.rs"
required-features = [
"core",
"exec-subprocess",
]
[dependencies.solti-api]
version = "0.0.4"
optional = true
default-features = false
[dependencies.solti-core]
version = "0.0.4"
optional = true
default-features = false
[dependencies.solti-discover]
version = "0.0.4"
optional = true
default-features = false
[dependencies.solti-exec]
version = "0.0.4"
optional = true
default-features = false
[dependencies.solti-model]
version = "0.0.4"
optional = true
default-features = false
[dependencies.solti-observe]
version = "0.0.4"
optional = true
default-features = false
[dependencies.solti-prometheus]
version = "0.0.4"
optional = true
default-features = false
[dependencies.solti-runner]
version = "0.0.4"
optional = true
default-features = false
[dependencies.solti-tls]
version = "0.0.4"
optional = true
default-features = false
[dependencies.taskvisor]
version = "0.7.0"
optional = true
default-features = false
[dev-dependencies.rcgen]
version = "0.14.8"
[dev-dependencies.serde]
version = "1.0.229"
features = [
"derive",
"derive",
]
[dev-dependencies.serde_json]
version = "1.0.151"
[dev-dependencies.tokio]
version = "1.53.1"
features = [
"io-util",
"macros",
"net",
"rt",
"signal",
"sync",
"time",
]
[dev-dependencies.tokio-stream]
version = "0.1.19"
[dev-dependencies.tracing]
version = "0.1.44"