[package]
name = "durability"
version = "0.6.7"
edition = "2021"
rust-version = "1.80"
license = "MIT OR Apache-2.0"
authors = ["Arc <attobop@gmail.com>"]
description = "Crash-consistent persistence primitives: directory abstraction, generic WAL, checkpoints, and recovery."
repository = "https://github.com/arclabs561/durability"
homepage = "https://github.com/arclabs561/durability"
documentation = "https://docs.rs/durability"
publish = true
readme = "README.md"
keywords = ["persistence", "wal", "checkpoint", "write-ahead-log", "recovery"]
categories = ["filesystem", "database-implementations"]

[workspace]

[dependencies]
serde = { version = "1.0.228", features = ["derive"] }
thiserror = "2"

crc32fast = "1.4"
postcard = { version = "1.0", features = ["alloc", "use-std"] }

tokio = { version = "1", features = ["rt", "fs", "macros"], optional = true }
memmap2 = { version = "0.9", optional = true }
libc = { version = "0.2", optional = true }

[features]
default = []
async = ["dep:tokio"]
mmap = ["dep:memmap2", "dep:libc"]

[dev-dependencies]
tempfile = "3.24.0"
proptest = "1.9.0"
criterion = { version = "0.5.1", features = ["html_reports"] }

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

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

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

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