cedar-policy-core 3.2.0

Core implemenation of the Cedar Policy language.
Documentation
[package]
name = "cedar-policy-core"
edition = "2021"
rust-version = "1.76.0" # minimum supported Rust version is currently 1.76.0 because of use of `Arc::unwrap_or_clone()`. Check with `cargo install cargo-msrv && cargo msrv --min 1.75.0`
build = "build.rs"

version = "3.2.0"
license = "Apache-2.0"
categories = ["compilers", "config"]
description = "Core implemenation of the Cedar Policy language."
keywords = ["cedar", "authorization", "policy", "security"]
homepage = "https://cedarpolicy.com"
repository = "https://github.com/cedar-policy/cedar"

[dependencies]
serde = { version = "1.0", features = ["derive", "rc"] }
serde_with = { version = "3.0", features = ["json"] }
serde_json = "1.0"
lalrpop-util = { version = "0.20.0", features = ["lexer"] }
lazy_static = "1.4"
either = "1.8"
itertools = "0.12"
rustc_lexer = "0.1"
thiserror = "1.0"
smol_str = { version = "0.2", 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.20.0"

[dev-dependencies]
cool_asserts = "2.0"