# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
name = "duroxide"
version = "0.1.2"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Deterministic task orchestration framework for Rust - inspired by Durable Task Framework"
homepage = "https://github.com/affandar/duroxide"
documentation = "https://docs.rs/duroxide"
readme = "README.md"
keywords = [
    "durable",
    "workflow",
    "orchestration",
    "async",
    "tasks",
]
categories = [
    "asynchronous",
    "concurrency",
]
license = "MIT"
repository = "https://github.com/affandar/duroxide"

[features]
default = []
observability = [
    "opentelemetry",
    "opentelemetry_sdk",
    "opentelemetry-otlp",
]
provider-test = ["sqlite"]
sqlite = [
    "sqlx",
    "libsqlite3-sys",
]
test = [
    "provider-test",
    "test-hooks",
]
test-hooks = []

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

[[example]]
name = "delays_and_timeouts"
path = "examples/delays_and_timeouts.rs"

[[example]]
name = "fan_out_fan_in"
path = "examples/fan_out_fan_in.rs"

[[example]]
name = "hello_world"
path = "examples/hello_world.rs"

[[example]]
name = "metrics_cli"
path = "examples/metrics_cli.rs"

[[example]]
name = "timers_and_events"
path = "examples/timers_and_events.rs"

[[example]]
name = "with_observability"
path = "examples/with_observability.rs"

[[test]]
name = "cancellation_tests"
path = "tests/cancellation_tests.rs"

[[test]]
name = "concurrency_tests"
path = "tests/concurrency_tests.rs"

[[test]]
name = "continue_as_new_tests"
path = "tests/continue_as_new_tests.rs"

[[test]]
name = "determinism_tests"
path = "tests/determinism_tests.rs"

[[test]]
name = "dispatcher_queues_fs"
path = "tests/dispatcher_queues_fs.rs"

[[test]]
name = "e2e_samples"
path = "tests/e2e_samples.rs"

[[test]]
name = "errors_tests"
path = "tests/errors_tests.rs"

[[test]]
name = "futures_tests"
path = "tests/futures_tests.rs"

[[test]]
name = "lock_timeout_tests"
path = "tests/lock_timeout_tests.rs"

[[test]]
name = "long_poll_tests"
path = "tests/long_poll_tests.rs"

[[test]]
name = "management_interface_test"
path = "tests/management_interface_test.rs"

[[test]]
name = "nondeterminism_tests"
path = "tests/nondeterminism_tests.rs"

[[test]]
name = "observability_tests"
path = "tests/observability_tests.rs"

[[test]]
name = "orchestration_stall_tests"
path = "tests/orchestration_stall_tests.rs"

[[test]]
name = "orchestration_status_tests"
path = "tests/orchestration_status_tests.rs"

[[test]]
name = "poison_message_tests"
path = "tests/poison_message_tests.rs"

[[test]]
name = "property_tests"
path = "tests/property_tests.rs"

[[test]]
name = "provider_atomic_tests"
path = "tests/provider_atomic_tests.rs"

[[test]]
name = "provider_stress_test_validation"
path = "tests/provider_stress_test_validation.rs"

[[test]]
name = "races_tests"
path = "tests/races_tests.rs"

[[test]]
name = "recovery_tests"
path = "tests/recovery_tests.rs"

[[test]]
name = "registry_tests"
path = "tests/registry_tests.rs"

[[test]]
name = "reliability_tests"
path = "tests/reliability_tests.rs"

[[test]]
name = "runtime_options_test"
path = "tests/runtime_options_test.rs"

[[test]]
name = "scenarios"
path = "tests/scenarios.rs"

[[test]]
name = "schedule_with_retry_tests"
path = "tests/schedule_with_retry_tests.rs"

[[test]]
name = "sqlite_provider_validations"
path = "tests/sqlite_provider_validations.rs"

[[test]]
name = "sqlite_tests"
path = "tests/sqlite_tests.rs"

[[test]]
name = "system_calls_test"
path = "tests/system_calls_test.rs"

[[test]]
name = "timer_tests"
path = "tests/timer_tests.rs"

[[test]]
name = "unit_tests"
path = "tests/unit_tests.rs"

[[test]]
name = "unknown_activity_tests"
path = "tests/unknown_activity_tests.rs"

[[test]]
name = "unknown_orchestration_tests"
path = "tests/unknown_orchestration_tests.rs"

[[test]]
name = "versioning_tests"
path = "tests/versioning_tests.rs"

[[test]]
name = "worker_reliability_test"
path = "tests/worker_reliability_test.rs"

[dependencies.async-trait]
version = "0.1"

[dependencies.futures]
version = "0.3"

[dependencies.libsqlite3-sys]
version = "0.28"
features = ["bundled"]
optional = true

[dependencies.opentelemetry]
version = "0.27"
optional = true

[dependencies.opentelemetry-otlp]
version = "0.27"
features = ["grpc-tonic"]
optional = true

[dependencies.opentelemetry_sdk]
version = "0.27"
features = ["rt-tokio"]
optional = true

[dependencies.semver]
version = "1"

[dependencies.serde]
version = "1"
features = ["derive"]

[dependencies.serde_json]
version = "1"

[dependencies.sqlx]
version = "0.8"
features = [
    "runtime-tokio-rustls",
    "sqlite",
    "macros",
    "migrate",
    "chrono",
]
optional = true

[dependencies.tokio]
version = "1"
features = ["full"]

[dependencies.tracing]
version = "0.1"
features = ["std"]

[dependencies.tracing-subscriber]
version = "0.3"
features = [
    "fmt",
    "env-filter",
    "json",
]

[dev-dependencies.proptest]
version = "1.4"

[dev-dependencies.tempfile]
version = "3"

[lints.clippy]
clone_on_ref_ptr = "warn"
expect_used = "warn"
large_enum_variant = "warn"
missing_errors_doc = "warn"
unwrap_used = "warn"
