flusso-engine 0.10.1

The flusso sync engine: the resolve, build, flush, and ack pipeline.
Documentation
[package]
name = "flusso-engine"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
description = "The flusso sync engine: the resolve, build, flush, and ack pipeline."
authors.workspace = true
homepage.workspace = true
keywords.workspace = true
categories = ["database"]
readme.workspace = true

[lib]
name = "engine"

[lints]
workspace = true

[dependencies]
sources-core.workspace = true
sinks-core.workspace = true
queue-core.workspace = true
queue-channel.workspace = true
schema-core.workspace = true
futures.workspace = true
thiserror.workspace = true
tracing.workspace = true
tokio = { workspace = true, features = ["rt", "time"] }

[dev-dependencies]
async-trait.workspace = true
tokio = { workspace = true, features = ["rt", "rt-multi-thread", "macros", "time"] }
# Concrete source + sink, exercised together only here — the engine is the one
# component that legitimately spans both halves of the pipeline.
sources-postgres.workspace = true
sinks-opensearch.workspace = true
sqlx.workspace = true
rust_decimal.workspace = true
testcontainers-modules = { workspace = true, features = ["postgres", "http_wait"] }
criterion.workspace = true
# The full-pipeline e2e (`tests/pipeline.rs`) reads the real OpenSearch index
# back to assert what actually landed.
reqwest = { workspace = true, features = ["json", "rustls-tls"] }
serde_json.workspace = true

# Full pipeline benchmark: real Postgres -> the engine -> real OpenSearch.
# The backfill scenario drives the real `Engine::run()`. Spins up both
# containers, so requires Docker. Run with `cargo bench`.
[[bench]]
name = "pipeline"
harness = false