[package]
edition = "2024"
rust-version = "1.88"
name = "runledger-postgres"
version = "0.12.0"
build = "build.rs"
exclude = ["AGENTS.md"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "PostgreSQL persistence layer for the Runledger durable job and workflow system"
homepage = "https://github.com/bpcakes/runledger"
documentation = "https://docs.rs/runledger-postgres"
readme = "README.md"
keywords = [
"jobs",
"workflows",
"postgres",
"queue",
]
categories = [
"asynchronous",
"database",
]
license = "MIT"
repository = "https://github.com/bpcakes/runledger"
resolver = "2"
[features]
test-support = []
[lib]
name = "runledger_postgres"
path = "src/lib.rs"
[[example]]
name = "append_workflow_steps"
path = "examples/append_workflow_steps.rs"
[[example]]
name = "enqueue_job"
path = "examples/enqueue_job.rs"
[[example]]
name = "external_gate"
path = "examples/external_gate.rs"
[[example]]
name = "schedule_job"
path = "examples/schedule_job.rs"
[[example]]
name = "workflow_dag"
path = "examples/workflow_dag.rs"
[[test]]
name = "admin_payload_mutation"
path = "tests/admin_payload_mutation.rs"
[[test]]
name = "claim_plan_parity"
path = "tests/claim_plan_parity.rs"
[[test]]
name = "compare_and_requeue"
path = "tests/compare_and_requeue.rs"
[[test]]
name = "enqueue_outcome"
path = "tests/enqueue_outcome.rs"
[[test]]
name = "job_cancellation_scope"
path = "tests/job_cancellation_scope.rs"
[[test]]
name = "job_continuation"
path = "tests/job_continuation.rs"
[[test]]
name = "job_enqueue_intents"
path = "tests/job_enqueue_intents.rs"
[[test]]
name = "job_execution_resources"
path = "tests/job_execution_resources.rs"
[[test]]
name = "migrations"
path = "tests/migrations.rs"
[[test]]
name = "owned_transaction_wrappers"
path = "tests/owned_transaction_wrappers.rs"
[[test]]
name = "pagination_validation"
path = "tests/pagination_validation.rs"
[[test]]
name = "queue_completion_progress_validation"
path = "tests/queue_completion_progress_validation.rs"
[[test]]
name = "queue_lease_expiry_metadata"
path = "tests/queue_lease_expiry_metadata.rs"
[[test]]
name = "queue_lease_validation"
path = "tests/queue_lease_validation.rs"
[[test]]
name = "queue_lifecycle_timeouts"
path = "tests/queue_lifecycle_timeouts.rs"
[[test]]
name = "queue_reaper_errors"
path = "tests/queue_reaper_errors.rs"
[[test]]
name = "queue_retry_delay_validation"
path = "tests/queue_retry_delay_validation.rs"
[[test]]
name = "queue_running_progress"
path = "tests/queue_running_progress.rs"
[[test]]
name = "schedules"
path = "tests/schedules.rs"
[[test]]
name = "succeeded_job_replay"
path = "tests/succeeded_job_replay.rs"
[[test]]
name = "support"
path = "tests/support.rs"
[[test]]
name = "workflow_active_claims"
path = "tests/workflow_active_claims.rs"
[[test]]
name = "workflow_dependency_persistence"
path = "tests/workflow_dependency_persistence.rs"
[[test]]
name = "workflow_ordering"
path = "tests/workflow_ordering.rs"
[[test]]
name = "workflow_read_scope"
path = "tests/workflow_read_scope.rs"
[[test]]
name = "workflow_recovery"
path = "tests/workflow_recovery.rs"
[[test]]
name = "workflow_results"
path = "tests/workflow_results.rs"
[[test]]
name = "workflow_step_defaults"
path = "tests/workflow_step_defaults.rs"
[dependencies.chrono]
version = "0.4"
features = [
"clock",
"std",
]
default-features = false
[dependencies.cron]
version = "0.16"
[dependencies.runledger-core]
version = "0.12.0"
features = ["sqlx-postgres"]
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sqlx]
version = "0.8.6"
features = [
"runtime-tokio",
"postgres",
"uuid",
"chrono",
"macros",
"migrate",
]
[dependencies.tokio]
version = "1"
features = [
"macros",
"rt-multi-thread",
"signal",
"sync",
"time",
]
default-features = false
[dependencies.tracing]
version = "0.1"
features = ["std"]
[dev-dependencies.runledger-test-support]
version = "0.12.0"
[dev-dependencies.tokio]
version = "1"
features = [
"macros",
"rt-multi-thread",
"signal",
"sync",
"time",
]
default-features = false
[lints.clippy]
allow_attributes_without_reason = "deny"
dbg_macro = "deny"
future_not_send = "deny"
large_futures = "deny"
large_stack_frames = "deny"
todo = "deny"
undocumented_unsafe_blocks = "deny"
unimplemented = "deny"
unwrap_used = "deny"
[lints.clippy.all]
level = "deny"
priority = -1
[lints.rust]
unsafe_code = "deny"
warnings = "deny"