[package] name = "cedar-policy-core" edition.workspace = true rust-version.workspace = true build = "build.rs" version.workspace = true license.workspace = true categories.workspace = true description = "Core implemenation of the Cedar Policy language." keywords.workspace = true homepage.workspace = true repository.workspace = true [dependencies] serde = { version = "1.0", features = ["derive", "rc"] } serde_with = { version = "3.0", features = ["json"] } serde_json = "1.0" lalrpop-util = { version = "0.22.0", features = ["lexer"] } lazy_static = "1.4" either = "1.8" itertools = "0.13" ref-cast = "1.0" rustc_lexer = "0.1" thiserror = "1.0" smol_str = { version = "0.3", features = ["serde"] } stacker = "0.1.15" arbitrary = { version = "1", features = ["derive"], optional = true } miette = { version = "7.1.0", features = ["serde"] } nonempty = "0.10.0" # decimal extension requires regex regex = { version = "1.8", features = ["unicode"], optional = true } # wasm dependencies serde-wasm-bindgen = { version = "0.6", optional = true } tsify = { version = "0.4.5", optional = true } wasm-bindgen = { version = "0.2.82", optional = true } [features] # by default, enable all Cedar extensions default = ["ipaddr", "decimal"] ipaddr = [] decimal = ["dep:regex"] # Enables `Arbitrary` implementations for several types in this crate arbitrary = ["dep:arbitrary"] # Expose test utilities test-util = [] # Experimental features. partial-eval = [] wasm = ["serde-wasm-bindgen", "tsify", "wasm-bindgen"] [build-dependencies] lalrpop = "0.22.0" [dev-dependencies] cool_asserts = "2.0" miette = { version = "7.1.0", features = ["fancy"] } [lints.rust] unexpected_cfgs = { level = 'deny', check-cfg = ['cfg(kani)', 'cfg(fuzzing)'] }