nickel-lang-core 0.9.1

Programmable configuration files.
Documentation
[package]
name = "nickel-lang-core"
version = "0.9.1"
description = "Programmable configuration files."
authors.workspace = true
edition.workspace = true
homepage.workspace = true
keywords.workspace = true
license.workspace = true
repository.workspace = true
readme.workspace = true
# Maybe we should have the nix bindings in a separate -sys crate. maybe we
# should even have separate crates for "nix-store", "nix-cmd", "nix-expr", "nix-
# main", since they're separate libraries, but that seems a bit over the top.
# SEE: https://kornel.ski/rust-sys-crate
links = "nix"

[lib]
bench = false

[features]
default = ["markdown", "repl", "doc", "format", "spanned-deser"]
markdown = ["dep:termimad"]
repl = ["dep:rustyline", "dep:rustyline-derive", "dep:ansi_term"]
repl-wasm = ["dep:wasm-bindgen", "dep:js-sys", "dep:serde_repr"]
doc = ["dep:comrak"]
format = ["dep:topiary-core", "dep:topiary-queries", "dep:tree-sitter-nickel"]
metrics = ["dep:metrics"]
nix-experimental = [ "dep:cxx", "dep:cxx-build", "dep:pkg-config" ]
spanned-deser = ["dep:serde-untagged"]

[build-dependencies]
lalrpop.workspace = true
cxx-build = { workspace = true, optional = true }
pkg-config = { workspace = true, optional = true }

[dependencies]
lalrpop-util.workspace = true
regex.workspace = true
simple-counter.workspace = true
clap = { workspace = true, features = ["derive"] }
codespan.workspace = true
codespan-reporting.workspace = true
cxx = { workspace = true, optional = true }
logos.workspace = true
serde = { workspace = true, features = ["derive"] }
serde_json.workspace = true
serde_yaml.workspace = true
serde-untagged = { workspace = true, optional = true }
toml = { workspace = true, features = ["parse"] }
void.workspace = true
sha-1.workspace = true
sha2.workspace = true
md-5.workspace = true
unicode-segmentation.workspace = true
indoc.workspace = true

termimad = { workspace = true, optional = true }
ansi_term = { workspace = true, optional = true }

rustyline = { workspace = true, optional = true}
rustyline-derive = { workspace = true, optional = true }

wasm-bindgen = { workspace = true, optional = true, features = ["serde-serialize"] }
serde-wasm-bindgen.workspace = true
js-sys = { workspace = true, optional = true }
serde_repr = { workspace = true, optional = true }
pretty.workspace = true

comrak = { workspace = true, optional = true, features = [] }
once_cell.workspace = true
typed-arena.workspace = true
malachite = { workspace = true, features = ["enable_serde"] }
malachite-q.workspace = true
indexmap = { workspace = true, features = ["serde"] }
strip-ansi-escapes.workspace = true

topiary-core = { workspace = true, optional = true }
topiary-queries = { workspace = true, optional = true }
tree-sitter-nickel = { workspace = true, optional = true }

metrics = { workspace = true, optional = true }
strsim = "0.10.0"

[dev-dependencies]
pretty_assertions.workspace = true
assert_matches.workspace = true
criterion.workspace = true
similar.workspace = true
test-generator.workspace = true

# Enable this to use flamegraphs
# [profile.release]
# debug = true

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

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

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

# [[bench]]
# name = "records"
# harness = false

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

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

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

[[bench]]
name = "typecheck-nixpkgs-lib"
harness = false