polydat 0.1.0

Polydat — generation kernel for deterministic variate generation in nb-rs (formerly nbrs-variates)
Documentation
[package]
name = "polydat"
# Polydat is published independently of the nbrs workspace —
# its release cadence isn't tied to the workspace's version bump.
# Override `version.workspace = true` with a local pin so polydat
# can rev (e.g., 0.1.1, 0.2.0) without dragging the workspace.
version = "0.1.0"
edition.workspace = true
license.workspace = true
description = "Polydat — generation kernel for deterministic variate generation in nb-rs (formerly nbrs-variates)"
keywords = ["nosqlbench", "workload", "benchmark", "data-generation"]
categories = ["command-line-utilities", "simulation"]
repository.workspace = true
homepage.workspace = true
documentation = "https://docs.rs/polydat"
# Local override — `readme.workspace = true` resolves to the
# workspace-root README, not polydat's own. The README that ships
# in the crates.io package needs to be the polydat-specific one.
readme = "README.md"

# Exclude bench-output artifacts and large perf-test fixtures from
# the published package. The benches themselves (`benches/`) stay —
# they're part of the public surface — but their generated graphs
# under `tests/bench_graphs/` and the per-test perf fixtures under
# `tests/perf_tests/` are noise for downstream consumers.
exclude = [
    "tests/bench_graphs/**",
    "tests/perf_tests/**",
]

[dependencies]
xxhash-rust = { version = "0.8", features = ["xxh3"] }
sha2 = "0.10"
md-5 = "0.10"
base64 = "0.22"
data-encoding = "2"
regex = "1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
petgraph = "0.8"
layout-rs = "0.1"
vectordata = { version = "1.1.4", optional = true }
cranelift-jit = { version = "0.116", optional = true }
cranelift-module = { version = "0.116", optional = true }
cranelift-codegen = { version = "0.116", optional = true }
cranelift-frontend = { version = "0.116", optional = true }
target-lexicon = { version = "0.13", optional = true }
inventory = "0.3.24"
# Needed for runtime-context nodes' task-local FiberContext
# (`task_local!` lives in `rt`) and for `block_in_place` at the
# vectordata catalog bridge (`rt-multi-thread`).
tokio = { version = "1", features = ["rt", "rt-multi-thread", "macros"] }
# Insertion-ordered map. Used by `kernel::ScopeCoord` so the
# coordinate names within a scope appear in clause-declaration
# order — matching the comprehension's source-level intent
# (and the IndexMap usage in nbrs-activity for the same
# reason). See `kernel::scope_coords` doc.
indexmap = "2"

[features]
default = ["jit", "vectordata"]
vectordata = ["dep:vectordata"]
jit = ["dep:cranelift-jit", "dep:cranelift-module", "dep:cranelift-codegen", "dep:cranelift-frontend", "dep:target-lexicon"]

[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }

[[bench]]
name = "gk_throughput"
harness = false