marque-engine 0.2.1

Pipeline orchestration: core + rules → diagnostics + fixes
Documentation
# SPDX-FileCopyrightText: 2026 Knitli Inc.
#
# SPDX-License-Identifier: MIT OR Apache-2.0

[package]
name = "marque-engine"
version = "0.2.1"
edition.workspace = true
rust-version.workspace = true
description = "Pipeline orchestration: core + rules → diagnostics + fixes"
repository.workspace = true
license-file = "LICENSE.md"
include = [
  "Cargo.toml",
  "LICENSE.md*",
  "README.md",
  "REUSE.toml",
  "build.rs",
  "src/**/*.rs",
]

[[bench]]
harness = false
name = "lint_latency"

[[bench]]
harness = false
name = "linear_scaling"

[[bench]]
harness = false
name = "deadline_overhead"

[[bench]]
harness = false
name = "decoder_trigraph_priors"

[[bench]]
harness = false
name = "decoder_10kb_rel_to_invariant"

[[bench]]
harness = false
name = "fix_throughput"

[[bench]]
harness = false
name = "fix_latency"

[dependencies]
aho-corasick = { workspace = true }
futures = { workspace = true, optional = true }
futures-core = { workspace = true }
marque-capco = { workspace = true }
marque-config = { workspace = true }
marque-core = { workspace = true }
marque-ism = { workspace = true }
marque-rules = { workspace = true }
marque-scheme = { workspace = true }
recoco-utils = { workspace = true, optional = true }
thiserror = { workspace = true }
tokio = { workspace = true, optional = true }
tracing = { workspace = true }
# `web_time::Instant` re-exports `std::time::Instant` on native and
# polyfills via Performance.now() on wasm32-unknown-unknown. The
# engine's deadline check (spec 005) calls `Instant::now()` per
# candidate; without this dep, that call panics in the WASM target.
web-time = { workspace = true }

[dev-dependencies]
criterion = { workspace = true }
humantime = { workspace = true }
insta = { workspace = true, features = ["json"] }
# path-only so `cargo publish` strips it (marque-test-utils is publish=false).
marque-test-utils = { workspace = true }
proptest = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }

[features]
default = ["batch"]
batch = ["dep:futures", "dep:recoco-utils", "dep:tokio"]
# Enables the byte-identical CAPCO corpus equivalence harness in the
# engine's integration tests; proxies to `marque-capco/corpus-harness`.
corpus-harness = ["marque-capco/corpus-harness"]
# Proxies to the `marque-capco` and `marque-config` gates. The engine
# itself needs a compile-time signal so it can thread the override
# through `Engine::lint_inner` / `fix_inner` (US2 / T063–T069). Must
# stay out of `default` — WASM disables it by taking engine with
# `default-features = false` (see `crates/wasm/Cargo.toml`).
corpus-override = [
  "marque-capco/corpus-override",
  "marque-config/corpus-override"
]
# Enables the decoder accuracy harness; proxies to
# `marque-capco/decoder-harness`.
decoder-harness = ["marque-capco/decoder-harness"]

[lints]
workspace = true