[package]
name = "pathmap"
version = "0.2.0-alpha0"
edition = "2024"
rust-version = "1.88"
license = "MIT"
description = "A key-value store with prefix compression, structural sharing, and powerful algebraic operations"
repository = "https://github.com/adam-Vandervorst/pathMap/"
keywords = ["trie", "MORK", "path", "algebra"]
categories = ["algorithms", "data-structures", "database-implementations"]
readme = "README.md"
exclude = ["target/", "benches/", "pathmap-book/", ".*"]
[lib]
name = "pathmap"
path = "src/lib.rs"
[dependencies]
pathmap-derive = { version = "0.2.0-alpha0" }
maybe-dangling = "0.1.1"
dyn-clone = "1.0.17"
local-or-heap = "0.1.0"
reusing-vec = {version = "0.2.0", features = ["smallvec"]}
smallvec = {version = "1.13.2", features = ["union"]}
arrayvec = "0.7.6"
num-traits = "0.2"
tikv-jemallocator = {version = "0.6.0", optional = true}
libz-ng-sys = {version = "1", optional = true }
rand_distr = { version = "0.5.1", optional = true }
rand = { version = "0.9.0", optional = true }
memmap2 = { version="0.9.5", optional = true }
fast-slice-utils = "0.1.0"
[features]
default = ["graft_root_vals", "slim_ptrs", "serialization"]
nightly = ["fast-slice-utils/nightly"]
jemalloc = ["dep:tikv-jemallocator"]
zipper_tracking = []
all_dense_nodes = []
arena_compact = ["dep:memmap2"]
bridge_nodes = []
old_cursor = []
fuzzer = ["dep:rand", "dep:rand_distr"]
counters = []
graft_root_vals = []
slim_ptrs = []
slim_dispatch = []
act_counters = ["arena_compact"]
viz = []
serialization = ["dep:libz-ng-sys"]
[target.'cfg(not(any(miri,target_arch="riscv64")))'.dependencies]
gxhash = {version="3.5"}
[target.'cfg(any(miri,target_arch="riscv64"))'.dependencies]
xxhash-rust = { version = "0.8.15", features = ["xxh64", "xxh3", "const_xxh3"] }
[dev-dependencies]
paste = "1.0"
divan = "0.1.14"
serde = { version = "1.0.163", features = ["derive"]}
csv = "1.1.6"
num = "0.4.3"
rand_distr = { version = "0.5.1" }
rand = { version = "0.9.0" }
tempfile = "3.19.1"
pasture-core = "0.5.0"
pasture-io = "0.5.0"
[[bench]]
name = "superdense_keys"
harness = false
[[bench]]
name = "sparse_keys"
harness = false
[[bench]]
name = "binary_keys"
harness = false
[[bench]]
name = "cities"
harness = false
[[bench]]
name = "shakespeare"
harness = false
[[bench]]
name = "parallel"
harness = false
[[bench]]
name = "serde"
harness = false
[[bench]]
name = "oeis"
harness = false
[[bench]]
name = "pointcloud"
harness = false
[[bench]]
name = "product_zipper"
harness = false
[workspace]
members = ["pathmap-derive"]
resolver = "2"