[package] name = "idr-ebr" version = "0.3.0" edition = "2021" authors = ["Paul Loyd "] readme = "README.md" license = "MIT" keywords = ["idr", "ebr", "slab", "lock-free", "wait-free"] categories = ["data-structures", "concurrency"] description = "An efficient concurrent ID to object resolver" documentation = "https://docs.rs/idr-ebr/" homepage = "https://github.com/loyd/idr-ebr" repository = "https://github.com/loyd/idr-ebr" rust-version = "1.76.0" # update CI if changed [lints.rust] rust_2018_idioms = { level = "warn", priority = -1 } unreachable_pub = "warn" missing_docs = "warn" missing_debug_implementations = "warn" unexpected_cfgs = "allow" # for `loom` [lints.clippy] undocumented_unsafe_blocks = "warn" pedantic = { level = "warn", priority = -1 } doc_markdown = "allow" # false positive inline_always = "allow" module_name_repetitions = "allow" missing_panics_doc = "allow" cast_possible_truncation = "allow" similar_names = "allow" items_after_statements = "allow" [[bench]] name = "contention" harness = false [features] # Use the feature and cfg at the same time to avoid affecting `Cargo.lock`, # see https://github.com/crossbeam-rs/crossbeam/pull/666 for details. # # This configuration option is outside of the normal semver guarantees: # minor versions of idr-ebr may make breaking changes to it at any time. loom = ["dep:loom"] [dependencies] sdd = "2" fastrand = "2" [target.'cfg(idr_ebr_loom)'.dependencies] loom = { version = "0.7", features = ["checkpoint"], optional = true } [dev-dependencies] criterion = "0.5.1" mimalloc = { version = "0.1.29", default_features = false } trybuild = "1" proptest = "1" indexmap = "2" tracing = "0.1.40" sharded-slab = "0.1.7" # for benchmarking [profile.release] debug = 1