cedarling 0.0.49

The Cedarling: a high-performance local authorization service powered by the Rust Cedar Engine.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[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