holochain_sqlite 0.7.0-dev.7

Abstractions for persistence of Holochain state via SQLite
Documentation
[package]
name = "holochain_sqlite"
version = "0.7.0-dev.7"
description = "Abstractions for persistence of Holochain state via SQLite"
license = "Apache-2.0"
repository = "https://github.com/holochain/holochain"
documentation = "https://docs.rs/holochain_sqlite"
authors = ["Holochain Core Dev Team <devcore@holochain.org>"]
edition = "2021"

# reminder - do not use workspace deps
[dependencies]
async-trait = "0.1"
anyhow = "1.0"
base64 = "0.22"
bytes = "1.10"
derive_more = { version = "2.0", features = [
  "display",
  "into",
  "deref",
  "deref_mut",
] }
fallible-iterator = "0.3.0"
futures = "0.3"
holo_hash = { path = "../holo_hash", version = "^0.7.0-dev.3" }
holochain_serialized_bytes = "=0.0.56"
holochain_util = { version = "^0.7.0-dev.0", path = "../holochain_util", features = [
  "backtrace",
  "time",
], optional = true }
holochain_zome_types = { version = "^0.7.0-dev.5", path = "../holochain_zome_types" }
holochain_nonce = { version = "^0.7.0-dev.0", path = "../holochain_nonce" }
holochain_timestamp = { version = "^0.7.0-dev.0", path = "../timestamp" }
nanoid = "0.4"
once_cell = "1.4.1"
parking_lot = "0.12"
r2d2 = "0.8"
r2d2_sqlite = { version = "0.31.0" }
rmp-serde = "=1.3.0"
scheduled-thread-pool = "0.2"
serde = "1.0"
shrinkwraprs = "0.3.0"
sodoken = "0.1.0"
tempfile = "3.3"
thiserror = "2.0"
tokio = { version = "1.27", features = [
  "macros",
  "rt-multi-thread",
  "io-util",
  "sync",
  "time",
] }
tracing = "0.1.18"
getrandom = "0.3"
opentelemetry_api = { version = "=0.20.0", features = ["metrics"] }
schemars = "0.9"

kitsune2_api = "0.4.0-dev.2"

rusqlite = { version = "0.37", features = [
  "blob",      # better integration with blob types (Read, Write, etc)
  "backup",
  "trace",
  "functions", # rust scalar / agg / window functions
  "array",     # for array support, e.g. "WHERE IN" queries
] }

[dev-dependencies]
holochain_sqlite = { path = ".", features = ["test_utils", "slow_tests"] }
holochain_trace = { version = "^0.7.0-dev.0", path = "../holochain_trace" }
nanoid = "0.4.0"
walkdir = "2.5.0"

[build-dependencies]
pretty_assertions = "1.4"
sqlformat = "=0.3.5"

[target.'cfg(loom)'.dev-dependencies]
loom = { version = "0.7", features = ["futures", "checkpoint"] }
holochain_sqlite = { path = ".", default-features = false, features = [
  "test_utils",
] }

[lints]
workspace = true

[features]
default = ["sqlite", "holochain_util"]

test_utils = []

slow_tests = []

# Use at-rest encryption of databases
sqlite-encrypted = [
  "rusqlite/bundled-sqlcipher-vendored-openssl",
  "r2d2_sqlite/bundled-sqlcipher-vendored-openssl",
  "holo_hash/sqlite-encrypted",
  "holochain_zome_types/sqlite-encrypted",
  "holochain_timestamp/sqlite-encrypted",
]

# Compile SQLite from source rather than depending on a library
sqlite = [
  "rusqlite/bundled",
  "r2d2_sqlite/bundled",
  "holo_hash/sqlite",
  "holochain_zome_types/sqlite",
  "holochain_timestamp/sqlite",
]

# Enables tracing instrumentation
# (we experience segfaults in some tests if there is too much instrumentation)
instrument = []