open-feature-flagd 0.2.0

The official flagd provider for OpenFeature.
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"
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"