kovan-map 0.1.21

Lock-free concurrent hash maps using kovan memory reclamation
Documentation
[package]
name = "kovan-map"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
description = "Lock-free concurrent hash maps using kovan memory reclamation"
keywords = ["concurrency", "hashmap", "lock-free", "wait-free"]
categories = ["concurrency", "data-structures", "no-std"]
readme.workspace = true

[lib]
name = "kovan_map"
path = "src/lib.rs"

[features]
default = ["std"]
std = []
# See `kovan`'s `shuttle` feature doc. Cascades so `Atomic<T>` (the table and
# node pointers) is shuttle-instrumented; also swaps this crate's own
# `resizing` flag (see `hashmap.rs`), whose spin-wait would otherwise busy
# loop forever under shuttle's cooperative scheduler (no yield point inside
# it to let the resizing thread finish and clear the flag).
shuttle = ["kovan/shuttle", "dep:shuttle"]

[dependencies]
kovan = { workspace = true }
foldhash = { version = "0.2" }
shuttle = { version = "0.9.1", optional = true }

[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dev-dependencies]
wasm-bindgen-test = "0.3"

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
shuttle = "0.9.1"
proptest = "1.11"
# Proves both maps work with a BuildHasher other than the built-in one; tests
# and benches only, never a normal dependency (see the S: BuildHasher note on
# HopscotchMap and HashMap).
rapidhash = "4.5.1"

[[bench]]
name = "perf"
harness = false

[[bench]]
name = "hopscotch_ops"
harness = false

# Single-threaded adaptations of the tests/*.rs integration tests, kept
# under tests/wasm/ so they also run on 32-bit wasm (wasm32-wasip1 has no
# working std::thread::spawn). Cargo's autodiscovery only picks up
# top-level tests/*.rs files, not subdirectories, so each target below is
# registered explicitly. The tests/*.rs originals are untouched and remain
# the real concurrency coverage on native.
[[test]]
name = "wasm_force_remove_test"
path = "tests/wasm/force_remove_test.rs"

[[test]]
name = "wasm_get_or_insert_test"
path = "tests/wasm/get_or_insert_test.rs"

[[test]]
name = "wasm_hashmap_test"
path = "tests/wasm/hashmap_test.rs"

[[test]]
name = "wasm_hopscotch_test"
path = "tests/wasm/hopscotch_test.rs"

[[test]]
name = "wasm_iter_api_test"
path = "tests/wasm/iter_api_test.rs"

[[test]]
name = "wasm_resize_leak_probe"
path = "tests/wasm/resize_leak_probe.rs"

[[test]]
name = "wasm_stress_test"
path = "tests/wasm/stress_test.rs"

[[bench]]
name = "hopscotch"
harness = false