[package]
edition = "2024"
name = "duroxide"
version = "0.1.12"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Durable code execution framework for Rust"
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 = "activity_routing_tests"
path = "tests/activity_routing_tests.rs"
[[test]]
name = "async_block_tests"
path = "tests/async_block_tests.rs"
[[test]]
name = "bulk_deletion_integration_tests"
path = "tests/bulk_deletion_integration_tests.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 = "deletion_integration_tests"
path = "tests/deletion_integration_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_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 = "prune_integration_tests"
path = "tests/prune_integration_tests.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 = "replay_engine_tests"
path = "tests/replay_engine_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 = "unregistered_backoff_tests"
path = "tests/unregistered_backoff_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.tokio-util]
version = "0.7"
[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"