[package]
edition = "2021"
name = "prollytree"
version = "0.3.2"
authors = ["Feng Zhang <f.feng.zhang@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A prolly (probabilistic) tree for efficient storage, retrieval, and modification of ordered data."
documentation = "https://docs.rs/prollytree"
readme = "README.md"
keywords = [
"prolly",
"tree",
"probabilistic",
"hash",
]
categories = [
"data-structures",
"cryptography",
]
license = "Apache-2.0"
repository = "https://github.com/zhangfengcdt/prollytree.git"
[features]
default = [
"digest_base64",
"prolly_balance_max_nodes",
"git",
"sql",
]
digest_base64 = ["dep:base64"]
git = [
"dep:gix",
"dep:clap",
"dep:lru",
"dep:hex",
"dep:chrono",
"dep:uuid",
]
prolly_balance_max_nodes = []
prolly_balance_rolling_hash = []
python = ["dep:pyo3"]
rocksdb_storage = [
"dep:rocksdb",
"dep:lru",
]
sql = [
"dep:gluesql-core",
"dep:async-trait",
"dep:uuid",
"dep:futures",
"dep:tokio",
]
tracing = ["dep:tracing"]
[lib]
name = "prollytree"
crate-type = [
"cdylib",
"rlib",
]
path = "src/lib.rs"
[[bin]]
name = "git-prolly"
path = "src/git/git-prolly.rs"
required-features = [
"git",
"sql",
]
[[bin]]
name = "prolly-ui"
path = "src/bin/prolly-ui.rs"
required-features = ["git"]
[[example]]
name = "proof"
path = "examples/proof.rs"
[[example]]
name = "sql"
path = "examples/sql.rs"
required-features = ["sql"]
[[example]]
name = "storage"
path = "examples/storage.rs"
required-features = ["rocksdb_storage"]
[[example]]
name = "versioning"
path = "examples/versioning.rs"
[[example]]
name = "worktree"
path = "examples/worktree.rs"
required-features = [
"git",
"sql",
]
[[test]]
name = "cli_commands"
path = "tests/cli_commands.rs"
[[test]]
name = "conflict_resolvers"
path = "tests/conflict_resolvers.rs"
[[test]]
name = "error_recovery"
path = "tests/error_recovery.rs"
[[test]]
name = "git_versioning_lifecycle"
path = "tests/git_versioning_lifecycle.rs"
[[test]]
name = "scale_and_stress"
path = "tests/scale_and_stress.rs"
[[test]]
name = "sql_integration"
path = "tests/sql_integration.rs"
[[test]]
name = "storage_backends"
path = "tests/storage_backends.rs"
[[test]]
name = "store_factory"
path = "tests/store_factory.rs"
[[test]]
name = "versioned_store_cross_backend"
path = "tests/versioned_store_cross_backend.rs"
[[test]]
name = "worktree_integration"
path = "tests/worktree_integration.rs"
[[bench]]
name = "git"
path = "benches/git.rs"
harness = false
required-features = [
"git",
"sql",
]
[[bench]]
name = "sql"
path = "benches/sql.rs"
harness = false
required-features = ["sql"]
[[bench]]
name = "storage"
path = "benches/storage.rs"
harness = false
[[bench]]
name = "tree"
path = "benches/tree.rs"
harness = false
[dependencies.arrow]
version = "54.2.1"
[dependencies.async-trait]
version = "0.1"
optional = true
[dependencies.base64]
version = "0.22.0"
optional = true
[dependencies.bincode]
version = "1.3.3"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
optional = true
[dependencies.clap]
version = "4.0"
features = ["derive"]
optional = true
[dependencies.futures]
version = "0.3"
optional = true
[dependencies.gix]
version = "0.66"
features = ["blocking-network-client"]
optional = true
[dependencies.gluesql-core]
version = "0.19"
optional = true
[dependencies.hex]
version = "0.4"
optional = true
[dependencies.lru]
version = "0.16"
optional = true
[dependencies.parking_lot]
version = "0.12"
[dependencies.parquet]
version = "54.0.0"
features = ["arrow"]
[dependencies.pyo3]
version = "0.22"
features = [
"extension-module",
"abi3-py38",
]
optional = true
[dependencies.rand]
version = "0.9.0"
[dependencies.rocksdb]
version = "0.22"
optional = true
[dependencies.schemars]
version = "0.8"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.117"
[dependencies.sha2]
version = "0.10"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.0"
features = [
"rt-multi-thread",
"macros",
"sync",
]
optional = true
[dependencies.tracing]
version = "0.1.37"
optional = true
[dependencies.twox-hash]
version = "2.0"
[dependencies.uuid]
version = "1.0"
features = ["v4"]
optional = true
[dev-dependencies.assert_cmd]
version = "2.0"
[dev-dependencies.bytes]
version = "1.10.1"
[dev-dependencies.criterion]
version = "0.5"
[dev-dependencies.predicates]
version = "3.0"
[dev-dependencies.tempfile]
version = "3.0"
[dev-dependencies.tokio]
version = "1.0"
features = ["full"]
[dev-dependencies.tracing]
version = "0.1.37"
[dev-dependencies.tracing-subscriber]
version = "0.3.17"
features = ["env-filter"]