[package] name = "nickel-lang-core" version = "0.10.0" 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"] clap = ["dep:clap"] markdown = ["dep:termimad"] repl = ["dep:rustyline", "dep:rustyline-derive", "dep:ansi_term"] repl-wasm = ["dep:wasm-bindgen", "dep:js-sys", "dep:serde_repr", "dep:serde-wasm-bindgen"] 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" ] bytecode-experimental = ["dep:bumpalo"] benchmark-ci = [] [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"], optional = true } codespan.workspace = true codespan-reporting.workspace = true colorchoice.workspace = true cxx = { workspace = true, optional = true } logos.workspace = true nickel-lang-vector.workspace = true smallvec.workspace = true serde = { workspace = true, features = ["derive"] } serde_json.workspace = true serde_yaml.workspace = true toml_edit = { workspace = true, features = ["parse"] } toml = { workspace = true } 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, optional = 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" bumpalo = { workspace = true, optional = true } [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