[package]
name = "nimbus-sdk"
version = "0.10.0"
authors = ["The Glean Team <glean-team@mozilla.com>", "The Sync Team <sync-team@mozilla.com>"]
edition = "2024"
description = "A rapid experiment library"
readme = "README.md"
license = "MPL-2.0"
keywords = ["experiment", "nimbus"]
exclude = ["/android", "/ios"]

[lib]
name = "nimbus"

[features]
# `rkv-safe-mode` is the same name as used by glean. For us though, it's the default.
default=["stateful"]
rkv-safe-mode = ["dep:rkv"]
stateful-uniffi-bindings = []
stateful = ["rkv-safe-mode", "stateful-uniffi-bindings", "dep:remote_settings", "dep:regex", "dep:firefox-versioning"]

[dependencies]
anyhow = "1"
serde = { version = "1", features=["derive"] }
serde_derive = "1"
serde_json = "1"
thiserror = "2"
url = "2.5"
rkv = { version = "0.20", optional = true }
jexl-eval = "0.4.0"
uuid = { version = "1.3", features = ["serde", "v4"]}
sha2 = "^0.10"
hex = "0.4"
once_cell = "1"
uniffi = { version = "0.31" }
chrono = { version = "0.4", features = ["serde"]}
icu_segmenter = "2"
error-support = { path = "../support/error" }
remote_settings = { path = "../remote_settings", optional = true }
cfg-if = "1.0.0"
regex = { version = "1.9", optional = true }
firefox-versioning = { path = "../support/firefox-versioning", optional = true }

[build-dependencies]
uniffi = { version = "0.31", features = ["build"] }

[dev-dependencies]
error-support = { path = "../support/error", features = ["testing"] }
clap = { version = "4.2", default-features = false, features = ["std", "derive"] }
tempfile = "3"
ctor = "0.2.2"
