[package]
edition = "2024"
name = "cedarling"
version = "0.0.49"
build = "build.rs"
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "The Cedarling: a high-performance local authorization service powered by the Rust Cedar Engine."
readme = false
license = "Apache-2.0"
resolver = "2"
[package.metadata.cargo-machete]
ignored = [
"getrandom_02",
"prost",
"tonic-prost",
"tonic-prost-build",
]
[features]
blocking = ["tokio/rt-multi-thread"]
default = ["grpc"]
grpc = [
"dep:tonic",
"dep:prost",
"dep:prost-types",
"dep:tonic-prost",
"dep:tonic-prost-build",
"dep:tonic-web-wasm-client",
]
[lib]
name = "cedarling"
path = "src/lib.rs"
[[example]]
name = "authorize_unsigned"
path = "examples/authorize_unsigned.rs"
[[example]]
name = "bulk_authorization_benchmark"
path = "examples/bulk_authorization_benchmark.rs"
[[example]]
name = "lock_integration"
path = "examples/lock_integration.rs"
[[example]]
name = "log_init"
path = "examples/log_init.rs"
[[example]]
name = "profiling_multi_issuer"
path = "examples/profiling_multi_issuer.rs"
[[example]]
name = "profiling_unsigned"
path = "examples/profiling_unsigned.rs"
[[bench]]
name = "authz_authorize_batch_benchmark"
path = "benches/authz_authorize_batch_benchmark.rs"
harness = false
[[bench]]
name = "authz_authorize_multi_issuer_benchmark"
path = "benches/authz_authorize_multi_issuer_benchmark.rs"
harness = false
[[bench]]
name = "authz_authorize_unsigned_benchmark"
path = "benches/authz_authorize_unsigned_benchmark.rs"
harness = false
[[bench]]
name = "context_data_store_benchmark"
path = "benches/context_data_store_benchmark.rs"
harness = false
[[bench]]
name = "policy_store_benchmark"
path = "benches/policy_store_benchmark.rs"
harness = false
[[bench]]
name = "startup_benchmark"
path = "benches/startup_benchmark.rs"
harness = false
[dependencies.ahash]
version = "0.8.12"
features = [
"no-rng",
"std",
]
default-features = false
[dependencies.arc-swap]
version = "1.9.2"
[dependencies.async-trait]
version = "0.1.89"
[dependencies.base64]
version = "0.22.1"
[dependencies.cedar-policy]
version = "4.11.2"
features = ["partial-eval"]
[dependencies.cedar-policy-core]
version = "4.11.2"
[dependencies.chrono]
version = "0.4"
[dependencies.config]
version = "0.15.25"
[dependencies.derive_more]
version = "2.1.1"
features = [
"deref",
"from",
"display",
"error",
]
[dependencies.flate2]
version = "1.1.9"
[dependencies.futures]
version = "0.3.32"
[dependencies.hdrhistogram]
version = "7.5.4"
[dependencies.jsonwebtoken]
version = "10.3.0"
features = [
"rust_crypto",
"use_pem",
]
default-features = false
[dependencies.prost]
version = "0.14.4"
optional = true
[dependencies.prost-types]
version = "0.14.3"
optional = true
[dependencies.rand]
version = "0.10.2"
[dependencies.reqwest]
version = "0.13.2"
features = [
"json",
"form",
]
[dependencies.semver]
version = "1.0.28"
features = ["serde"]
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
features = ["raw_value"]
[dependencies.serde_yaml_ng]
version = "0.10.0"
[dependencies.smol_str]
version = "0.3.6"
[dependencies.strum]
version = "0.28.0"
features = ["derive"]
[dependencies.thiserror]
version = "2.0"
[dependencies.time]
version = "0.3.53"
features = ["wasm-bindgen"]
[dependencies.tokio]
version = "1.42.0"
features = [
"macros",
"time",
]
[dependencies.tokio-util]
version = "0.7.15"
[dependencies.tonic-prost]
version = "0.14.6"
optional = true
[dependencies.typed-builder]
version = "0.23.2"
[dependencies.url]
version = "2.5.8"
[dependencies.uuid7]
version = "1.8.0"
features = [
"serde",
"uuid",
"rand010",
]
default-features = false
[dependencies.vfs]
version = "0.13.0"
[dependencies.wasm-bindgen-futures]
version = "0.4.53"
[dependencies.zip]
version = "8.6.0"
features = [
"bzip2",
"deflate64",
"deflate",
"lzma",
"ppmd",
"time",
"zstd",
"xz",
]
default-features = false
[dev-dependencies.criterion]
version = "0.8.2"
features = ["async_tokio"]
[dev-dependencies.jsonwebkey]
version = "0.4.0"
features = [
"generate",
"jwt-convert",
]
[dev-dependencies.mockito]
version = "1.5.0"
[dev-dependencies.stats_alloc]
version = "0.1.10"
[dev-dependencies.tempfile]
version = "3.8"
[dev-dependencies.tokio]
version = "1.42.0"
features = ["rt-multi-thread"]
[dev-dependencies.tokio-stream]
version = "0.1.18"
[build-dependencies.chrono]
version = "0.4"
[build-dependencies.tonic-prost-build]
version = "0.14.3"
optional = true
[target.'cfg(not(any(target_arch = "wasm32", target_os = "windows")))'.dev-dependencies.pprof]
version = "0.15.0"
features = ["flamegraph"]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tonic]
version = "0.14.6"
features = ["tls-native-roots"]
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom_02]
version = "0.2"
features = ["js"]
package = "getrandom"
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom_03]
version = "0.3"
features = ["wasm_js"]
package = "getrandom"
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom_04]
version = "0.4"
features = ["wasm_js"]
package = "getrandom"
[target.'cfg(target_arch = "wasm32")'.dependencies.tonic]
version = "0.14.3"
features = ["codegen"]
optional = true
default-features = false
[target.'cfg(target_arch = "wasm32")'.dependencies.tonic-web-wasm-client]
version = "0.9.0"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
version = "0.3"
features = ["console"]
[target.'cfg(target_family = "wasm")'.dependencies.gloo-timers]
version = "0.4.0"
features = ["futures"]
[lints.clippy]
pedantic = "warn"
[lints.clippy.duration-suboptimal-units]
level = "allow"
priority = 1