durare 0.3.1

A DBOS-compatible durable execution SDK for Rust: write ordinary async code, checkpoint every step to Postgres or SQLite, and resume exactly where you left off after a crash.
Documentation
# 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 = "2021"
rust-version = "1.88"
name = "durare"
version = "0.3.1"
build = false
exclude = [
    ".github/",
    ".cargo/",
    "API_REVIEW.md",
    "ROADMAP.md",
    "PARITY.md",
    "CONFORMANCE.md",
    "RELEASING.md",
    "tests/cycle_demo.rs",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A DBOS-compatible durable execution SDK for Rust: write ordinary async code, checkpoint every step to Postgres or SQLite, and resume exactly where you left off after a crash."
homepage = "https://github.com/SamuelXing/durare"
documentation = "https://docs.rs/durare"
readme = "README.md"
keywords = [
    "durable-execution",
    "workflow",
    "dbos",
    "orchestration",
    "postgres",
]
categories = [
    "asynchronous",
    "database",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/SamuelXing/durare"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[features]
admin = ["dep:axum"]
conductor = [
    "dep:tokio-tungstenite",
    "dep:flate2",
]
default = [
    "postgres",
    "sqlite",
]
postgres = ["sqlx/postgres"]
sqlite = ["sqlx/sqlite"]

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

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

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

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

[[example]]
name = "order"
path = "examples/order.rs"
required-features = ["postgres"]

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

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

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

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

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

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

[[example]]
name = "transfer"
path = "examples/transfer.rs"
required-features = ["sqlite"]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[dependencies.axum]
version = "0.7"
optional = true

[dependencies.base64]
version = "0.21"

[dependencies.chrono]
version = "0.4"
features = ["serde"]

[dependencies.chrono-tz]
version = "0.9"

[dependencies.cron]
version = "0.12"

[dependencies.durare-macros]
version = "0.1"

[dependencies.fail]
version = "0.5"

[dependencies.flate2]
version = "1"
optional = true

[dependencies.futures-util]
version = "0.3"
features = [
    "std",
    "sink",
]
default-features = false

[dependencies.inventory]
version = "0.3"

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

[dependencies.serde_json]
version = "1"
features = ["preserve_order"]

[dependencies.sha2]
version = "0.10"

[dependencies.sqlx]
version = "0.8"
features = [
    "runtime-tokio",
    "tls-rustls",
    "macros",
    "json",
    "chrono",
    "migrate",
]
default-features = false

[dependencies.thiserror]
version = "1"

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

[dependencies.tokio-tungstenite]
version = "0.23"
features = ["rustls-tls-webpki-roots"]
optional = true

[dependencies.tokio-util]
version = "0.7"
default-features = false

[dependencies.tracing]
version = "0.1"

[dependencies.uuid]
version = "1"
features = ["v4"]

[dev-dependencies.fail]
version = "0.5"
features = ["failpoints"]

[dev-dependencies.futures-util]
version = "0.3"
features = [
    "std",
    "sink",
]
default-features = false

[dev-dependencies.tokio-tungstenite]
version = "0.23"
features = ["rustls-tls-webpki-roots"]

[dev-dependencies.tracing-subscriber]
version = "0.3"