[package] name = "cedar-policy" edition.workspace = true rust-version.workspace = true version.workspace = true license.workspace = true categories.workspace = true description = "Cedar is a language for defining permissions as policies, which describe who should have access to what." keywords.workspace = true homepage.workspace = true repository = "https://github.com/cedar-policy/cedar" [dependencies] cedar-policy-core = { version = "=4.2.2", path = "../cedar-policy-core" } cedar-policy-validator = { version = "=4.2.2", path = "../cedar-policy-validator" } cedar-policy-formatter = { version = "=4.2.2", path = "../cedar-policy-formatter" } ref-cast = "1.0" serde = { version = "1.0", features = ["derive", "rc"] } serde_json = "1.0" lalrpop-util = { version = "0.22.0", features = ["lexer"] } itertools = "0.13" miette = "7.1.0" thiserror = "1.0" smol_str = { version = "0.3", features = ["serde"] } dhat = { version = "0.3.2", optional = true } serde_with = "3.3.0" nonempty = "0.10" # 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 } semver = "1.0.23" lazy_static = "1.5.0" [features] # by default, enable all Cedar extensions, but not other crate features default = ["ipaddr", "decimal"] # Cedar extensions ipaddr = ["cedar-policy-core/ipaddr", "cedar-policy-validator/ipaddr"] decimal = ["cedar-policy-core/decimal", "cedar-policy-validator/decimal"] # Features for memory or runtime profiling heap-profiling = ["dep:dhat"] corpus-timing = [] # Experimental features. # Enable all experimental features with `cargo build --features "experimental"` experimental = ["partial-eval", "permissive-validate", "partial-validate", "level-validate", "entity-manifest"] entity-manifest = ["cedar-policy-validator/entity-manifest"] partial-eval = ["cedar-policy-core/partial-eval", "cedar-policy-validator/partial-eval"] permissive-validate = [] partial-validate = ["cedar-policy-validator/partial-validate"] level-validate = ["cedar-policy-validator/level-validate"] wasm = ["serde-wasm-bindgen", "tsify", "wasm-bindgen"] [lib] # cdylib required for wasm crate-type = ["rlib", "cdylib"] [dev-dependencies] miette = { version = "7.1.0", features = ["fancy"] } cool_asserts = "2.0" criterion = "0.5" globset = "0.4" cedar-policy-core = { version = "=4.2.2", features = [ "test-util", ], path = "../cedar-policy-core" } # NON-CRYPTOGRAPHIC random number generators oorandom = "11.1" proptest = "1.0.0" [[bench]] name = "cedar_benchmarks" harness = false [[bench]] name = "attr_errors" harness = false [[bench]] name = "entity_attr_errors" harness = false [[bench]] name = "extension_fn_validation" harness = false [[bench]] name = "deeply_nested_est" harness = false [package.metadata.docs.rs] features = ["experimental"] rustdoc-args = ["--cfg", "docsrs"]