oxide-batch 0.5.0

Embedded Core Production Preview of restartable batch processing for Rust, inspired by Spring Batch
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 = "2024"
rust-version = "1.95"
name = "oxide-batch"
version = "0.5.0"
build = false
publish = ["crates-io"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Embedded Core Production Preview of restartable batch processing for Rust, inspired by Spring Batch"
readme = "README.md"
keywords = [
    "batch",
    "job",
    "workflow",
    "processing",
    "restartable",
]
categories = [
    "asynchronous",
    "database",
]
license = "Apache-2.0"
repository = "https://github.com/luceat-lux-vestra/oxide-batch"

[package.metadata.docs.rs]
all-features = true

[features]
default = []
postgres = ["dep:sqlx"]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[dependencies.oxide-batch-core]
version = "=0.5.0"

[dependencies.oxide-batch-plan]
version = "=0.5.0"

[dependencies.oxide-batch-repository]
version = "=0.5.0"

[dependencies.serde_json]
version = "1.0.151"

[dependencies.sha2]
version = "0.11.0"

[dependencies.sqlx]
version = "0.9.0"
features = [
    "json",
    "macros",
    "migrate",
    "postgres",
    "runtime-tokio",
    "tls-rustls-ring-native-roots",
]
optional = true
default-features = false

[dependencies.tokio]
version = "1.53.1"
features = [
    "macros",
    "rt",
    "sync",
    "time",
]

[dev-dependencies.futures-executor]
version = "0.3.31"

[dev-dependencies.syn]
version = "3.0.3"
features = [
    "full",
    "parsing",
]
default-features = false

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

[dev-dependencies.trybuild]
version = "1.0.118"

[lints.clippy]
expect_used = "deny"
panic = "deny"
unwrap_used = "deny"

[lints.clippy.all]
level = "warn"
priority = -1

[lints.clippy.pedantic]
level = "warn"
priority = -1

[lints.rust]
missing_docs = "warn"
unsafe_code = "forbid"