uqa-storage-sqlite 0.3.8

SQLite catalog, indexes, compressed storage, graph and key/value providers
Documentation
[package]
name = "uqa-storage-sqlite"
autotests = false
description = "SQLite catalog, indexes, compressed storage, graph and key/value providers"
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
readme = "README.md"
rust-version.workspace = true
documentation = "https://docs.rs/uqa-storage-sqlite"
exclude.workspace = true

[dependencies]
uqa-analysis = { workspace = true }
uqa-core = { workspace = true }
uqa-graph = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
parking_lot = { workspace = true }
thiserror = { workspace = true }
argon2 = { workspace = true }
chacha20poly1305 = { workspace = true }
hmac = { workspace = true }
sha2 = { workspace = true }
crc32fast = { workspace = true }
lz4_flex = { workspace = true }
getrandom = { workspace = true }
zstd = { workspace = true }
uqa-storage = { workspace = true }

# SQLCipher's crypto provider does not exist on the browser target;
# emscripten builds bundle plain SQLite instead. `fs2` file locks are
# replaced by a single-process shim there.
[target.'cfg(not(target_os = "emscripten"))'.dependencies]
rusqlite = { workspace = true }
fs2 = { workspace = true }

[target.'cfg(target_os = "emscripten")'.dependencies]
rusqlite = { version = "0.39", default-features = false, features = ["bundled", "blob", "cache"] }

[dev-dependencies]
allocation-counter = "=0.8.1"
uqa-scoring = { workspace = true }
criterion = { workspace = true }
tempfile = "3.13"

[target.'cfg(not(target_os = "emscripten"))'.dev-dependencies]
rusqlite = { workspace = true, features = ["functions"] }

[[test]]
name = "integration"
path = "tests/integration.rs"

[[bench]]
name = "storage"
harness = false

[[bench]]
name = "nori_persistent"
harness = false
required-features = ["uqa-analysis/nori"]

[lints]
workspace = true