[package]
edition = "2021"
name = "tasker-worker"
version = "0.1.1"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
default-run = "tasker-worker"
description = "Worker foundation system for multi-language step execution"
readme = "README.md"
keywords = [
"async",
"execution",
"ffi",
"task",
"worker",
]
categories = [
"asynchronous",
"concurrency",
"web-programming",
]
license = "MIT"
repository = "https://github.com/tasker-systems/tasker-core"
[package.metadata.cargo-machete]
ignored = [
"cargo-llvm-cov",
"serial_test",
"tasker-core",
"tempfile",
"tokio-test",
"url",
"axum-extra",
"prost",
"prost-types",
"tokio-stream",
"bigdecimal",
"criterion",
"crossbeam",
"dotenvy",
"fastrand",
"jsonwebtoken",
"opentelemetry-otlp",
"rand",
"regex",
"reqwest",
"rsa",
"rust_decimal",
"serde_yaml",
"sysinfo",
"toml",
"tracing-subscriber",
]
[features]
benchmarks = ["criterion"]
default = [
"grpc-api",
"postgres",
"test-utils",
"web-api",
]
grpc-api = [
"web-api",
"tonic",
"tonic-health",
"tonic-reflection",
"prost",
"prost-types",
"tokio-stream",
"tasker-shared/grpc-api",
]
postgres = ["sqlx/postgres"]
test-cluster = ["test-services"]
test-db = []
test-messaging = ["test-db"]
test-services = ["test-messaging"]
test-utils = []
tokio-console = ["tasker-shared/tokio-console"]
web-api = [
"axum",
"axum-extra",
"jsonwebtoken",
"rsa",
"tower",
"tower-http",
"utoipa",
"utoipa-swagger-ui",
]
[lib]
name = "tasker_worker"
crate-type = ["rlib"]
path = "src/lib.rs"
[[bin]]
name = "generate-worker-openapi"
path = "src/bin/generate_openapi.rs"
required-features = ["web-api"]
[[bin]]
name = "tasker-worker"
path = "src/bin/server.rs"
required-features = ["web-api"]
[[test]]
name = "worker_event_system_integration_test"
path = "tests/worker_event_system_integration_test.rs"
[[test]]
name = "workflow_integration_test"
path = "tests/workflow_integration_test.rs"
[dependencies.anyhow]
version = "1.0"
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "0.8"
optional = true
[dependencies.axum-extra]
version = "0.12"
features = ["typed-header"]
optional = true
[dependencies.bigdecimal]
version = "0.4"
features = ["serde"]
[dependencies.chrono]
version = "0.4.43"
features = ["serde"]
[dependencies.config]
version = "0.15"
[dependencies.criterion]
version = "0.8.1"
optional = true
[dependencies.crossbeam]
version = "0.8"
[dependencies.dashmap]
version = "6.1"
[dependencies.dotenvy]
version = "0.15"
[dependencies.fastrand]
version = "2.0"
[dependencies.futures]
version = "0.3"
[dependencies.jsonwebtoken]
version = "10"
features = ["rust_crypto"]
optional = true
[dependencies.metrics]
version = "0.24"
[dependencies.opentelemetry]
version = "0.31"
[dependencies.opentelemetry-otlp]
version = "0.31"
features = [
"grpc-tonic",
"logs",
]
[dependencies.pgmq]
version = "0.31.2"
[dependencies.prost]
version = "0.14"
optional = true
[dependencies.prost-types]
version = "0.14"
optional = true
[dependencies.rand]
version = "0.9.1"
[dependencies.regex]
version = "1.0"
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"rustls-tls",
]
default-features = false
[dependencies.rsa]
version = "0.9"
optional = true
[dependencies.rust_decimal]
version = "1.40"
features = ["serde-with-str"]
[dependencies.serde]
version = "=1.0.228"
features = [
"derive",
"std",
]
[dependencies.serde_json]
version = "1.0"
[dependencies.serde_yaml]
version = "0.9"
[dependencies.sqlx]
version = "0.8"
features = [
"bigdecimal",
"chrono",
"json",
"macros",
"migrate",
"postgres",
"runtime-tokio-rustls",
"uuid",
]
optional = true
[dependencies.sysinfo]
version = "0.37"
[dependencies.tasker-client]
version = "=0.1.1"
package = "tasker-client"
[dependencies.tasker-pgmq]
version = "=0.1.1"
[dependencies.tasker-shared]
version = "=0.1.1"
package = "tasker-shared"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.49"
features = ["full"]
[dependencies.tokio-stream]
version = "0.1"
features = ["net"]
optional = true
[dependencies.toml]
version = "0.9"
[dependencies.tonic]
version = "0.14"
optional = true
[dependencies.tonic-health]
version = "0.14"
optional = true
[dependencies.tonic-reflection]
version = "0.14"
optional = true
[dependencies.tower]
version = "0.5"
optional = true
[dependencies.tower-http]
version = "0.6"
features = [
"cors",
"timeout",
"trace",
]
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3.20"
features = [
"env-filter",
"json",
]
[dependencies.utoipa]
version = "5.4"
features = [
"axum_extras",
"chrono",
"uuid",
]
optional = true
[dependencies.utoipa-swagger-ui]
version = "9.0"
features = ["axum"]
optional = true
[dependencies.uuid]
version = "1.11"
features = [
"serde",
"v4",
"v7",
]
[dependencies.workspace_tools]
version = "0.11.0"
features = ["full"]
[dev-dependencies.cargo-llvm-cov]
version = "0.7"
[dev-dependencies.serial_test]
version = "3.3"
[dev-dependencies.tempfile]
version = "3.24"
[dev-dependencies.tokio-test]
version = "0.4"
[dev-dependencies.url]
version = "2.0"
[lints.clippy]
dbg_macro = "warn"
module_inception = "allow"
multiple_crate_versions = "allow"
undocumented_unsafe_blocks = "warn"
uninlined_format_args = "allow"
[lints.clippy.cargo]
level = "warn"
priority = -1
[lints.clippy.correctness]
level = "warn"
priority = -1
[lints.clippy.suspicious]
level = "warn"
priority = -1
[lints.rust]
missing_debug_implementations = "warn"
redundant_imports = "warn"
unsafe_op_in_unsafe_fn = "warn"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(tokio_unstable)"]