# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.88"
name = "lazily"
version = "0.25.0"
build = false
exclude = ["signaling/"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Lazy reactive signals with dependency tracking and cache invalidation"
readme = "README.md"
keywords = [
    "reactive",
    "signals",
    "lazy",
    "dependency-tracking",
    "cache",
]
categories = ["data-structures"]
license = "MIT"
repository = "https://github.com/lazily-hub/lazily-rs"

[features]
async = [
    "dep:tokio",
    "dep:parking_lot",
]
default = ["smallvec"]
distributed = []
ffi = [
    "ipc",
    "dep:serde_json",
]
instrumentation = []
ipc = ["serde"]
ipc-binary = [
    "ipc",
    "dep:postcard",
]
ipc-msgpack = [
    "ipc",
    "dep:rmp-serde",
]
loom = ["thread-safe"]
lossless-tree = ["distributed"]
scale-bench = []
scale-compare = ["dep:leptos_reactive"]
serde = [
    "dep:serde",
    "smallvec?/serde",
]
shm = [
    "ipc",
    "dep:libc",
]
signaling-client = [
    "distributed",
    "serde",
    "dep:serde_json",
    "dep:tokio",
    "dep:tokio-tungstenite",
    "dep:futures-util",
]
statechart = []
statechart-json = ["dep:serde_json"]
std_sync_mutex = ["thread-safe"]
thread-safe = ["dep:parking_lot"]
tokio = ["dep:tokio"]
vec_edges = []
webrtc = [
    "ipc",
    "dep:serde_json",
    "dep:parking_lot",
]
webrtc-str0m = [
    "webrtc",
    "dep:str0m",
]
websocket = [
    "webrtc",
    "dep:tokio",
    "dep:tokio-tungstenite",
    "dep:futures-util",
]

[lib]
name = "lazily"
crate-type = [
    "lib",
    "cdylib",
]
path = "src/lib.rs"

[[example]]
name = "instrumentation_profile"
path = "examples/instrumentation_profile.rs"
required-features = [
    "instrumentation",
    "thread-safe",
]

[[example]]
name = "tokio_sync"
path = "examples/tokio_sync.rs"
required-features = ["tokio"]

[[example]]
name = "webrtc_live_e2e"
path = "examples/webrtc_live_e2e.rs"
required-features = [
    "signaling-client",
    "webrtc-str0m",
]

[[test]]
name = "async_integration"
path = "tests/async_integration.rs"

[[test]]
name = "async_resolve_loop"
path = "tests/async_resolve_loop.rs"

[[test]]
name = "async_state_machine"
path = "tests/async_state_machine.rs"

[[test]]
name = "async_stress"
path = "tests/async_stress.rs"

[[test]]
name = "collections_conformance"
path = "tests/collections_conformance.rs"

[[test]]
name = "command_conformance"
path = "tests/command_conformance.rs"

[[test]]
name = "conformance"
path = "tests/conformance.rs"

[[test]]
name = "crdt_plane"
path = "tests/crdt_plane.rs"

[[test]]
name = "decorator_factories"
path = "tests/decorator_factories.rs"

[[test]]
name = "ffi"
path = "tests/ffi.rs"

[[test]]
name = "integration"
path = "tests/integration.rs"

[[test]]
name = "ipc"
path = "tests/ipc.rs"

[[test]]
name = "lossless_tree_conformance"
path = "tests/lossless_tree_conformance.rs"

[[test]]
name = "lossless_tree_proptest"
path = "tests/lossless_tree_proptest.rs"

[[test]]
name = "lossless_tree_schema"
path = "tests/lossless_tree_schema.rs"

[[test]]
name = "property_graph"
path = "tests/property_graph.rs"

[[test]]
name = "queue_conformance"
path = "tests/queue_conformance.rs"

[[test]]
name = "schema_compliance"
path = "tests/schema_compliance.rs"

[[test]]
name = "seqcrdt_conformance"
path = "tests/seqcrdt_conformance.rs"

[[test]]
name = "signal"
path = "tests/signal.rs"

[[test]]
name = "spec_compliance"
path = "tests/spec_compliance.rs"

[[test]]
name = "state_machine"
path = "tests/state_machine.rs"

[[test]]
name = "statechart_conformance"
path = "tests/statechart_conformance.rs"

[[test]]
name = "str0m_net"
path = "tests/str0m_net.rs"

[[test]]
name = "thread_safe_loom"
path = "tests/thread_safe_loom.rs"

[[test]]
name = "thread_safe_state_machine"
path = "tests/thread_safe_state_machine.rs"

[[test]]
name = "thread_safe_stress"
path = "tests/thread_safe_stress.rs"

[[test]]
name = "tokio_sync"
path = "tests/tokio_sync.rs"

[[test]]
name = "webrtc_signaling"
path = "tests/webrtc_signaling.rs"

[[test]]
name = "webrtc_transport"
path = "tests/webrtc_transport.rs"

[[bench]]
name = "async_context"
path = "benches/async_context.rs"
harness = false
required-features = ["async"]

[[bench]]
name = "context"
path = "benches/context.rs"
harness = false

[[bench]]
name = "ipc_transport"
path = "benches/ipc_transport.rs"

[[bench]]
name = "profile"
path = "benches/profile.rs"
harness = false
required-features = ["instrumentation"]

[[bench]]
name = "scale"
path = "benches/scale.rs"
harness = false
required-features = ["scale-bench"]

[[bench]]
name = "scale_compare"
path = "benches/scale_compare.rs"
harness = false
required-features = ["scale-compare"]

[[bench]]
name = "tokio_sync"
path = "benches/tokio_sync.rs"
harness = false
required-features = ["tokio"]

[[bench]]
name = "webrtc_transport"
path = "benches/webrtc_transport.rs"
harness = false
required-features = ["webrtc"]

[dependencies.arc-swap]
version = "1"

[dependencies.futures-util]
version = "0.3"
features = [
    "sink",
    "std",
]
optional = true
default-features = false

[dependencies.lazily-macros]
version = "=0.22.0"

[dependencies.leptos_reactive]
version = "0.6"
optional = true

[dependencies.libc]
version = "0.2"
optional = true

[dependencies.parking_lot]
version = "0.12"
optional = true

[dependencies.postcard]
version = "1"
features = ["alloc"]
optional = true

[dependencies.rmp-serde]
version = "1"
optional = true

[dependencies.serde]
version = "1"
features = ["derive"]
optional = true

[dependencies.serde_json]
version = "1"
optional = true

[dependencies.smallvec]
version = "1"
optional = true

[dependencies.str0m]
version = "0.20"
optional = true

[dependencies.tokio]
version = "1"
features = [
    "macros",
    "rt-multi-thread",
    "sync",
    "time",
    "net",
    "io-util",
]
optional = true
default-features = false

[dependencies.tokio-tungstenite]
version = "0.24"
features = ["rustls-tls-webpki-roots"]
optional = true

[dev-dependencies.criterion]
version = "0.8"

[dev-dependencies.jsonschema]
version = "0.46.8"
default-features = false

[dev-dependencies.libc]
version = "0.2"

[dev-dependencies.loom]
version = "0.7"

[dev-dependencies.proptest]
version = "1"

[dev-dependencies.rmp-serde]
version = "1"

[dev-dependencies.serde_json]
version = "1"
