[package]
name = "parcode"
version = "0.6.1"
edition = "2024"
authors = ["RetypeOS"]
description = "A high-performance, lazy load and parallelized caching library for complex Rust data structures."
repository = "https://github.com/retypeos/parcode"
readme = "README.md"
keywords = ["parallel", "performance", "storage", "sharding", "lazy"]
categories = ["concurrency", "filesystem", "data-structures"]
license = "MIT"
exclude = [
"tests/*",
"benches/*",
"examples/*",
".github/*",
"assets/*",
".axes/*",
]
[dependencies]
parcode-derive = { version = "0.4" }
bincode = { version = "2.0", features = ["serde"] }
serde = { version = "1.0", features = ["derive", "rc"] }
twox-hash = "2.1"
rayon = { version = "1.11", optional = true }
memmap2 = { version = "0.9", optional = true }
lz4_flex = { version = "0.12", optional = true }
[features]
default = ["parallel", "mmap"]
parallel = ["dep:rayon"]
mmap = ["dep:memmap2"]
lz4_flex = ["dep:lz4_flex"]
[dev-dependencies]
tempfile = "3.24"
criterion = "0.8"
serde_bytes = "0.11"
[[bench]]
name = "performance"
harness = false
required-features = []
doc = false
[[bench]]
name = "lazy_bench"
harness = false
required-features = []
doc = false
[[bench]]
name = "map_access"
harness = false
required-features = []
doc = false
[lints]
rust.keyword_idents_2024 = "forbid"
rust.non_ascii_idents = "forbid"
rust.unsafe_op_in_unsafe_fn = "forbid"
rust.unsafe_code = "deny"
rust.elided_lifetimes_in_paths = "warn"
rust.missing_debug_implementations = "warn"
rust.missing_docs = "warn"
rust.trivial_numeric_casts = "warn"
rust.unreachable_pub = "warn"
rust.unused_import_braces = "warn"
[lints.clippy]
panic = "deny"
unwrap_used = "deny"
cast_possible_truncation = "deny"
cast_sign_loss = "deny"
indexing_slicing = "warn"
cargo_common_metadata = "warn"
dbg_macro = "warn"
doc_markdown = "warn"
semicolon_if_nothing_returned = "warn"
todo = "warn"
use_self = "warn"
unnecessary_wraps = "warn"
pedantic = { level = "allow", priority = -1 }
nursery = { level = "allow", priority = -1 }
restriction = { level = "allow", priority = -1 }
too_many_arguments = "allow"
module_name_repetitions = "allow"