[package]
edition = "2024"
rust-version = "1.85"
name = "pagedb"
version = "0.1.0-beta.6"
authors = ["Farhan Syah"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Encrypted, portable, embedded page store with B+ tree and segment-file surfaces."
homepage = "https://github.com/nodedb-lab/pagedb"
documentation = "https://docs.rs/pagedb"
readme = "README.md"
keywords = [
"database",
"encryption",
"storage",
"btree",
"embedded",
]
categories = [
"database-implementations",
"cryptography",
"embedded",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/nodedb-lab/pagedb"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
compression = ["dep:lz4_flex"]
default = ["diagnostics"]
diagnostics = ["dep:faultbox"]
opfs = [
"dep:wasm-bindgen",
"dep:wasm-bindgen-futures",
"dep:js-sys",
"dep:web-sys",
"dep:serde",
"dep:serde-wasm-bindgen",
"dep:send_wrapper",
"dep:futures",
]
[lib]
name = "pagedb"
path = "src/lib.rs"
bench = false
[[bin]]
name = "pagedb-fsck"
path = "src/bin/pagedb-fsck/main.rs"
bench = false
[[test]]
name = "catalog_basic"
path = "tests/catalog_basic.rs"
[[test]]
name = "cipher_realm_binding"
path = "tests/cipher_realm_binding.rs"
[[test]]
name = "cipher_rotation"
path = "tests/cipher_rotation.rs"
[[test]]
name = "commit_history"
path = "tests/commit_history.rs"
[[test]]
name = "compaction_basic"
path = "tests/compaction_basic.rs"
[[test]]
name = "compaction_incremental"
path = "tests/compaction_incremental.rs"
[[test]]
name = "concurrency_stress"
path = "tests/concurrency_stress.rs"
[[test]]
name = "counter_monotonicity"
path = "tests/counter_monotonicity.rs"
[[test]]
name = "counters"
path = "tests/counters.rs"
[[test]]
name = "crash_basic"
path = "tests/crash_basic.rs"
[[test]]
name = "crash_boundaries"
path = "tests/crash_boundaries.rs"
[[test]]
name = "deferred_free_reclaim"
path = "tests/deferred_free_reclaim.rs"
[[test]]
name = "durability"
path = "tests/durability.rs"
[[test]]
name = "faultbox_wiring"
path = "tests/faultbox_wiring.rs"
[[test]]
name = "fsck_cli"
path = "tests/fsck_cli.rs"
[[test]]
name = "fsck_deep"
path = "tests/fsck_deep.rs"
[[test]]
name = "handle_modes"
path = "tests/handle_modes.rs"
[[test]]
name = "large_transaction"
path = "tests/large_transaction.rs"
[[test]]
name = "live_page_free_repro"
path = "tests/live_page_free_repro.rs"
[[test]]
name = "mmap_view"
path = "tests/mmap_view.rs"
[[test]]
name = "open_parameter_mismatch"
path = "tests/open_parameter_mismatch.rs"
[[test]]
name = "overflow_refcount"
path = "tests/overflow_refcount.rs"
[[test]]
name = "page_size_range"
path = "tests/page_size_range.rs"
[[test]]
name = "quota_enforce"
path = "tests/quota_enforce.rs"
[[test]]
name = "reader_stall_policy"
path = "tests/reader_stall_policy.rs"
[[test]]
name = "recovery_basic"
path = "tests/recovery_basic.rs"
[[test]]
name = "scale_integrity_repro"
path = "tests/scale_integrity_repro.rs"
[[test]]
name = "segment_basic"
path = "tests/segment_basic.rs"
[[test]]
name = "segment_manifest_index"
path = "tests/segment_manifest_index.rs"
[[test]]
name = "smoke"
path = "tests/smoke.rs"
[[test]]
name = "spill_basic"
path = "tests/spill_basic.rs"
[[test]]
name = "stats_basic"
path = "tests/stats_basic.rs"
[[test]]
name = "structural_repro"
path = "tests/structural_repro.rs"
[[test]]
name = "txn_basic"
path = "tests/txn_basic.rs"
[[test]]
name = "vfs_default"
path = "tests/vfs_default.rs"
[[test]]
name = "vfs_gcd"
path = "tests/vfs_gcd.rs"
[[test]]
name = "vfs_iocp"
path = "tests/vfs_iocp.rs"
[[test]]
name = "vfs_iouring"
path = "tests/vfs_iouring.rs"
[[test]]
name = "vfs_memory"
path = "tests/vfs_memory.rs"
[[test]]
name = "vfs_tokio"
path = "tests/vfs_tokio.rs"
[[bench]]
name = "authenticated_node_read"
path = "benches/authenticated_node_read.rs"
test = false
harness = false
[[bench]]
name = "compaction"
path = "benches/compaction.rs"
test = false
harness = false
[[bench]]
name = "read_path"
path = "benches/read_path.rs"
test = false
harness = false
[[bench]]
name = "segment"
path = "benches/segment.rs"
test = false
harness = false
[[bench]]
name = "write_path"
path = "benches/write_path.rs"
test = false
harness = false
[dependencies.aes-gcm]
version = "0.10"
[dependencies.bytes]
version = "1"
[dependencies.chacha20poly1305]
version = "0.10"
[dependencies.faultbox]
version = "0.1.0"
optional = true
[dependencies.getrandom]
version = "0.2"
features = [
"js",
"std",
]
[dependencies.hkdf]
version = "0.12"
[dependencies.hmac]
version = "0.12"
[dependencies.parking_lot]
version = "0.12"
[dependencies.rayon]
version = "1"
[dependencies.rustc-hash]
version = "2"
[dependencies.sha2]
version = "0.10"
[dependencies.subtle]
version = "2.6"
[dependencies.thiserror]
version = "2"
[dependencies.tracing]
version = "0.1"
[dependencies.zeroize]
version = "1.8"
features = ["zeroize_derive"]
[dev-dependencies.aes-gcm]
version = "0.10"
[dev-dependencies.fluxbench]
version = "0.1"
[dev-dependencies.proptest]
version = "1.11"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = [
"rt",
"rt-multi-thread",
"macros",
"test-util",
]
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"fmt",
]
[target.'cfg(any(target_os = "linux", all(target_os = "android", not(target_arch = "arm"))))'.dependencies.io-uring]
version = "0.7"
[target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies.block2]
version = "0.6"
[target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies.dispatch2]
version = "0.3"
[target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies.libc]
version = "0.2"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.lz4_flex]
version = "0.13"
features = [
"safe-encode",
"safe-decode",
]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.memmap2]
version = "0.9"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tempfile]
version = "3"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio]
version = "1"
features = [
"rt",
"rt-multi-thread",
"macros",
"sync",
"io-util",
"fs",
"time",
]
[target.'cfg(target_arch = "wasm32")'.dependencies.futures]
version = "0.3"
features = ["alloc"]
optional = true
default-features = false
[target.'cfg(target_arch = "wasm32")'.dependencies.js-sys]
version = "0.3"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.send_wrapper]
version = "0.6"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.serde]
version = "1"
features = ["derive"]
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.serde-wasm-bindgen]
version = "0.6"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.tokio]
version = "1"
features = [
"rt",
"macros",
"sync",
"io-util",
"time",
]
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "0.2"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen-futures]
version = "0.4"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
version = "0.3"
features = [
"FileSystemDirectoryHandle",
"FileSystemFileHandle",
"FileSystemSyncAccessHandle",
"FileSystemGetFileOptions",
"FileSystemRemoveOptions",
"StorageManager",
"Navigator",
"Worker",
"WorkerOptions",
"WorkerType",
"MessageEvent",
"ErrorEvent",
]
optional = true
[target."cfg(unix)".dependencies.libc]
version = "0.2"
[target."cfg(windows)".dependencies.windows-sys]
version = "0.61"
features = [
"Win32_Foundation",
"Win32_Storage_FileSystem",
"Win32_System_IO",
"Win32_System_Threading",
]
[profile.release]
lto = "thin"
codegen-units = 1