[package]
edition = "2024"
rust-version = "1.88"
name = "open-feature-flagd"
version = "0.2.0"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "The official flagd provider for OpenFeature."
homepage = "https://openfeature.dev/"
documentation = "https://docs.rs/open-feature-flagd"
readme = "README.md"
license = "Apache-2.0"
repository = "https://github.com/open-feature/rust-sdk-contrib"
resolver = "2"
[package.metadata.cargo-shear]
ignored = [
"prost",
"tonic-prost",
]
include = [
"schemas/protobuf/flagd/evaluation/v1/evaluation.proto",
"schemas/protobuf/flagd/sync/v1/sync.proto",
"build.rs",
"src/*",
]
[features]
default = [
"rpc",
"rest",
"in-process",
]
in-process = [
"dep:flagd-evaluation-engine",
"dep:tonic",
"dep:tonic-prost",
"dep:prost",
"dep:prost-types",
"dep:datalogic-rs",
"dep:murmurhash3",
"dep:semver",
"dep:notify",
"dep:hyper-util",
"dep:tower",
]
rest = [
"dep:open-feature-ofrep",
"dep:reqwest",
]
rpc = [
"dep:tonic",
"dep:tonic-prost",
"dep:prost",
"dep:prost-types",
"dep:hyper-util",
"dep:tower",
]
[lib]
name = "open_feature_flagd"
path = "src/lib.rs"
[[example]]
name = "in_process"
path = "examples/in_process.rs"
[[test]]
name = "cache_test"
path = "tests/cache_test.rs"
[[test]]
name = "color_palette_experiment_test"
path = "tests/color_palette_experiment_test.rs"
[[test]]
name = "e2e_test"
path = "tests/e2e_test.rs"
[[test]]
name = "envoy_test"
path = "tests/envoy_test.rs"
[[test]]
name = "gherkin_config_test"
path = "tests/gherkin_config_test.rs"
[[test]]
name = "gherkin_evaluation_test"
path = "tests/gherkin_evaluation_test.rs"
[[test]]
name = "in_process_test"
path = "tests/in_process_test.rs"
[[test]]
name = "offline_test"
path = "tests/offline_test.rs"
[[test]]
name = "targeting_test"
path = "tests/targeting_test.rs"
[dependencies.async-trait]
version = "0.1"
[dependencies.datalogic-rs]
version = "4.0.4"
optional = true
[dependencies.flagd-evaluation-engine]
version = "0.0.2"
optional = true
[dependencies.hyper-util]
version = "0.1"
features = ["tokio"]
optional = true
[dependencies.lru]
version = "0.16"
[dependencies.murmurhash3]
version = "0.0.5"
optional = true
[dependencies.notify]
version = "8.2"
optional = true
[dependencies.open-feature]
version = "0.2"
[dependencies.open-feature-ofrep]
version = "0.1.0"
optional = true
[dependencies.prost]
version = "0.14"
optional = true
[dependencies.prost-types]
version = "0.14"
optional = true
[dependencies.reqwest]
version = "0.13.1"
features = [
"json",
"stream",
"rustls",
]
optional = true
default-features = false
[dependencies.semver]
version = "1.0"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.48"
features = [
"sync",
"time",
"fs",
"rt",
"rt-multi-thread",
"macros",
"net",
]
[dependencies.tokio-stream]
version = "0.1"
[dependencies.tonic]
version = "0.14"
features = [
"transport",
"codegen",
"tls-ring",
"tls-webpki-roots",
]
optional = true
default-features = false
[dependencies.tonic-prost]
version = "0.14"
optional = true
[dependencies.tower]
version = "0.5"
features = ["util"]
optional = true
default-features = false
[dependencies.tracing]
version = "0.1"
[dev-dependencies.cucumber]
version = "0.22"
[dev-dependencies.futures-core]
version = "0.3"
[dev-dependencies.serial_test]
version = "3.2"
[dev-dependencies.tempfile]
version = "3.24.0"
[dev-dependencies.test-log]
version = "0.2"
features = ["trace"]
[dev-dependencies.testcontainers]
version = "0.27"
features = [
"http_wait",
"blocking",
]
[dev-dependencies.time]
version = ">=0.3.47"
[dev-dependencies.wiremock]
version = "0.6.5"
[build-dependencies.tonic-prost-build]
version = "0.14"