[workspace] members = [ "bindings/ffi", "bindings/python", "bindings/wasm", "bindings/java", "bindings/ruby/ext/regorusrb", ] [package] name = "regorus" description = "A fast, lightweight Rego (OPA policy language) interpreter" version = "0.1.3" edition = "2021" license-file = "LICENSE" repository = "https://github.com/microsoft/regorus" keywords = ["interpreter", "opa", "policy-as-code", "rego"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [lib] doctest = false [features] default = ["full-opa", "arc"] arc = ["scientific/arc"] base64 = ["dep:data-encoding"] base64url = ["dep:data-encoding"] coverage = [] crypto = ["dep:constant_time_eq", "dep:hmac", "dep:hex", "dep:md-5", "dep:sha1", "dep:sha2"] deprecated = [] hex = ["dep:data-encoding"] http = [] jwt = ["dep:jsonwebtoken", "dep:data-encoding"] glob = ["dep:wax"] graph = [] jsonschema = ["dep:jsonschema"] opa-runtime = [] regex = ["dep:regex"] semver = ["dep:semver"] uuid = ["dep:uuid"] urlquery = ["dep:url"] time = ["dep:chrono", "dep:chrono-tz"] yaml = ["serde_yaml"] full-opa = [ "base64", "base64url", "coverage", "crypto", "deprecated", "glob", "graph", "hex", "http", "jwt", "jsonschema", "opa-runtime", "regex", "semver", "time", "uuid", "urlquery", "yaml" ] # This feature enables some testing utils for OPA tests. opa-testutil = [] [dependencies] anyhow = {version = "1.0.66", features = ["backtrace"] } serde = {version = "1.0.150", features = ["derive", "rc"] } serde_json = "1.0.89" serde_yaml = {version = "0.9.16", optional = true } lazy_static = "1.4.0" rand = "0.8.5" num = "0.4.1" # Crypto constant_time_eq = {version = "0.3.0", optional = true} hmac = {version = "0.12.1", optional = true} sha2 = {version= "0.10.8", optional = true} hex = {version = "0.4.3", optional = true} sha1 = {version = "0.10.6", optional = true} md-5 = {version = "0.10.6", optional = true} data-encoding = { version = "2.4.0", optional = true } scientific = { version = "0.5.2" } regex = {version = "1.10.2", optional = true} semver = {version = "1.0.20", optional = true} wax = { version = "0.6.0", features = [], default-features = false, optional = true } url = { version = "2.5.0", optional = true } uuid = { version = "1.6.1", features = ["v4", "fast-rng"], optional = true } jsonschema = { version = "0.17.1", default-features = false, optional = true } chrono = { version = "0.4.31", optional = true } chrono-tz = { version = "0.8.5", optional = true } compact-rc = "0.5.2" jsonwebtoken = { version = "9.2.0", optional = true } itertools = "0.12.1" [dev-dependencies] cfg-if = "1.0.0" clap = { version = "4.4.7", features = ["derive"] } colored-diff = "0.2.3" serde_yaml = "0.9.16" test-generator = "0.3.1" walkdir = "2.3.2" [build-dependencies] anyhow = "1.0.66" [profile.release] debug = true [[test]] name="opa" harness=false test=false required-features = ["full-opa"] [[test]] name="aci" harness=false test=false [package.metadata.docs.rs] # To build locally: # RUSTDOCFLAGS="--cfg docsrs" cargo +nightly doc --all-features --no-deps all-features = true rustdoc-args = ["--cfg", "docsrs"]