[package]
edition = "2021"
name = "a3s-flow"
version = "0.4.0"
authors = ["A3S Lab"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Durable workflow engine and Rust SDK for A3S"
documentation = "https://docs.rs/a3s-flow"
readme = "README.md"
keywords = [
"workflow",
"durable",
"event-sourcing",
"async",
"sdk",
]
categories = [
"asynchronous",
"development-tools",
]
license = "MIT"
repository = "https://github.com/A3S-Lab/Flow"
[features]
default = ["native-ts"]
native-ts = []
postgres = [
"dep:sqlx",
"sqlx/postgres",
]
sqlite = [
"dep:sqlx",
"sqlx/sqlite",
]
[lib]
name = "a3s_flow"
path = "src/lib.rs"
[[example]]
name = "batch_steps"
path = "examples/batch_steps.rs"
[[example]]
name = "cancellation"
path = "examples/cancellation.rs"
[[example]]
name = "compensation"
path = "examples/compensation.rs"
[[example]]
name = "hook_approval"
path = "examples/hook_approval.rs"
[[example]]
name = "hook_disposal"
path = "examples/hook_disposal.rs"
[[example]]
name = "local_audit_log"
path = "examples/local_audit_log.rs"
[[example]]
name = "local_file_durability"
path = "examples/local_file_durability.rs"
[[example]]
name = "local_retention"
path = "examples/local_retention.rs"
[[example]]
name = "native_ts_greeting"
path = "examples/native_ts_greeting.rs"
[[example]]
name = "native_ts_preflight"
path = "examples/native_ts_preflight.rs"
[[example]]
name = "observer_bridge"
path = "examples/observer_bridge.rs"
[[example]]
name = "observer_fanout"
path = "examples/observer_fanout.rs"
[[example]]
name = "polling_loop"
path = "examples/polling_loop.rs"
[[example]]
name = "postgres_durability"
path = "examples/postgres_durability.rs"
[[example]]
name = "postgres_task_queue_durability"
path = "examples/postgres_task_queue_durability.rs"
[[example]]
name = "recoverable_step_failure"
path = "examples/recoverable_step_failure.rs"
[[example]]
name = "retry_backoff"
path = "examples/retry_backoff.rs"
[[example]]
name = "run_inspection"
path = "examples/run_inspection.rs"
[[example]]
name = "scheduler_worker"
path = "examples/scheduler_worker.rs"
[[example]]
name = "sequential_steps"
path = "examples/sequential_steps.rs"
[[example]]
name = "sqlite_durability"
path = "examples/sqlite_durability.rs"
[[example]]
name = "sqlite_worker"
path = "examples/sqlite_worker.rs"
[[example]]
name = "task_queue_durability"
path = "examples/task_queue_durability.rs"
[[test]]
name = "context"
path = "tests/context.rs"
[[test]]
name = "engine"
path = "tests/engine.rs"
[[test]]
name = "native_ts_runtime"
path = "tests/native_ts_runtime.rs"
[[test]]
name = "protocol"
path = "tests/protocol.rs"
[[test]]
name = "scheduler"
path = "tests/scheduler.rs"
[[test]]
name = "worker"
path = "tests/worker.rs"
[dependencies.async-trait]
version = "0.1"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10"
[dependencies.sqlx]
version = "0.8"
features = ["runtime-tokio"]
optional = true
default-features = false
[dependencies.thiserror]
version = "1"
[dependencies.tokio]
version = "1"
features = [
"fs",
"io-util",
"process",
"sync",
"time",
]
[dependencies.tracing]
version = "0.1"
[dependencies.uuid]
version = "1"
features = [
"serde",
"v4",
]
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = [
"macros",
"rt",
"sync",
"time",
]