cranpose-core 0.9.21

Composition runtime and reactive state for Cranpose
Documentation
[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 = []
# Development builds that hot-patch code: call-site and definition keys ignore
# line and column positions. Never enable in release builds.
hot-reload = []
std-hash = []
internal = []
inspection = []
# The workspace's one answer to where a test writes real files.
test-helpers = []

[dev-dependencies]
# Path-only dev-dep: stripped from the published manifest (publish order ignores dev edges).
cranpose-macros = { path = "../cranpose-macros" }
stats_alloc = "0.1.10"

[target.'cfg(target_vendor = "apple")'.dependencies]
# `delay` hands its deadline to GCD's user-interactive queue: a sleeping thread
# at the default quality of service wakes milliseconds late on macOS.
dispatch2 = "0.3"

[target.'cfg(target_arch = "wasm32")'.dependencies]
wasm-bindgen = "0.2"
wasm-bindgen-futures = "0.4"
# `delay` hands its deadline to the browser's own timer rather than spinning a
# frame loop, so an idle wait costs nothing.
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