[package]
name = "rust-key-paths"
version = "3.0.2"
edition = "2024"
authors = ["Codefonsi <info@codefonsi.com>"]
license = "MPL-2.0"
description = "Keypaths for Rust: Static dispatch implementation (rust-keypaths) and legacy dynamic dispatch (key-paths-core). Type-safe, composable access to nested data structures."
repository = "https://github.com/codefonsi/rust-key-paths"
homepage = "https://github.com/codefonsi/rust-key-paths"
documentation = "https://docs.rs/rust-key-paths"
keywords = ["keypaths", "EnumKeyPath", "type-safe", "WritableKeyPath", "ReadableKeyPath"]
readme = "./README.md"
include = ["src/**/*", "Cargo.toml", "README.md", "LICENSE"]
[dependencies]
async-trait = "0.1"
pin-project = { version = "1.1", optional = true }
tokio = { version = "1.38.0", features = ["sync", "rt", "rt-multi-thread", "macros", "time"], optional = true }
parking_lot = { version = "0.12", optional = true }
arc-swap = { version = "1.9.1", optional = true }
[workspace]
resolver = "3"
members = [
"key-paths-derive",
"key-paths-iter",
]
[patch.crates-io]
rust-key-paths = { path = "." }
[features]
default = []
parking_lot = ["dep:parking_lot"]
pin_project = ["dep:pin-project"]
tagged_core = ["tagged-core/default"]
tokio = ["dep:tokio"]
arc-swap = ["dep:arc-swap"]
[dev-dependencies]
tagged-core = "1.0.3"
pin-project = "1.1"
key-paths-derive = { path = "key-paths-derive" }
criterion = { version = "0.5", features = ["html_reports"] }
[[bench]]
name = "box_keypath_bench"
harness = false
[[bench]]
name = "arcswap_keypath_bench"
harness = false
required-features = ["arc-swap"]