[package]
name = "tasker-shared"
version = "0.1.1"
edition = "2021"
description = "Shared components for tasker orchestration and worker systems"
readme = "README.md"
repository = "https://github.com/tasker-systems/tasker-core"
license = "MIT"
keywords = ["async", "orchestration", "shared", "task", "workflow"]
categories = ["asynchronous", "database", "web-programming"]
[package.metadata.cargo-machete]
ignored = [
"cargo-llvm-cov",
"tasker-core",
"tokio-test",
"url",
"axum-extra",
"tower",
"tower-http",
"utoipa-swagger-ui",
"prost",
"tokio-stream",
"tonic-build",
"tonic-prost",
"tonic-prost-build",
"crossbeam",
"is-terminal",
"opentelemetry-semantic-conventions",
"rand",
"rust_decimal",
"sysinfo",
"workspace_tools",
]
[lib]
crate-type = ["rlib"]
name = "tasker_shared"
[[bench]]
harness = false
name = "sql_functions"
required-features = ["benchmarks"]
[[bench]]
harness = false
name = "event_propagation"
required-features = ["benchmarks"]
[dependencies]
anyhow = { workspace = true }
async-trait = { workspace = true }
axum = { workspace = true, optional = true }
axum-extra = { workspace = true, optional = true }
bigdecimal = { workspace = true }
bon = { workspace = true }
chrono = { workspace = true }
config = { workspace = true }
criterion = { workspace = true, optional = true }
crossbeam = { workspace = true }
derive_more = { workspace = true }
dotenvy = { workspace = true }
fastrand = { workspace = true }
futures = { workspace = true }
is-terminal = { workspace = true }
jsonschema = "0.40"
jsonwebtoken = { workspace = true, optional = true }
lapin = { workspace = true }
opentelemetry = { workspace = true }
opentelemetry-appender-tracing = { workspace = true }
opentelemetry-otlp = { workspace = true }
opentelemetry-prometheus-text-exporter = { workspace = true }
opentelemetry_sdk = { workspace = true }
opentelemetry-semantic-conventions = { workspace = true }
pgmq = { workspace = true }
tasker-pgmq = { workspace = true }
rand = { workspace = true }
redis = { workspace = true, optional = true }
moka = { workspace = true, optional = true }
async-memcached = { workspace = true, optional = true }
regex = { workspace = true }
reqwest = { workspace = true }
rsa = { workspace = true, optional = true }
rust_decimal = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
serde_yaml = { workspace = true }
sha2 = "0.10"
subtle = "2"
sqlx = { workspace = true }
sysinfo = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true }
toml = { workspace = true }
tower = { workspace = true, optional = true }
tower-http = { workspace = true, optional = true }
tracing = { workspace = true }
tracing-opentelemetry = { workspace = true }
tracing-subscriber = { workspace = true }
console-subscriber = { version = "0.4", optional = true }
utoipa = { workspace = true, optional = true }
utoipa-swagger-ui = { workspace = true, optional = true }
uuid = { workspace = true }
validator = { workspace = true }
workspace_tools = { workspace = true }
tonic = { workspace = true, optional = true }
tonic-prost = { workspace = true, optional = true }
prost = { workspace = true, optional = true }
prost-types = { workspace = true, optional = true }
tokio-stream = { workspace = true, optional = true }
[build-dependencies]
tonic-build = { workspace = true }
tonic-prost-build = { workspace = true }
[dev-dependencies]
cargo-llvm-cov = { workspace = true }
serial_test = { workspace = true }
tasker-core = { package = "tasker-core", path = "../" }
tempfile = { workspace = true }
tokio-test = { workspace = true }
url = { workspace = true }
[features]
default = ["cache-redis", "cache-moka", "grpc-api", "postgres", "test-utils", "web-api"]
benchmarks = ["criterion"]
cache-redis = ["redis"]
cache-moka = ["moka"]
cache-memcached = ["async-memcached"]
postgres = ["sqlx/postgres"]
test-utils = []
tokio-console = ["console-subscriber"]
web-api = [
"axum",
"axum-extra",
"jsonwebtoken",
"rsa",
"tower",
"tower-http",
"utoipa",
"utoipa-swagger-ui",
]
grpc-api = [
"tonic",
"tonic-prost",
"prost",
"prost-types",
"tokio-stream",
]
test-db = []
test-messaging = ["test-db"]
test-services = ["test-messaging", "cache-redis"]
test-cluster = ["test-services"]
[lints]
workspace = true