[package]
name = "omry-search"
authors.workspace = true
description = "Search-related abstractions for the Omry project."
edition.workspace = true
exclude.workspace = true
homepage.workspace = true
keywords.workspace = true
license.workspace = true
publish = true
readme.workspace = true
repository.workspace = true
rust-version.workspace = true
version.workspace = true

[dependencies]
anyhow = { workspace = true, optional = true }
bytes = { version = "1.11", optional = true }
cfg_eval = { version = "0.1", optional = true }
dom_smoothie = "0.17.0"
irpc = { workspace = true, optional = true }
n0-future = { workspace = true, optional = true }
omry-archiving = { path = "../archiving", features = [
  "marshal",
], version = "0.19.0-alpha3" }
reqwest = { version = "0.12", default-features = false, features = [
  "json",
  "rustls-tls",
], optional = true }
secrecy = { workspace = true, optional = true }
serde = { version = "1", optional = true, features = ["derive"] }
serde_json = { version = "1", optional = true }
serde_with = { workspace = true, optional = true }
thiserror = { workspace = true }
tokio = { version = "1.52", optional = true, features = ["rt"] }
tracing = { workspace = true, optional = true }
uuid = { version = "1.23", features = ["v7"] }

[dev-dependencies]
anyhow = { workspace = true }
insta = { workspace = true }
pretty_assertions = { workspace = true }

[lints]
workspace = true

[features]
client = ["dep:bytes", "dep:reqwest", "dep:secrecy", "serde", "dep:tracing"]
serde = ["dep:cfg_eval", "dep:serde", "dep:serde_json", "dep:serde_with"]
rpc = [
  "client",
  "dep:anyhow",
  "dep:irpc",
  "dep:n0-future",
  "dep:tokio",
]

[lib]
doctest = false
