salsa/Cargo.toml
2025-05-06 19:03:50 +00:00

97 lines
2.6 KiB
TOML

[package]
name = "salsa"
version = "0.21.1"
authors.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
description = "A generic framework for on-demand, incrementalized computation (experimental)"
[dependencies]
salsa-macro-rules = { version = "0.21.1", path = "components/salsa-macro-rules" }
salsa-macros = { version = "0.21.1", path = "components/salsa-macros", optional = true }
boxcar = "0.2.11"
crossbeam-queue = "0.3.11"
dashmap = { version = "6", features = ["raw-api"] }
hashbrown = "0.15"
hashlink = "0.10"
indexmap = "2"
parking_lot = "0.12"
portable-atomic = "1"
rustc-hash = "2"
smallvec = "1"
tracing = { version = "0.1", default-features = false, features = ["std"] }
# parallel map
rayon = { version = "1.10.0", optional = true }
# Stuff we want Update impls for by default
compact_str = { version = "0.9", optional = true }
thin-vec = "0.2.13"
loom = { version = "0.7.2", optional = true }
[features]
default = ["salsa_unstable", "rayon", "macros"]
# FIXME: remove `salsa_unstable` before 1.0.
salsa_unstable = []
loom = ["dep:loom"]
macros = ["dep:salsa-macros"]
# This interlocks the `salsa-macros` and `salsa` versions together
# preventing scenarios where they could diverge in a given project
# which may ultimately result in odd issues due to the proc-macro
# output mismatching with the declarative macro inputs
[target.'cfg(any())'.dependencies]
salsa-macros = { version = "=0.21.1", path = "components/salsa-macros" }
[dev-dependencies]
# examples
crossbeam-channel = "0.5.14"
eyre = "0.6.8"
notify-debouncer-mini = "0.4.1"
ordered-float = "4.2.1"
# tests/benches
annotate-snippets = "0.11.5"
codspeed-criterion-compat = { version = "2.6.0", default-features = false }
expect-test = "1.5.0"
rustversion = "1.0"
test-log = { version = "0.2.11", features = ["trace"] }
trybuild = "1.0"
# not directly used, but 2.5.0 bumped the MSRV beyond 1.80 so pin it temporarily
half = "=2.4.1"
[target.'cfg(all(not(target_os = "windows"), not(target_os = "openbsd"), any(target_arch = "x86_64", target_arch = "aarch64", target_arch = "powerpc64")))'.dev-dependencies]
tikv-jemallocator = "0.6.0"
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(loom)'] }
[[bench]]
name = "compare"
harness = false
[[bench]]
name = "incremental"
harness = false
[[bench]]
name = "accumulator"
harness = false
[[bench]]
name = "dataflow"
harness = false
[workspace]
members = ["components/salsa-macro-rules", "components/salsa-macros"]
[workspace.package]
authors = ["Salsa developers"]
edition = "2021"
license = "Apache-2.0 OR MIT"
repository = "https://github.com/salsa-rs/salsa"
rust-version = "1.80"