[package] name = "ledger-store" version = "0.1.0" edition.workspace = true license.workspace = true repository.workspace = true description = "Durable persistence for wanderbooks: a hash-chained JSONL journal as the source of truth, content-addressed blob store, and a disposable SQLite projection." [dependencies] ledger-core = { path = "../ledger-core" } # The one reader (plan P6 step 1, D-53, D-61: its own crate): the writer journals a file's # text at attach time and on `wanderbooks books extract`, so the extractor # must be callable here rather than only from the server. It is pure and # deterministic (no I/O, no network, no time source). ledger-reader = { path = "../ledger-reader" } rusqlite = { version = "0.32", features = ["bundled"] } serde = { version = "1", features = ["derive"] } serde_json = "1" chrono = "0.4" rust_decimal = "1" thiserror = "2" sha2 = "0.10" hex = "0.4" getrandom = { version = "0.2", features = ["std"] } subtle = "2" argon2 = "0.6" [target.'cfg(unix)'.dependencies] libc = "0.2" # Owner-only DACLs, the account's SID, the known-folder API and # MoveFileExW (P11c, D-62). The raw bindings, no runtime: the smallest # Microsoft crate that covers them, already in the lockfile. [target.'cfg(windows)'.dependencies] windows-sys = { version = "0.61", features = [ "Win32_Foundation", "Win32_Security", "Win32_Security_Authorization", "Win32_Storage_FileSystem", "Win32_System_Com", "Win32_System_Pipes", "Win32_System_SystemServices", "Win32_System_Threading", "Win32_UI_Shell", ] } [dev-dependencies] tempfile = "3" proptest = "1" rust_decimal = "1" criterion = "0.8.2" [target.'cfg(unix)'.dev-dependencies] libc = "0.2" [[bench]] name = "store" harness = false [lints] workspace = true