[package]
name = "cranpose-core"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
authors.workspace = true
keywords.workspace = true
categories.workspace = true
readme = "README.md"
description = "Composition runtime and reactive state for Cranpose"
autotests = false
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[lints]
workspace = true
[dependencies]
futures-task = "0.3"
foldhash = "0.2.0"
hashbrown = { version = "0.17", default-features = false, features = ["inline-more"] }
smallvec = "1.16.2"
log = "0.4"
pollster = "0.4.0"
web-time = { workspace = true }
thiserror = "2.0.21"
[features]
default = []
hot-reload = []
std-hash = []
internal = []
inspection = []
test-helpers = []
[dev-dependencies]
cranpose-macros = { path = "../cranpose-macros" }
stats_alloc = "0.1.10"
[target.'cfg(target_vendor = "apple")'.dependencies]
dispatch2 = "0.3"
[target.'cfg(target_arch = "wasm32")'.dependencies]
wasm-bindgen = "0.2"
wasm-bindgen-futures = "0.4"
web-sys = { version = "0.3", features = ["Window"] }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
event-listener = "5.4.2"
[[test]]
name = "integration"
path = "tests/integration.rs"
[[bench]]
name = "observation_cleanup"
harness = false
[[bench]]
name = "recompose_sibling_cursor"
harness = false
[[bench]]
name = "keyed_front_inserts"
harness = false
[[bench]]
name = "blocking"
harness = false
[[bench]]
name = "blocking_allocations"
harness = false
[[bench]]
name = "group_cost"
harness = false
[[bench]]
name = "child_sync"
harness = false
[[bench]]
name = "dirty_bubble"
harness = false