[package]
edition = "2021"
rust-version = "1.92"
name = "batpak"
version = "0.5.0"
build = "build.rs"
exclude = [
".devcontainer/**",
".github/**",
"AGENTS.md",
"docs/**",
"guide/**",
"scripts/**",
"templates/**",
"tools/**",
"traceability/**",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Event sourcing with causal graphs and policy gates. Sync API, zero async."
homepage = "https://github.com/TheFreeBatteryFactory/batpak"
documentation = "https://docs.rs/batpak"
readme = "README.md"
keywords = [
"event-sourcing",
"audit-trail",
"causal-graph",
"hash-chain",
"policy-engine",
]
categories = [
"database",
"concurrency",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/TheFreeBatteryFactory/batpak"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
blake3 = ["dep:blake3"]
dangerous-test-hooks = ["dep:fastrand"]
default = ["blake3"]
[lib]
name = "batpak"
path = "src/lib.rs"
[[example]]
name = "batch_append"
path = "examples/batch_append.rs"
[[example]]
name = "chat_room"
path = "examples/chat_room.rs"
[[example]]
name = "cursor_worker"
path = "examples/cursor_worker.rs"
[[example]]
name = "dungeon_typestate"
path = "examples/dungeon_typestate.rs"
[[example]]
name = "event_sourced_counter"
path = "examples/event_sourced_counter.rs"
[[example]]
name = "outbox"
path = "examples/outbox.rs"
[[example]]
name = "policy_gates"
path = "examples/policy_gates.rs"
[[example]]
name = "quickstart"
path = "examples/quickstart.rs"
[[example]]
name = "raw_projection_counter"
path = "examples/raw_projection_counter.rs"
[[example]]
name = "read_only"
path = "examples/read_only.rs"
[[example]]
name = "submit_pipeline"
path = "examples/submit_pipeline.rs"
[[example]]
name = "visibility_fence"
path = "examples/visibility_fence.rs"
[[test]]
name = "atomic_batch"
path = "tests/atomic_batch.rs"
[[test]]
name = "chaos_testing"
path = "tests/chaos_testing.rs"
[[test]]
name = "config_propagation"
path = "tests/config_propagation.rs"
[[test]]
name = "control_plane_surface"
path = "tests/control_plane_surface.rs"
[[test]]
name = "cursor_worker_restart"
path = "tests/cursor_worker_restart.rs"
[[test]]
name = "deterministic_concurrency"
path = "tests/deterministic_concurrency.rs"
[[test]]
name = "dx_surface"
path = "tests/dx_surface.rs"
[[test]]
name = "event_api"
path = "tests/event_api.rs"
[[test]]
name = "fuzz_chaos_feedback"
path = "tests/fuzz_chaos_feedback.rs"
[[test]]
name = "fuzz_targets"
path = "tests/fuzz_targets.rs"
[[test]]
name = "gate_pipeline"
path = "tests/gate_pipeline.rs"
[[test]]
name = "group_commit_crash"
path = "tests/group_commit_crash.rs"
[[test]]
name = "hash_chain"
path = "tests/hash_chain.rs"
[[test]]
name = "mmap_cold_start"
path = "tests/mmap_cold_start.rs"
[[test]]
name = "monad_laws"
path = "tests/monad_laws.rs"
[[test]]
name = "multi_view_parity"
path = "tests/multi_view_parity.rs"
[[test]]
name = "observability_flows"
path = "tests/observability_flows.rs"
[[test]]
name = "outcome_combinators"
path = "tests/outcome_combinators.rs"
[[test]]
name = "perf_gates"
path = "tests/perf_gates.rs"
[[test]]
name = "projection_cache"
path = "tests/projection_cache.rs"
[[test]]
name = "raw_projection_mode"
path = "tests/raw_projection_mode.rs"
[[test]]
name = "replay_consistency"
path = "tests/replay_consistency.rs"
[[test]]
name = "store_advanced"
path = "tests/store_advanced.rs"
[[test]]
name = "store_edge_cases"
path = "tests/store_edge_cases.rs"
[[test]]
name = "store_integration"
path = "tests/store_integration.rs"
[[test]]
name = "store_projection_wiring"
path = "tests/store_projection_wiring.rs"
[[test]]
name = "store_properties"
path = "tests/store_properties.rs"
[[test]]
name = "store_restart_policy"
path = "tests/store_restart_policy.rs"
[[test]]
name = "subscription_ops"
path = "tests/subscription_ops.rs"
[[test]]
name = "type_assertions"
path = "tests/type_assertions.rs"
[[test]]
name = "typestate_safety"
path = "tests/typestate_safety.rs"
[[test]]
name = "unified_red"
path = "tests/unified_red.rs"
[[test]]
name = "wire_format"
path = "tests/wire_format.rs"
[[bench]]
name = "batch_throughput"
path = "benches/batch_throughput.rs"
harness = false
[[bench]]
name = "cold_start"
path = "benches/cold_start.rs"
harness = false
[[bench]]
name = "compaction"
path = "benches/compaction.rs"
harness = false
[[bench]]
name = "projection_latency"
path = "benches/projection_latency.rs"
harness = false
[[bench]]
name = "subscription_fanout"
path = "benches/subscription_fanout.rs"
harness = false
[[bench]]
name = "unified_bench"
path = "benches/unified_bench.rs"
harness = false
[[bench]]
name = "write_throughput"
path = "benches/write_throughput.rs"
harness = false
[dependencies.blake3]
version = "1"
optional = true
[dependencies.crc32fast]
version = "1"
[dependencies.dashmap]
version = "5"
[dependencies.fastrand]
version = "2"
optional = true
[dependencies.flume]
version = "0.12"
[dependencies.memmap2]
version = "0.9"
[dependencies.parking_lot]
version = "0.12"
[dependencies.rayon]
version = "1.10"
[dependencies.rmp-serde]
version = "1"
[dependencies.serde]
version = "1"
features = [
"derive",
"rc",
]
[dependencies.serde_json]
version = "1"
[dependencies.tempfile]
version = "3"
[dependencies.tracing]
version = "0.1"
[dependencies.uuid]
version = "1"
features = ["v7"]
[dev-dependencies.arbitrary]
version = "1"
features = ["derive"]
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.fastrand]
version = "2"
[dev-dependencies.loom]
version = "0.7"
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.serial_test]
version = "3.4.0"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = [
"fmt",
"std",
]
[dev-dependencies.trybuild]
version = "1"
[lints.clippy]
assertions_on_constants = "deny"
cast_possible_truncation = "deny"
cast_sign_loss = "deny"
clone_on_ref_ptr = "warn"
dbg_macro = "deny"
disallowed_methods = "deny"
large_enum_variant = "warn"
missing_errors_doc = "warn"
module_name_repetitions = "allow"
must_use_candidate = "allow"
needless_pass_by_value = "warn"
panic = "deny"
print_stderr = "deny"
print_stdout = "deny"
todo = "deny"
unimplemented = "deny"
unwrap_used = "deny"
wildcard_enum_match_arm = "warn"
[lints.rust]
deprecated = "deny"
[profile.bench]
debug = 2
inherits = "release"
[profile.dev]
opt-level = 0
debug = 2
incremental = true
[profile.dev.package."*"]
opt-level = 2
[profile.release]
opt-level = 3
lto = "thin"
codegen-units = 16
strip = "symbols"
[profile.test]
opt-level = 1