durable-workflow 2.0.0

First-party Rust SDK for Durable Workflow workers and clients
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.86"
name = "durable-workflow"
version = "2.0.0"
build = false
include = [
    "/src/**",
    "/schema/**",
    "/examples/**",
    "/Cargo.toml",
    "/README.md",
    "/CHANGELOG.md",
    "/LICENSE",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "First-party Rust SDK for Durable Workflow workers and clients"
homepage = "https://durable-workflow.com"
documentation = "https://rust.durable-workflow.com/"
readme = "README.md"
keywords = [
    "durable",
    "workflow",
    "temporal",
    "worker",
    "sdk",
]
categories = [
    "api-bindings",
    "asynchronous",
]
license = "MIT"
repository = "https://github.com/durable-workflow/sdk-rust"

[package.metadata.durable-workflow]
activity-failure-reasons = [
    "activity",
    "cancelled",
    "timeout",
]
activity-options = true
activity-retry-policy = true
activity-timeouts = [
    "start_to_close",
    "schedule_to_start",
    "schedule_to_close",
    "heartbeat",
]
child-workflow-command = "start_child_workflow"
child-workflow-failure-reasons = [
    "child_workflow",
    "cancelled",
    "terminated",
]
child-workflows = true
compatibility-authority = "protocol-manifests"
condition-wait-command = "open_condition_wait"
condition-wait-minimum-worker-protocol-version = "1.9"
condition-wait-occurrence-capability = "condition_wait_occurrence_identity"
condition-wait-occurrence-identity = "explicit-deterministic-authored-ordinal"
condition-wait-occurrence-minimum-worker-protocol-version = "1.17"
condition-wait-replay-validation = "command-order+authored-occurrence+sequence+key+predicate-fingerprint+timeout"
condition-wait-result = [
    "satisfied",
    "timed_out",
]
continue-as-new = true
continue-as-new-command = "continue_as_new"
continue-as-new-routing-overrides = [
    "workflow_type",
    "queue",
]
control-plane-version = "2"
deterministic-parallel = true
deterministic-side-effects = true
durable-condition-waits = true
durable-selection = true
durable-selection-authoring = "select+select_keyed"
durable-selection-minimum-worker-protocol-version = "1.19"
durable-selection-non-winner-lifecycle = [
    "continue",
    "await",
    "cancel",
]
durable-selection-winner-history-event = "SelectionResolved"
durable-timers = true
legacy-search-attribute-history = "value-only+unknown-type-identity"
local-activities = false
message-streams = true
message-streams-minimum-worker-protocol-version = "1.15"
parallel-authoring = "parallel+join"
parallel-group-metadata = [
    "parallel_group_id",
    "parallel_group_kind",
    "parallel_group_base_sequence",
    "parallel_group_size",
    "parallel_group_index",
    "parallel_group_path",
]
parallel-members = [
    "activity",
    "child",
    "timer",
    "mixed",
    "nested",
]
parallel-result-order = "input-position"
payload-codecs = ["avro"]
portable-worker-affinity-minimum-worker-protocol-version = "1.18"
product-train = "2.0.0"
qualified-server-version = "2.0.0"
query-state-model = "deterministic-workflow-replay"
query-task-minimum-worker-protocol-version = "1.8"
query-tasks = true
replayed-instance-state-queries = true
saga-cancellation = "cooperative"
saga-compensation = true
saga-compensation-failure-policy = "stop-first-preserve-initiating-and-compensation"
saga-compensation-order = "reverse-registration-sequential"
search-attribute-replay-identity = "json-value+canonical-declared-type"
search-attribute-types = [
    "string",
    "keyword",
    "keyword_list",
    "int",
    "float",
    "bool",
    "datetime",
]
search-attribute-update-command = "upsert_search_attributes"
search-attribute-update-minimum-worker-protocol-version = "1.8"
server-worker-protocol-versions = ">=1.19,<2.0"
side-effect-command = "record_side_effect"
side-effect-history-event = "SideEffectRecorded"
snapshot-inspection-queries = true
sticky-execution = false
supported-server-versions = "2.0.0"
timer-command = "start_timer"
timer-replay-validation = "command-order+sequence+timer-id+delay"
typed-search-attributes = true
typed-search-attributes-minimum-worker-protocol-version = "1.16"
version-marker-command = "record_version_marker"
version-marker-helpers = [
    "patched",
    "deprecate_patch",
]
version-marker-history-event = "VersionMarkerRecorded"
version-markers = true
worker-protocol-version = "1.19"
worker-sessions = false
workflow-history-budget = [
    "total_history_events",
    "history_size_bytes",
    "continue_as_new_recommended",
    "history_budget_pressure",
]
workflow-lifecycle-commands = [
    "cancel",
    "terminate",
]
workflow-lifecycle-run-targeting = "current-run-guard"
workflow-result-routing = "current-run-chain-with-selected-run-view"
workflow-search-attribute-updates = true
workflow-start-timeouts = [
    "execution_timeout_seconds",
    "run_timeout_seconds",
]
workflow-streams-authoring-command = "record_side_effect.workflow_stream"
workflow-streams-contract = "durable-workflow.v2.workflow-streams.contract@1"
workflow-streams-delivery = "at-least-once"
workflow-streams-external-payload-references = "opaque-reference"
workflow-streams-operations = [
    "list",
    "describe",
    "subscribe",
    "append",
    "close",
    "error",
]
workflow-terminal-outcomes = [
    "failed",
    "cancelled",
    "terminated",
    "timed_out",
]

[package.metadata.durable-workflow.documentation]
cloud-destinations = [
    "cloud-access",
    "cloud-guide",
]
general-destinations = [
    "crate-install",
    "local-self-hosted",
    "api-reference",
    "sdk-guide",
]
path-order = [
    "general",
    "cloud",
]

[package.metadata.durable-workflow.documentation.availability]
cloud = "limited-early-access"
general = "generally-available"

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

[[bin]]
name = "durable-workflow-memo-restart"
path = "src/bin/durable-workflow-memo-restart.rs"

[[bin]]
name = "durable-workflow-replay-conformance"
path = "src/bin/durable-workflow-replay-conformance.rs"

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

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

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

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

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

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

[dependencies.apache-avro]
version = "0.21"
default-features = false

[dependencies.base64]
version = "0.22"

[dependencies.bon]
version = "=3.8.1"
default-features = false

[dependencies.chrono]
version = "0.4"
default-features = false

[dependencies.futures-util]
version = "0.3"

[dependencies.icu_collections]
version = "=2.2.0"
default-features = false

[dependencies.icu_locale_core]
version = "=2.2.0"
default-features = false

[dependencies.icu_normalizer]
version = "=2.2.0"
default-features = false

[dependencies.icu_properties]
version = "=2.2.0"
default-features = false

[dependencies.icu_provider]
version = "=2.2.0"
default-features = false

[dependencies.reqwest]
version = "0.12"
features = [
    "json",
    "rustls-tls",
]
default-features = false

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

[dependencies.serde-value]
version = "0.7"

[dependencies.serde_json]
version = "1"

[dependencies.sha2]
version = "0.10"

[dependencies.thiserror]
version = "1"

[dependencies.tokio]
version = "1"
features = [
    "macros",
    "rt-multi-thread",
    "signal",
    "time",
]

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

[dev-dependencies.serde_bytes]
version = "0.11"

[dev-dependencies.tokio]
version = "1"
features = [
    "macros",
    "rt-multi-thread",
]