[package]
name = "cedar-policy"
edition = "2021"
rust-version = "1.76.0"
version = "3.2.0"
license = "Apache-2.0"
categories = ["compilers", "config"]
description = "Cedar is a language for defining permissions as policies, which describe who should have access to what."
keywords = ["cedar", "authorization", "policy", "security"]
homepage = "https://cedarpolicy.com"
repository = "https://github.com/cedar-policy/cedar"
[dependencies]
cedar-policy-core = { version = "=3.2.0", path = "../cedar-policy-core" }
cedar-policy-validator = { version = "=3.2.0", path = "../cedar-policy-validator" }
ref-cast = "1.0"
serde = { version = "1.0", features = ["derive", "rc"] }
serde_json = "1.0"
lalrpop-util = { version = "0.20.0", features = ["lexer"] }
itertools = "0.12"
miette = "7.1.0"
thiserror = "1.0"
smol_str = { version = "0.2", features = ["serde"] }
dhat = { version = "0.3.2", optional = true }
serde_with = "3.3.0"
nonempty = "0.10"
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 = ["cedar-policy-core/ipaddr", "cedar-policy-validator/ipaddr"]
decimal = ["cedar-policy-core/decimal", "cedar-policy-validator/decimal"]
heap-profiling = ["dep:dhat"]
corpus-timing = []
integration_testing = []
experimental = ["partial-eval", "permissive-validate", "partial-validate"]
partial-eval = ["cedar-policy-core/partial-eval"]
permissive-validate = []
partial-validate = ["cedar-policy-validator/partial-validate"]
wasm = ["serde-wasm-bindgen", "tsify", "wasm-bindgen"]
[lib]
crate_type = ["rlib", "cdylib"]
[dev-dependencies]
cedar-policy = { path = ".", default-features = false, features = [
"integration_testing",
] }
cool_asserts = "2.0"
criterion = "0.5"
globset = "0.4"
proptest = "1.0.0"
[[bench]]
name = "cedar_benchmarks"
harness = false
[package.metadata.docs.rs]
features = ["experimental"]
rustdoc-args = ["--cfg", "docsrs"]