[package]
edition = "2021"
name = "regorus"
version = "0.9.0"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A fast, lightweight Rego (OPA policy language) interpreter"
readme = "README.md"
keywords = [
"interpreter",
"no_std",
"opa",
"policy-as-code",
"rego",
]
license = "MIT AND Apache-2.0 AND BSD-3-Clause"
repository = "https://github.com/microsoft/regorus"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
allocator-memory-limits = [
"std",
"mimalloc",
"mimalloc/allocator-memory-limits",
]
arc = []
ast = []
azure-rbac = []
azure_policy = [
"dep:jsonschema",
"arc",
"dashmap",
]
base64 = ["dep:data-encoding"]
base64url = ["dep:data-encoding"]
coverage = []
default = [
"full-opa",
"arc",
"rvm",
]
full-opa = [
"base64",
"base64url",
"coverage",
"glob",
"graph",
"hex",
"http",
"jsonschema",
"allocator-memory-limits",
"mimalloc",
"net",
"opa-runtime",
"regex",
"semver",
"std",
"time",
"uuid",
"urlquery",
"yaml",
]
glob = ["dep:globset"]
graph = []
hex = ["dep:data-encoding"]
http = []
jsonschema = ["dep:jsonschema"]
mimalloc = ["dep:mimalloc"]
net = ["dep:ipnet"]
no_std = ["lazy_static/spin_no_std"]
opa-no-std = [
"arc",
"base64",
"base64url",
"coverage",
"graph",
"hex",
"no_std",
"opa-runtime",
"regex",
"semver",
"lazy_static/spin_no_std",
]
opa-runtime = []
opa-testutil = []
rand = ["dep:rand"]
regex = ["dep:regex"]
rego-extensions = []
rvm = [
"dep:bincode",
"dep:indexmap",
]
semver = ["dep:semver"]
std = [
"rand/std",
"rand/std_rng",
"serde_json/std",
"msvc_spectre_libs",
]
time = [
"dep:chrono",
"dep:chrono-tz",
]
urlquery = ["dep:url"]
uuid = ["dep:uuid"]
yaml = ["serde_yaml"]
[lib]
name = "regorus"
path = "src/lib.rs"
doctest = false
[[example]]
name = "regorus"
path = "examples/regorus.rs"
test = false
doctest = false
harness = false
[[test]]
name = "aci"
path = "tests/aci/main.rs"
test = false
harness = false
[[test]]
name = "arc"
path = "tests/arc.rs"
[[test]]
name = "execution_limits"
path = "tests/execution_limits.rs"
[[test]]
name = "kata"
path = "tests/kata/main.rs"
test = false
harness = false
[[test]]
name = "memory_limits"
path = "tests/memory_limits.rs"
[[test]]
name = "mod"
path = "tests/mod.rs"
[[test]]
name = "opa"
path = "tests/opa.rs"
test = false
harness = false
required-features = ["full-opa"]
[[bench]]
name = "aci_benchmark"
path = "benches/aci_benchmark.rs"
harness = false
[[bench]]
name = "compiled_policy_evaluation_benchmark"
path = "benches/evaluation/compiled_policy_evaluation_benchmark.rs"
harness = false
[[bench]]
name = "engine_evaluation_benchmark"
path = "benches/evaluation/engine_evaluation_benchmark.rs"
harness = false
[[bench]]
name = "regorus_benchmark"
path = "benches/regorus_benchmark.rs"
harness = false
[[bench]]
name = "schema_validation_benchmark"
path = "benches/schema_validation_benchmark.rs"
harness = false
required-features = ["azure_policy"]
[dependencies.anyhow]
version = "1.0.45"
default-features = false
[dependencies.bincode]
version = "2.0.1"
features = [
"alloc",
"serde",
]
optional = true
default-features = false
[dependencies.chrono]
version = "0.4.40"
optional = true
[dependencies.chrono-tz]
version = "0.10.1"
optional = true
[dependencies.dashmap]
version = "6.1"
optional = true
default-features = false
[dependencies.data-encoding]
version = "2.8.0"
features = ["alloc"]
optional = true
default-features = false
[dependencies.globset]
version = "0.4.16"
features = ["simd-accel"]
optional = true
default-features = false
[dependencies.indexmap]
version = "2.12.1"
features = ["serde"]
optional = true
default-features = false
[dependencies.ipnet]
version = "2.11.0"
optional = true
default-features = false
[dependencies.jsonschema]
version = "0.30.0"
optional = true
default-features = false
[dependencies.lazy_static]
version = "1.4.0"
default-features = false
[dependencies.mimalloc]
version = "2.2.6"
optional = true
package = "regorus-mimalloc"
[dependencies.msvc_spectre_libs]
version = "0.1"
features = ["error"]
optional = true
[dependencies.num-bigint]
version = "0.4"
default-features = false
[dependencies.num-traits]
version = "0.2"
default-features = false
[dependencies.rand]
version = "0.9.0"
features = ["thread_rng"]
optional = true
default-features = false
[dependencies.regex]
version = "1.11.1"
optional = true
default-features = false
[dependencies.semver]
version = "1.0.25"
optional = true
default-features = false
[dependencies.serde]
version = "1.0.150"
features = [
"derive",
"rc",
"alloc",
]
default-features = false
[dependencies.serde_json]
version = "1.0.89"
features = ["alloc"]
default-features = false
[dependencies.serde_yaml]
version = "0.9.16"
optional = true
default-features = false
[dependencies.spin]
version = "0.9.8"
features = [
"mutex",
"spin_mutex",
]
default-features = false
[dependencies.thiserror]
version = "2.0"
default-features = false
[dependencies.url]
version = "2.5.4"
optional = true
[dependencies.uuid]
version = "1.15.1"
features = [
"v4",
"fast-rng",
]
optional = true
default-features = false
[dev-dependencies.anyhow]
version = "1.0.45"
[dev-dependencies.cfg-if]
version = "1.0.0"
[dev-dependencies.clap]
version = "4.5.53"
features = ["derive"]
[dev-dependencies.criterion]
version = "0.8"
[dev-dependencies.num_cpus]
version = "1.16"
[dev-dependencies.prettydiff]
version = "0.9.0"
default-features = false
[dev-dependencies.serde_yaml]
version = "0.9.16"
[dev-dependencies.test-generator]
version = "0.3.1"
[dev-dependencies.walkdir]
version = "2.3.2"
[build-dependencies.anyhow]
version = "1.0"
[profile.release]
lto = true
codegen-units = 1
debug = 2