nmbrs-workload 0.4.0

Uniform workload specification parsing and processing for nmbrs
Documentation
[package]
name = "nmbrs-workload"
version.workspace = true
edition.workspace = true
license.workspace = true
description = "Uniform workload specification parsing and processing for nmbrs"
keywords = ["nosqlbench", "workload", "benchmark", "data-generation"]
categories = ["command-line-utilities", "simulation"]
repository.workspace = true
homepage.workspace = true
readme = "README.md"

[dependencies]
serde = { version = "1", features = ["derive"] }
serde_yaml = "0.9"
serde_json = { version = "1", features = ["preserve_order"] }
regex = "1"
# `polydat::comprehension` owns the formal `Comprehension`
# AST + parser. `nmbrs-workload`'s YAML parser delegates clause
# parsing here so the comprehension shape has a single source
# of truth across the workspace. (Crosses the historical
# "nmbrs-workload is standalone" boundary from SRD-01 — see
# `docs/SRD/history/50_comprehensions_first_class.md`.)
polydat = "0.6.2"

# SRD-64 §6.4–§6.5: AST-preserving workload edit primitive.
#
# - tree-sitter + tree-sitter-yaml: parse the source YAML to
#   a CST whose nodes carry byte ranges, so we can locate the
#   target subtree without throwing away comments / whitespace
#   / quote styles in the rest of the file.
# - marked-yaml: emit new structural blocks (e.g. inserting a
#   `report:` mapping where none existed) when we need to
#   produce well-formed YAML that the splicer drops in.
# - fs4: cross-platform cooperative file locks that serialise
#   concurrent `nmbrs report --add` writers against the same
#   workload file.
tree-sitter = "0.25"
tree-sitter-yaml = "0.7"
marked-yaml = "0.8"
fs4 = "0.13"