[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"
regex = { version = "1.8", features = ["unicode"], optional = true }
serde-wasm-bindgen = { version = "0.6", optional = true }
tsify = { version = "0.4.5", optional = true }
wasm-bindgen = { version = "0.2.82", optional = true }
[features]
default = ["ipaddr", "decimal"]
ipaddr = []
decimal = ["dep:regex"]
arbitrary = ["dep:arbitrary"]
test-util = []
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)'] }