karapace/crates/karapace-core/Cargo.toml
Marco Allegretti f535020600 feat: karapace-core — engine orchestration, lifecycle state machine, drift control
- Engine: init → resolve → lock → build → enter/exec → freeze → archive → destroy
- Cached store_root_str avoiding repeated to_string_lossy() allocations
- WAL-protected build, enter, exec, destroy, commit, restore, GC operations
- Overlay drift detection: diff/commit/export via upper_dir scanning
- Deterministic snapshot commit with composite identity hashing
- Atomic restore via staging directory swap
- StoreLock: compile-time enforcement via type parameter on gc()
- Signal handler: SIGINT/SIGTERM graceful shutdown with AtomicBool
- Push/pull delegation to karapace-remote backend
- Crash recovery: stale .running marker cleanup on Engine::new()
- Integration tests, E2E tests, crash injection tests, ENOSPC simulation
- Criterion benchmarks: build, rebuild, commit, restore, GC, verify
2026-02-22 18:37:02 +01:00

37 lines
883 B
TOML

[package]
name = "karapace-core"
description = "Build engine, lifecycle state machine, drift control, and concurrency for Karapace"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
[lints]
workspace = true
[dependencies]
blake3.workspace = true
serde.workspace = true
serde_json.workspace = true
thiserror.workspace = true
chrono.workspace = true
ctrlc.workspace = true
tracing.workspace = true
fs2.workspace = true
libc.workspace = true
karapace-schema = { path = "../karapace-schema" }
karapace-store = { path = "../karapace-store" }
karapace-runtime = { path = "../karapace-runtime" }
karapace-remote = { path = "../karapace-remote" }
tempfile.workspace = true
[dev-dependencies]
criterion.workspace = true
[[bin]]
name = "stress_test"
path = "src/bin/stress_test.rs"
[[bench]]
name = "engine_benchmarks"
harness = false